JP4048731B2 - 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
JP4048731B2
JP4048731B2 JP2001170166A JP2001170166A JP4048731B2 JP 4048731 B2 JP4048731 B2 JP 4048731B2 JP 2001170166 A JP2001170166 A JP 2001170166A JP 2001170166 A JP2001170166 A JP 2001170166A JP 4048731 B2 JP4048731 B2 JP 4048731B2
Authority
JP
Japan
Prior art keywords
transfer
address
image data
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
JP2001170166A
Other languages
Japanese (ja)
Other versions
JP2002366130A (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 JP2001170166A priority Critical patent/JP4048731B2/en
Publication of JP2002366130A publication Critical patent/JP2002366130A/en
Application granted granted Critical
Publication of JP4048731B2 publication Critical patent/JP4048731B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
この発明はCRT(Cathode Ray Tube)等のラスタースキャン型表示装置において、平面上に表現された画像を構成するデータの画像表示処理システムに関し、特に特定領域の画像データを転送する画像データ転送装置及び画像表示処理システムに関する。
【0002】
【従来の技術】
従来より、CRT等のラスタースキャン型表示装置を使用した2次元画像データ処理装置としては、例えば特開昭60−214392号公報に開示されているものが知られている。この画像表示処理システムは、図19に示すように、中央演算処理装置(CPU)102の負担を軽減するため、画像表示処理のためのディスプレイコントローラ101が備えられる。ディスプレイコントローラ101内部の画像データ処理回路110は、CRT表示装置105の画面の走査速度に対応してビデオRAM(以下、VRAMと呼ぶ。)104内に記憶されている静止画像データ及び動画像データ等をインターフェイス111を介して読み出すと共に、CRT表示装置105へ画像の走査に必要な同期信号SYNCを出力する。
【0003】
この場合の静止画及び動画像データは、表示画面上のドットの色を指定する2,4又は8ビットのカラーコードからなり、画像データ処理回路110は、読み出したカラーコードをカラーパレット112に出力する。カラーパレット112は、読み出したカラーコードをRGB(赤,緑,青)信号に変換してCRT表示装置に供給する。
【0004】
また、画像データ処理回路110は、CPU102からインターフェイス113を介して供給される画像データを、画面の非表示期間(垂直帰線期間等)にVRAM104に書き込む。更に、VRAM104をアクセスしているとき(書き込み及び読み出し時)は、信号S1をコマンド処理回路115に供給してアクセス中であることを知らせる。コマンド処理回路115は、CPU102からインターフェイス113を介して供給される各種のコマンドに対応する処理を行う。
【0005】
上記の構成の画像表示処理システムにおいては、静止画像を含む矩形領域の移動を短時間でCPUを介さずに行うことや、上述したカラーコードの転送に際して、転送すべきドットのカラーコードの各ビットと転送先のドットのカラーコードの各ビットとの間の論理演算を行い、この結果を転送先のドットに対応するVRAM104の記憶エリアへ書き込む論理演算処理及び転送元領域の各ドットのカラーコードのうち透明のカラーコードについてはカラーコードの転送を行わず、それ以外のカラーコードについてのみ転送を行う透明処理(トランスペアレント処理)等を行うことができる。また、このシステムでは、カラーコードをドット単位で転送するドット単位転送モードと、カラーコードをバイト単位で転送するバイト単位転送モードとを備えている。
【0006】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像表示処理システムでは、高速転送を実現しつつ所定の論理演算処理や透明処理を実行することができなかった。特に現在では画像処理技術の著しい向上やそれに伴う画像データ転送量の急激な増大等によって、上述したような装置ではもはや高速転送とピクセルを任意のビット数に設定する等の細かな画像処理の要請とに応えることが困難になってきた。
【0007】
この発明は、このような問題点に鑑みてなされたもので、更に効率的に画像処理及び転送データ制御等を行うことができると共に、ピクセルのビット数を任意に設定可能でメモリを有効に使用することができる画像データ転送装置及び画像表示処理システムを提供することを目的とする。
【0008】
【課題を解決するための手段】
この発明に係る画像データ転送装置は、指定された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置において、前記画像データは、1ピクセルが1又は複数のビットで構成された画像データであり、前記画像データ記憶装置の転送元領域及び転送先領域から1ピクセルの画像データよりも大きいブロック単位で画像データを読み出すアドレスカウンタと、前記画像データ記憶装置から読み出されたブロック単位の画像データを記憶するデータ格納手段と、前記転送元領域の画像データと前記転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行する演算手段と、前記指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのビット数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始ブロックアドレス及び転送終了ブロックアドレスを算出し前記アドレスカウンタにセットするアドレス計算手段と、前記転送元領域以外をマスクするソースマスクデータ及び転送先領域以外の領域をマスクするデスティネーションマスクデータを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うマスク演算手段とを備え、前記アドレスカウンタは、前記データ格納手段のアドレスの上位を第1のアドレス、下位を第2のアドレスとし、前記第1のアドレスを固定、前記第2のアドレスを連続的に変化させ、転送開始ブロックアドレスを含む転送開始ブロックから前記転送終了ブロックアドレスを含む転送終了ブロックまで連続的に前記画像データを転送し、さらに前記各ブロック内の転送画像開始ビットアドレス及び転送画像終了ビットアドレスに基づいて前記ソースマスクデータ及び前記デスティネーションマスクデータを生成し、前記マスク演算手段は、前記デスティネーションマスクデータを基準として、前記ソースマスクデータと前記デスティネーションマスクデータを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うことを特徴とする。
【0009】
また、この発明に係る画像表示処理システムは、画像データを記憶する画像データ記憶装置と、この画像データ記憶装置内に記憶された画像データの転送元領域及び転送先領域に関するパラメータを出力する中央処理装置と、この中央処理装置から出力された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置と、前記画像データ記憶装置に記憶された画像データを表示する画像表示装置とを備えた画像表示処理システムにおいて、前記画像データは、1ピクセルが1又は複数のビットで構成された画像データであり、前記中央処理装置は、前記1ピクセルを構成するビット数を前記画像データ転送装置に出力し、前記画像データ転送装置は、前記1ピクセルの画像データよりも大きいブロック単位で画像データを転送し、且つ転送元領域の画像データと転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行したのち、前記画像データ記憶装置に格納し、前記指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのビット数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始ブロックアドレス及び転送終了ブロックアドレスを算出し、前記画像データ記憶装置のアドレスの上位を第1のアドレス、下位を第2のアドレスとし、前記第1のアドレスを固定、前記第2のアドレスを連続的に変化させ、前記転送開始ブロックアドレスを含む転送開始ブロックから前記転送終了ブロックアドレスを含む転送終了ブロックまで連続的に前記画像データを転送し、 前記各ブロック内の転送画像開始ビットアドレス及び転送画像終了ビットアドレスに基づいて前記転送元領域以外をマスクするソースマスクデータ及び転送先領域以外の領域をマスクするデスティネーションマスクデータを生成すると共に、前記デスティネーションマスクデータを基準として、これら前記ソースマスクデータ及び前記デスティネーションマスクデータを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うものであることを特徴とする。
【0010】
この発明によれば、指定された転送元及び転送先領域(以下、この段落のみ「転送領域」とする。)に関するパラメータに基づき、画像データ記憶装置に記憶された転送領域の画像データを演算処理し転送する際に、画像データを1ピクセルが1又は複数のビットで構成された画像データであるとして、この1ピクセルの画像データよりも大きいブロック単位で画像データを転送し、転送領域でブロック内における位置合わせを行い演算処理を実行することで、画像データの高速転送をすることができる。
【0011】
また、この発明では、画像データは、1ピクセルが1又は複数のビットで構成されたものであるから、1ピクセルを任意のビット数で表現可能であると共に、任意の色数を設定することができ、メモリを有効に使用することができる。
【0012】
なお、この発明において、指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのビット数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始及び転送終了ブロックアドレスを算出し、転送開始ブロックから転送終了ブロックまで連続的に画像データを転送するようにすると、画像データを高速に転送することができる。更に、この発明において、各ブロック内の転送画像開始及び終了ビットアドレスに基づき転送領域以外をマスクするマスクパターンを生成し、転送領域でブロック内における位置合わせを行うようにすると、ピクセルが何ビットで構成されていても任意の位置に記憶された転送元及び転送先のデータの位置を合わせて演算処理を行うことができる。
【0013】
【発明の実施の形態】
以下、図面を参照して、この発明に係る画像表示処理システムの実施例を説明する。
図1は、この発明の一実施例に係る画像表示処理システムの基本構成を説明するためのブロック図である。
この画像表示処理システムは、表示すべき画像データを記憶するDRAM(Dynamic Random Access Memory)等からなるローカルメモリ4と、このローカルメモリ4に記憶された画像データの任意の矩形領域を転送するための種々のパラメータを出力するCPU1と、このCPU1から与えられるパラメータに基づいて前記ローカルメモリ4上の矩形領域の画像データを転送処理する画像データ転送装置2と、この画像データ転送装置2とローカルメモリ4との間のインターフェイスであって画像データのアクセスを制御するメモリコントローラ3と、ローカルメモリ4のスクリーンエリアの画像データを表示するCRTディスプレイ、液晶ディスプレイ等の表示装置5とを備えて構成されている。
【0014】
このうち画像データ転送装置2の機能の概略を図2に示す。画像データ転送装置2は、ローカルメモリ4上の非表示領域又は表示領域に記憶された転送元データ(以下、ソースデータと呼ぶ。)Sの矩形領域及び表示領域に記憶された転送先データ(以下、デスティネーションデータと呼ぶ。)Dの矩形領域をそれぞれ定義するパラメータ、並びにソースデータSに付加される非表示領域に記憶された任意のパターンデータPの矩形領域を定義するパラメータをCPU1から受け取り、ローカルメモリ4からソース、デスティネーション及びパターンの各データを取り込み、これらのデータ間で所定のラスタ演算処理を施してデスティネーションエリアに書き込む処理を実行する。
【0015】
ここで、ソースデータS、ディスティネーションデータDは、1ピクセルが1又は複数のビットからなるモノクロームデータ又はカラーデータである。この1ピクセルを構成するビット数を、ここではBPP(ビット・パー・ピクセル)と呼ぶ。
【0016】
以下、この画像データ転送装置2について詳細に説明する。
図3は、この画像データ転送装置2の詳細な構成を示すブロック図である。
CPU1から送られてくるデスティネーションエリア、ソースエリア及びパターンエリアを特定するパラメータは、インターフェイス11を介してデスティネーションアドレス計算回路12、ソースアドレス計算回路13及びパターンアドレス計算回路14にそれぞれ供給される。これらのアドレス計算回路12,13,14では、1スキャンライン毎にデスティネーションエリア、ソースエリア及びパターンエリアのローカルメモリ4上での転送開始を示すスタートアドレス(FBSPi)と転送終了を示すエンドアドレス(FBEPi)とを計算する。その値がそれぞれデスティネーションアドレスカウンタ15、ソースアドレスカウンタ16及びパターンアドレスカウンタ17に渡される。
【0017】
また、この画像データ転送装置2には、ローカルメモリ4から転送された画像データを一時格納するための3つのSRAM(Static Random Access Memory)、即ち、デスティネーションSRAM18、ソースSRAM19及びパターンSRAM20が備えられている。各アドレスカウンタ15,16,17は、ローカルメモリ4をセクタ、ブロック及びバイトの単位にそれぞれ階層化し、各SRAM18,19,20に転送するセクタのアドレスを出力する。これにより、一セクタ分のデータがブロック単位でSRAM18,19,20に転送される。
【0018】
転送開始ピクセルと転送終了ピクセルとが丁度ブロックの先頭及び末尾であるとは限らないので、転送開始及び転送終了の際のブロックには、転送すべきピクセルデータ以外のデータが含まれることがある。各アドレスカウンタ15,16,17は、これらのデータをマスクするためのマスクデータを生成し、マスク演算回路23に供給する。マスク演算回路23は、入力されたマスクデータに基づいて、各SRAM18,19,20からデータを読み出して、ラスタ演算回路21にデータを送るための計算を実行する。ラスタ演算回路21は、各SRAM18,19,20からセクタデータを1ブロック単位で読み出し、マスク演算回路23からの演算結果も読み出してラスタ演算を行い、その演算結果を出力FIFO22に格納する。FIFO22に格納されたデータは、所定のタイミングでローカルメモリ4のデスティネーションエリアに転送される。コントローラ24は、CPU1からの制御命令に従い、各回路をコントロールする。
【0019】
図4は、この画像データ転送装置2の処理の流れを示すフローチャートである。
まず、各アドレス計算回路12,13,14の内部に設定される転送スキャンラインYの初期値としてY=YSがロードされる(S1)。次に、そのスキャンラインのスタートアドレス(FBSPi)とエンドアドレス(FBEPi)とが、それぞれアドレス計算回路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)。
【0020】
もし、ソースSRAM19にストアされているセクタデータの処理が終了した場合には(S7)、次のセクタデータを転送する(S4)。また、デスティネーションSRAM18にストアされているセクタデータの処理が終了した場合には、ラスタ演算終了後、出力FIFO22にストアされたデータをローカルメモリ4に書き込み(S8)、新たなセクタデータをデスティネーションSRAM18に転送する(S3)。また、パターンSRAM20にストアされているセクタデータの処理が終了した場合には(S7)、次のセクタデータを転送する(S4)。
【0021】
以上の処理を繰り返し、1ライン分のデータの処理が終了したら(S9)、Yを更新し(S10)、次のラインの処理に移る。そして、最後のラインの処理を終了したら、矩形領域の処理は終了する(S11)。
【0022】
次に、この画像データ転送装置2のより具体的な動作について説明する。
図5(a)は、転送矩形領域を含む画像データの矩形(表示)領域を更に詳細に示す図である。この矩形領域は、デスティネーションデータDについてはスクリーン領域、ソースデータSについてはスクリーン領域又はオフスクリーン領域、パターンデータPについてはオフスクリーン領域に対応する。また、ソースデータについては、カラーデータの転送イメージを示している。ここに表示された各パラメータは、前述したようにCPU1から画像データ転送装置2に与えられるものであって、次の通りである。
【0023】
BASE:転送矩形領域を含む矩形領域の基準位置(通常は領域の最も左上の画素の位置)に対応するローカルメモリ4上の座標値をビットで表したデータ。スクリーンエリアの基点を示す場合もあれば、オフスクリーンエリアの基点を示す場合もある。
PTCH:転送矩形領域を含む矩形領域の1ラインの幅をビット数で表したデータ。
XS:転送矩形領域の転送開始X座標値をピクセルで表したデータ。
YS:転送矩形領域の転送開始Y座標値をスキャンラインで表したデータ。
XEXT:転送矩形領域のX方向の幅をピクセル数で表したデータ。
YEXT:転送矩形領域のY方向の幅をスキャンライン数で表したデータ。
【0024】
XDIR:転送がXの正・負のいずれの方向から行われるかを示したデータで、0のとき正(右向き)で、1のとき負(左向き)。即ち、図6に示すように、XDIRが0の場合、XSは転送矩形領域の左端となり、XはXSから正の方向に更新される。また、XDIRが1の場合、XSは転送矩形領域の右端となり、XはXSから負の方向に更新される。
【0025】
YDIR:転送がYの正・負のいずれの方向から行われるかを示したデータで、0のとき正(下向き)で、1のとき負(上向き)。即ち、図6に示すように、YDIRが0の場合、YSは転送矩形領域の上端となり、YはYSから正の方向に更新される。また、YDIRが1の場合、YSは転送矩形領域の下端となり、YはYSから負の方向に更新される。
【0026】
ここで、スキャンラインY=iで与えられたときの第iライン内のスタートアドレス(FBSPi)及びエンドアドレス(FBEPi)は、XDIR=0のとき、次式で与えられる。
【0027】
【数1】
FBSPi=BASE+i×PTCH+XS×BPP
FBEPi=BASE+i×PTCH+(XS+XEXT)×BPP−1
【0028】
また、XDIR=1のときは、次式で与えられる。
【0029】
【数2】
FBSPi=BASE+i×PTCH+(XS+1)×BPP−1
FBEPi=BASE+i×PTCH+(XS−XEXT+1)×BPP
【0030】
図5(b)は、BASE=0としたときのY=iにおけるスタートアドレス(FBSPi)及びエンドアドレス(FBEPi)をローカルメモリ4上の連続したデータとして示した図である。
【0031】
このように、デスティネーションアドレス計算回路12、ソースアドレス計算回路13及びパターンアドレス計算回路14でそれぞれ計算されたスタートアドレスとエンドアドレスとは、デスティネーションアドレスカウンタ15、ソースアドレスカウンタ16及びパターンアドレスカウンタ17に1スキャンライン毎にセットされる。
【0032】
各アドレスカウンタ15,16,17は、ローカルメモリ4を階層化し、画像データ転送装置2とローカルメモリ4とのインターフェイスを、メモリコントローラ3を経由して一連の連続したデータ単位毎に行うことで、効率的にデータを転送する。このため、アドレスを次のように分解する。
【0033】
即ち、各アドレスカウンタ15,16,17は、受け取ったスタートアドレス(FBSPi)とエンドアドレス(FBEPi)とを、図7(a)に示すように、上位側からセクタアドレスkビット、ブロックアドレスmビット及びビットアドレス8*2nビットに分解することで、ローカルメモリ4を階層化する。全体のビットデータを指定するアドレスは、同図(b)に示すように、k+m+8*2n=Wビットとなり、ローカルメモリ4の容量は、最大2W/8バイトとなる。換言すると、ローカルメモリ4は、2k個のセクタで構成され、1セクタは2m個のブロックで構成される。1ブロックは、2nバイトから構成される。図7(a)の例は、m=3,n=1の例である。
【0034】
1ブロックのバイト数2nバイトは、ローカルメモリ4のデータバス幅と等しい。即ち、ローカルメモリ4への1回のアクセスで2nバイト(1ブロック)分のデータを転送することができる。ローカルメモリ4へのアクセスは、2nバイト(1ブロック)を単位として連続的に行われる。2nバイト(1ブロック)分のデータ転送が最小で1回、最大で2m回連続し、最大の場合には、1セクタ分のデータが連続して転送されることになる。各SRAM18〜20のデータバス幅は、ローカルメモリ4のバス幅と等しい2nバイトであり、アドレスはmビットとなる。これは1セクタ分のデータのサイズと等しい。
【0035】
図7(b)に示すように、ローカルメモリ4のアドレスの上位をローアドレス、下位をカラムアドレスとし、ローアドレスを固定、カラムアドレスのみを連続的に変化させるページモード伝送によって更に高速のデータ転送が実現される。
【0036】
図8は、アドレスカウンタ15〜17の基本構成を示す図である。
スタートアドレス(FBSP)は、スタートアドレスレジスタ30にロードされる。同時にFBSPは、アドレス更新回路31を経由して、上位kビット(FBSP[k+m+8*2n−1:m+8*2n])がセクタアドレスレジスタ32に、中央のmビット(FBSP[m+8*2n−1:8*2n])がブロックアドレスレジスタ33に、下位8*2nビット(FBSP[8*2n:0])がビットアドレスレジスタ34にそれぞれロードされる。エンドアドレス(FBEP)は、エンドアドレスレジスタ35にロードされる。
【0037】
1セクタ分のデータ取込に先立ち、まず、デスティネーションSRAM18,ソースSRAM19,パターンSRAM20にローカルメモリ4内のデータを転送するために、レジスタ32に格納されたローカルメモリ4のセクタのアドレスを示すセクタアドレス(SEC)がメモリコントローラ3に出力されると共に、そのセクタにおいて転送すべきブロック数(BLKCNT)及びセクタ内の転送すべき最初のブロックのアドレス(セクタ内のブロックがスタートするアドレス)を示すブロックスタートアドレス(BLKSTR)がセクタ内ブロック演算回路45等で計算され、メモリコントローラ3に送られる。また、セクタ内ブロック演算回路45は、上述したブロック数(BLKCNT)及びブロックスタートアドレス(BLKSTR)の他、セクタ内のブロックが終了するアドレスを示すブロックエンドアドレス(BLKEND)も計算する。
【0038】
このセクタ内ブロック演算回路45での計算には、セクタスタートコンパレータ37の出力であるセクタスタートフラグ(SECSTRF)、セクタエンドコンパレータ36の出力であるセクタエンドフラグ(SECENDF)、スタートアドレスレジスタ30に格納されたブロックスタートアドレス(FBSP[m+−1:8*2n])、エンドアドレスレジスタ35に格納されたブロックエンドアドレス(FBEP[m+8*2n−1:8*2n])及び転送のXの方向を表すXDIR等が入力され用いられる。
【0039】
セクタスタートコンパレータ37はスタートアドレスレジスタ30からのスタートアドレスのセクタアドレス(FBSP[k+m+8*2n−1:m+8*2n])とセクタアドレスレジスタ32からのセクタアドレス(SEC)とを比較し、等しいときはその出力データ(SECSTRF)を1とし、等しくないときは0とする。また、セクタエンドコンパレータ36はエンドアドレスレジスタ35からのエンドアドレスのセクタアドレス(FBEP[k+m+W−1:m+W])とセクタアドレスレジスタ32からのセクタアドレス(SEC)とを比較し、等しいときはその出力データ(SECENDF)を1とし、等しくないときは0とする。
【0040】
図9は、セクタアドレスレジスタ32に格納されているセクタデータを説明するための図である。
例えば、XDIR=0と定義され、SECSTRF,SECENDFが0のとき、セクタアドレスレジスタ32に格納されているセクタアドレスは、図9(a)に示すように、矩形領域を構成するラインの最初のセクタではなく、最後のセクタでもないことがわかる。この場合、セクタ内にあるブロックの数(BLKCNT)は2m個で、ブロックのスタートアドレス(BLKSTR)は0、エンドアドレス(BLKEND)は2m-1となる。
【0041】
SECSTRFが1でSECENDFが0のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最初のセクタであることが同図(b)から分かる。この場合、セクタ内にあるブロックの数は、2m−FBSP[m+8*2n−1:8*2n]個となり、ブロックのスタートアドレスはFBSP[m+8*2n−1:8*2n]、エンドアドレスは2m-1となる。
【0042】
また、SECSTRFが0でSECENDFが1のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最後のセクタであることが同図(c)から分かる。この場合、セクタ内にあるブロックの数はFBEP[m+8*2n−1:8*2n]+1個となり、ブロックのスタートアドレスは0でエンドアドレスはFBEP[m+8*2n−1:8*2n]となる。
【0043】
更に、SECSTRF,SECENDFともに1のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最初のセクタであり、最後のセクタでもあることが同図(d)から分かる。この場合、ブロックの数は、FBEP[m+8*2n−1:8*2n]−FBSP[m+8*2n−1:8*2n]+1個となり、ブロックのスタートアドレスはFBSP[m+8*2n−1:8*2n]、エンドアドレスはFBEP[m+8*2n−1:8*2n]となる。上記の結果と、XDIR=1のときのそれぞれの場合とを表にまとめると、図10のようになる。
【0044】
ブロックスタートコンパレータ39は、スタートアドレスレジスタ30のブロックアドレス(FBSP[m+8*2n−1:8*2n])部分とブロックアドレスレジスタ33に格納されたブロックアドレス(BLK)とを比較し、等しいときはその出力データ(BLKSTRF)を1、等しくないときは0として出力する。また、ブロックエンドコンパレータ38は、エンドアドレスレジスタ35のブロックアドレス(FBEP[m+8*2n−1:8*2n])部分とブロックアドレスレジスタ33に格納されたブロックアドレス(BLK)とを比較し、等しいときはその出力データ(BLKENDF)を1、等しくないときは0として出力する。
【0045】
上述の各コンパレータ36〜39の出力SECENDF,SECSTRF,BLKENDF,BLKSTRFに基づき、スタートマスク演算回路46でスタートマスク(STRMSK)、エンドマスク演算回路47でエンドマスク(ENDMSK)がそれぞれ計算される。図12に示すように、スタート及びエンドマスクは共に0又は1のデータからなる連続した8*2nビットのパターンであり、各マスクの1ビットが各SRAM18,19,20から読み出された1ビット分のデータに対応し、8*2nビットのパターンは1ブロック分のデータに対応するものである。
【0046】
マスク論理積演算回路48は、スタート及びエンドマスク演算回路46,47からの出力データであるスタート及びエンドマスクを入力し、これらの論理積データ(AMSK)を計算することで、スタートアドレス(FBSP)とエンドアドレス(FBEP)との間に存在するビットには1を、それ以外には0をフラグとして与える役割を担っている。
【0047】
このマスクの計算には、セクタスタートコンパレータ37の出力(SECSTRF)と、セクタエンドコンパレータ36の出力(SECENDF)に加え、ブロックスタートコンパレータ39の出力(BLKSTRF)と、ブロックエンドコンパレータ38の出力(BLKENDF)が用いられる。ブロックスタートコンパレータ39は、スタートアドレスレジスタ30のスタートアドレス(FBSP)のブロックアドレスFBSP[m+8*2n−1:8*2n]とブロックアドレスレジスタ33の値BLKとを比較し、等しいときはBLKSTRF=1とし、等しくないときはBLKSTRF=0とする。ブロックエンドコンパレータ38は、エンドアドレスレジスタ35のエンドアドレス(FBEP)のブロックアドレスFBEP[m+8*2n−1:8*2n]とブロックアドレスレジスタ33の値BLKとを比較し、等しいときはBLKENDF=1とし、等しくないときはBLKENDF=0とする。
【0048】
スタートマスク演算回路46でのスタートマスク(STRMSK)の計算は、例えば図12に示すように、XDIR=0であり、且つFBSPがブロック内にあるとき、即ちSECSTRFとBLKSTRFとが共に1のとき、8*2nビット内のすべてが1である2進数パターン(8*2n−1の2進表現)をビットアドレスレジスタ34内のビットアドレス(BIT)で示される数だけ左にシフトし右から0を詰めることで行われる。ブロック内スタートアドレス演算回路49は、このときのマスクがスタートするビットパターン内のアドレス(BITSTR)を計算する。
【0049】
同様に、XDIR=1であり、且つFBSPがブロック内にあるとき、即ちSECSTRFとBLKSTRFとが共に1のとき、スタートマスク(STRMSK)の計算は、8*2nビット内のすべてが1である2進数パターン(8*2n−1の2進表現)を8*2n−1−BITだけ右にシフトし、左から0を詰めることで行われる。ブロック内スタートアドレス演算回路49は、このときのマスクがスタートするビットパターン内のアドレス(BITSTR)を計算する。以上のシフトの計算例を図13に示す。
【0050】
一方、図14に示すように、エンドマスク演算回路47でのエンドマスクの計算は、XDIR=0であり、且つFBEPがブロック内にあるとき、即ちSECENDFとBLKENDFとが共に1のとき、8*2nビット内のすべてが1である2進数パターン(8*2n−1の2進表現)を8*2n−1−FBEP[8*2n−1:0](FBEP[8*2n−1:0]はFBEPのビットアドレス)数だけ右にシフトし左から0を詰めることで行われる。
【0051】
同様に、XDIR=1であり、且つFBEPがブロック内にあるとき、即ちSECENDFとBLKENDFとが共に1のときのエンドマスクの計算は、8*2nビット内のすべてが1である2進数パターン(8*2n−1の2進表現)をFBEP[8*2n−1:0]だけ左にシフトし、右から0を詰めることで行われる。このようにして計算された各マスクは、ブロック毎にマスク演算回路23に送られる。
【0052】
アドレス更新回路31は、セクタアドレスレジスタ32からの出力セクタアドレス(SEC)とブロックアドレスレジスタ33からの出力ブロックアドレス(BLK)とを一連の値として捉え、コントローラ24からの指示によりエンドアドレスレジスタ35内の値と一致するまでBLK単位でアドレスをインクリメントし、上記セクタアドレス(SEC)とブロックアドレス(BLK)を更新する。この場合、エンドアドレスレジスタ35内の値と一致するかどうかは、エンドフラグ回路51にてSECENDF及びBLKENDFが共に1であることにより検出される。
【0053】
次に、この画像データ転送装置2内のマスク演算回路23について説明する。
マスク演算回路23は、主に各アドレスカウンタ15,16,17から送られてきたデスティネーション,ソース,パターンの各マスクデータAMSK(以下、これをそれぞれDSTMSK,SRCMSK,PATMSKと呼ぶ。)及び各ブロック内スタートアドレスBYTSTR(以下、これをそれぞれDBYTSTR,SBYTSTR,PBYTSTRと呼ぶ。)等に基づき、画像表示装置5のデータ転送を制御するための計算を行うものである。なお、各スタートアドレスは、そのときのマスクがスタートするアドレスを表しているものである。
【0054】
図15に示すように、デスティネーション,ソース,パターンの各スタートアドレス(FBSP)は、ローカルメモリ4内のビットデータの任意のアドレスを指している。マスク演算回路23は、これらのアドレスに基づいて、データ転送時にデスティネーション,ソース,パターンの各ビットが転送のスタートビットからそれぞれ1対1で対応するように転送を制御している。
【0055】
図16は、このマスク演算回路23の内部構成を示すブロック図である。
マスク演算回路23は、ローカルメモリ4からSRAM18〜20にそれぞれ転送されたデスティネーション,ソース,パターンのいずれかのセクタデータがなくなるまで、各SRAM18,19,20からそのデータを読み出してラスタ演算回路21に出力するための計算を行う。
【0056】
はじめに、図17(a)に示すように、デスティネーションアドレスカウンタ15からのDSTMSKと、ソースアドレスカウンタ16からのSRCMSKと、パターンアドレスカウンタ17からのPATMSKとがマスク演算回路23に入力され、各マスクセレクタ53,54,55を通過し、それぞれのレジスタ56,57,58に格納される。一方、上記各アドレスカウンタ15,16,17からの各ブロック内のビットスタートアドレスDBITSTR,SBITSTR,PBITSTRは、各アドレスセレクタ60,61,62を通って後段の減算器63,64,65,66に入力される。
【0057】
減算器63は、DSTMSKとSRCMSKのマスクがスタートする1ブロック内のアドレス差(SRCSFT)を計算しレジスタ67に出力する。同様に減算器65は、DSATMSKとPATMSKのマスクがスタートする1ブロック内のアドレス差(PATSFT)を計算しレジスタ69に出力する。減算器63,65から出力されレジスタ67,69に格納されたアドレス差SRCSFT,PATSFTとXDIRとをシフタ71,72は入力し、シフタ71がソースマスクデータSRCMSKを、シフタ72がパターンマスクデータPATMSKをそれぞれそのマスクのスタートがDSTMSKに一致するまでシフトする。このときのシフトは、DSTMSKに対して正・負の両方向に可能なものである。そして、その結果は、調整済みのマスクデータ(SRCADJ,PATADJ)としてそれぞれシフタ71,72から論理演算回路73に出力される。論理演算回路73は、同図(a)に示すように、これらのマスクデータの他、DSTMSKを入力し論理積を計算することでDSTMSK内で処理すべきビットを決定する。
【0058】
同時に、減算器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との計算に寄与した部分を示している。
【0059】
図17(c)及び(d)に示すように、ソースマスク論理演算回路77及びパターンマスク論理演算回路79は、ソースマスクSRCMSK,パターンマスクPATMSKから、それぞれマスクSRCRMV及びPATRMVに対応する部分のマスクを取り除く演算をする。その結果、取り除かれ出力されたマスク(SRCUDT,PATUDT)が次に計算すべきSRCMSK,PATMSKとして更新されると共に、これらはそれぞれソースマスクセレクタ54及びパターンマスクセレクタ55を通り、レジスタ57,58に格納される。また、両論理演算回路77,79は、マスクが存在しないことが分かった時点でマスクがゼロとなったことを表す信号(SRCZR,PATZR)をそれぞれコントローラ24に対して出力する。この信号SRCZR及びPATZRを受けたコントローラ24は、新たな1ブロック分のマスクデータをソース及びパターンマスクセレクタ54,55を通してレジスタ57,58に格納するように制御を行う。
【0060】
また、このときコントローラ24は、ソース及びパターンアドレスカウンタ16,17にブロックを更新するように指示を出し、各アドレスカウンタ16,17から出力された新たな1ブロック分のマスクデータがレジスタ57,58に格納される。このマスクデータがレジスタ57,58に格納されるのと同時に、新たなスタートアドレスSBITSTR,PBITSTRが各アドレスカウンタ16,17からソース及びパターンアドレスセレクタ61,62に入力され、その後マスクスタートアドレス(SSTAD,PSTAD)として前述のように減算器63〜66に出力される。
【0061】
このように更新されたソース及びパターンマスク(SRCMSK,PATMSK)は、それぞれソースプライオリティエンコーダ(SPRIENC)81,パターンプライオリティエンコーダ(PPRIENC)80に入力され、マスクがスタートするアドレスSXUDT,PXUDTが計算される。また、更新されたマスクがゼロでない場合、ソース及びパターンアドレスセレクタ61,62は、先に計算されたアドレスSXUDT,PXUDTをマスクスタートアドレスSSTAD,PSTADとして、SSTADは減算器63,64へ、PSTADは減算器65,66へとそれぞれ出力する。
【0062】
一方、図17(b)に示すように、デスティネーションマスク論理演算回路76は、入力したデスティネーションマスクデータDSTMSKの論理演算回路73からのPRCMSKと一致する部分を取り除く処理をする。その出力である取り除かれたマスクDSTUDTは、次に計算すべきDSTMSKとして更新され、デスティネーションマスクセレクタ53を通ってレジスタ56に格納されるものである。この論理演算回路76もまた、マスクが存在しないとわかった場合、マスクがゼロとなったことを表す信号DSTZRをコントローラ24に出力する。この信号DSTZRを受けたコントローラ24は、デスティネーションアドレスカウンタ15にブロックを更新させ、新たな1ブロック分のマスクデータを出力させる。このマスクデータは、デスティネーションマスクセレクタ53に入力され、レジスタ56に格納される。
【0063】
この更新されたデスティネーションマスクDSTMSKは、デスティネーションプライオリティエンコーダ(DPRIENC)82に入力され、そこでマスクがスタートするアドレスDXUDTが計算される。更新されたマスクがゼロでない場合、デスティネーションアドレスセレクタ60は、先に計算されたアドレスDXUDTをマスクスタートアドレスDSTADとして、減算器63〜66へとそれぞれ出力する。
【0064】
上述のようなマスク演算処理過程において、例えばソースのマスクがゼロとなり、且つソースSRAM19にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、次のセクタデータをソースSRAM19に転送するように制御を行う。また、デスティネーションのマスクがゼロとなり、且つデスティネーションSRAM18にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、ラスタ演算回路21によるラスタ演算の終了を待って出力FIFO22に格納された更新後のデスティネーションデータをローカルメモリ4に書き込み、次のセクタデータをデスティネーションSRAM18に転送する制御を行う。更に、パターンのマスクがゼロとなり、且つパターンSRAM20にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、次のセクタデータをパターンSRAM20に転送するように制御を行う。
【0065】
また、このとき論理演算回路78は、ソースデータのバイトパターンの中で、PRCMSKに寄与のある部分を示すマスク(SRCPRC)を計算する。このマスクSRCPRCは、以下のような計算によって得ることができる。即ち、SRCPRCがゼロのビットはPRCMSKに対して寄与しないが、SRCPRCが1のビットはPRCMSKに対して寄与することが前提としてある場合は、SRCPRC=SRCMSK&SRCRMVとして求めることができる。これは、後段のラスタ演算回路21にて、イネーブルフラグの計算に用いられるものである。
【0066】
次に、この画像データ転送装置2内のラスタ演算回路21について簡単に説明する。図18は、ラスタ演算回路21の内部構成を示す図であり、このラスタ演算回路21は、デスティネーション,ソース,パターンの各SRAM18,19,20から読み出したデータに対してラスタ演算するものである。
【0067】
ラスタ演算回路21は、主にソースSRAM19からの1ブロック分のデータを、ビットデータを単位としてシフトするSBシフタ150,パターンSRAM20からの1ブロック分のデータを、同じくビットデータを単位としてシフトするPBシフタ151,1ビットのラスタ演算を実行する8*2n(=N)個の1ビットラスタ演算回路1521〜152N,ラスタ演算の結果を格納する8*2n個のレジスタ1541〜154N等から構成されている。
【0068】
まず、デスティネーションSRAM18から読み出された8*2nビットのデスティネーションデータは、それぞれ対応する1ビットラスタ演算回路1521〜152nに入力される。ソースSRAM19から読み出された8*2nビットのソースデータは、マスク演算回路23で計算されたシフト分データである1ブロック内のアドレス差SRCSFTと等しい分だけSBシフタ150にてビット単位でシフトされ、デスティネーションデータと対応させられる。同様に、パターンSRAM20から読み出された8*2nビットのパターンデータも、マスク演算回路23で計算されたPATSFTと等しい分だけPBシフタ151にてビット単位でシフトされ、デスティネーションデータと対応させられる。1ビットラスタ演算回路1521〜152Nは、指定されたコードROPCMDにより、これらのデスティネーション,ソース,パターンデータでラスタ演算を行い、この結果をレジスタ1541〜154Nに格納する。このとき、マスク演算回路23で計算されたPRCMSKを各レジスタ1541〜154Nは入力し、PRCMSKが1になるデータのみを格納している。
【0069】
このラスタ演算回路21の後段にある出力FIFO22は、1ブロック内のすべてのビットデータのラスタ演算が終了したところで、レジスタ1541〜154Nに格納されている結果を自身のメモリ(図示せず)に書き込む。デスティネーションの1セクタ分のデータがすべて出力FIFO22内にあるメモリに書き込まれたところで、メモリコントローラ3に1セクタ分のデータを連続的に出力し、そのデータをローカルメモリ4に書き込むことで、データの転送を行っている。
【0070】
【発明の効果】
以上述べたように、この発明によれば、指定された転送元及び転送先領域転に関するパラメータに基づき、画像データ記憶装置に記憶された転送領域の画像データを演算処理し転送する際に、画像データを1ピクセルが1又は複数のビットで構成された画像データであるとして、この1ピクセルの画像データよりも大きいブロック単位で画像データを転送し、転送領域でブロック内における位置合わせを行い演算処理を実行することで、画像データの高速転送が可能であると共に、画像データは、1ピクセルが1又は複数のビットで構成されたものであるから、1ピクセルを任意のビット数で表現可能であると共に、任意の色数を設定することができ、メモリを有効に使用することができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の一実施例に係る画像表示処理システムの基本構成を説明するためのブロック図である。
【図2】 同システムにおける画像データ転送装置の機能を概略的に示す図である。
【図3】 同装置の詳細な構成を示すブロック図である。
【図4】 同装置の動作を示すフローチャートである。
【図5】 同装置における転送矩形領域を含む画像データの矩形(表示)領域を更に詳細に示す図である。
【図6】 同装置における転送矩形領域のXDIR,YDIRを概略的に示す図である。
【図7】 同装置におけるローカルメモリ内に構築されている画像データの構成を示す図である。
【図8】 同装置内のアドレスカウンタ内部の基本構成を示す図である。
【図9】 同カウンタ内部のセクタアドレスレジスタに格納されているセクタデータを説明するための図である。
【図10】 同カウンタ内部のセクタアドレスレジスタに格納されているセクタデータを示す図である。
【図11】 同カウンタ内部におけるマスク演算処理時の各データの構成を説明するための図である。
【図12】 同カウンタ内部におけるマスク演算処理時の各データの生成手順を説明するための図である。
【図13】 同カウンタ内部におけるマスク演算処理の結果を説明するための図である。
【図14】 同カウンタ内部におけるマスク演算処理の結果を説明するための図である。
【図15】 同装置におけるデスティネーション,ソース,パターンの各スタートアドレスのローカルメモリ内の構成を示す図である。
【図16】 同装置におけるマスク演算回路の内部構成を示すブロック図である。
【図17】 同装置におけるマスク演算回路での各データの処理を説明するための図である。
【図18】 同装置におけるラスタ演算回路の内部構成を示す図である。
【図19】 従来の画像表示処理システムの構成を示すブロック図である。
【符号の説明】
1…CPU、2…画像データ転送装置、3…メモリコントローラ、4…ローカルメモリ、5…表示装置、11…インターフェイス、12…デスティネーションアドレス計算回路、13…ソースアドレス計算回路、14…パターンアドレス計算回路、15…デスティネーションアドレスカウンタ、16…ソースアドレスカウンタ、17…パターンアドレスカウンタ、18…デスティネーションSRAM、19…ソースSRAM、20…パターンSRAM、21…ラスタ演算回路、22…出力FIFO、23…マスク演算回路、24…コントローラ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image display processing system for data constituting an image expressed on a plane in a raster scan type display device such as a CRT (Cathode Ray Tube), and more particularly to an image data transfer device for transferring image data of a specific area, and The present invention relates to an image display processing system.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, as a two-dimensional image data processing apparatus using a raster scan type display device such as a CRT, one disclosed in, for example, Japanese Patent Laid-Open No. 60-214392 is known. As shown in FIG. 19, the image display processing system includes a display controller 101 for image display processing in order to reduce the burden on the central processing unit (CPU) 102. The image data processing circuit 110 inside the display controller 101 is a static image data or a moving image data stored in a video RAM (hereinafter referred to as VRAM) 104 corresponding to the scanning speed of the screen of the CRT display device 105. Is output via the interface 111 and a synchronization signal SYNC necessary for scanning an image is output to the CRT display device 105.
[0003]
The still image and moving image data in this case is composed of a 2, 4 or 8-bit color code that specifies the 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.
[0004]
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. The command processing circuit 115 performs processing corresponding to various commands supplied from the CPU 102 via the interface 113.
[0005]
In the image display processing system having the above-described configuration, each bit of the color code of the dot to be transferred can be performed without moving the rectangular area including the still image in a short time without using the CPU, or when the color code is transferred. And a logical operation between each bit of the color code of the transfer destination dot and 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. In addition, this system includes a dot unit transfer mode in which a color code is transferred in units of dots and a byte unit transfer mode in which a color code is transferred in units of bytes.
[0006]
[Problems to be solved by the invention]
However, the above-described conventional image display processing system cannot execute predetermined logical operation processing and transparency processing while realizing high-speed transfer. In particular, due to the remarkable improvement in image processing technology and the accompanying rapid increase in the amount of image data transferred, there is no need for fine image processing such as high-speed transfer and setting of pixels to an arbitrary number of bits in the above-described devices. It has become difficult to respond.
[0007]
The present invention has been made in view of such problems, and can perform image processing and transfer data control more efficiently, and can arbitrarily set the number of bits of pixels and effectively use a memory. An object of the present invention is to provide an image data transfer device and an image display processing system that can perform the above-described processing.
[0008]
[Means for Solving the Problems]
The image data transfer device according to the present invention is configured to store the image data of the transfer source region and the image data of the transfer destination region stored in the image data storage device on the basis of the parameters relating to the designated transfer source region and transfer destination region. In the image data transfer apparatus that transfers to the transfer destination area after arithmetic processing, the image data is image data in which one pixel is composed of one or a plurality of bits, and the transfer source area and transfer of the image data storage apparatus An address counter for reading out image data in units of blocks larger than image data of one pixel from the destination area; data storage means for storing image data in units of blocks read from the image data storage device; and The calculation processing is performed by aligning the image data with the image data in the transfer destination area within the block. And a transfer start block address for each scan line including the transfer source area and the transfer destination area, based on the parameters relating to the designated transfer source area and transfer destination area and the number of bits per pixel. Address calculating means for calculating a transfer end block address and setting it in the address counter, and the transfer source area Source mask data to mask Mask areas other than the transfer destination area Destination mask data Mask calculating means for aligning the block in the block between the transfer source area and the transfer destination area, and the address counter is configured such that the upper address of the data storage means is the first address and the lower address is the first address. The first address is fixed, the second address is continuously changed, and the transfer start block including the transfer start block address is continuously transferred to the transfer end block including the transfer end block address. Transfer image data, and based on the transfer image start bit address and transfer image end bit address in each block The source mask data and the destination mask data And the mask calculation means Based on the destination mask data, the source mask data and the destination mask data are The transfer source area and the transfer destination area are used for alignment within the block.
[0009]
In addition, an image display processing system according to the present invention includes an image data storage device that stores image data, and a central processing that outputs parameters relating to a transfer source region and a transfer destination region of the image data stored in the image data storage device. And processing the image data of the transfer source area and the image data of the transfer destination area stored in the image data storage device based on the parameters relating to the transfer source area and the transfer destination area output from the central processing unit In the image display processing system comprising: an image data transfer device that transfers the image data to the transfer destination area; and an image display device that displays the image data stored in the image data storage device. Image data composed of one or a plurality of bits, and the central processing unit includes bits constituting one pixel. The image data transfer device transfers the image data in block units larger than the image data of 1 pixel, and the image data in the transfer source region and the image data in the transfer destination region After performing the arithmetic processing by performing alignment in the block, the data is stored in the image data storage device, and is based on the parameters relating to the designated transfer source area and transfer destination area and the number of bits 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, the upper address of the image data storage device is the first address, and the lower address is the second address. The first address is fixed, the second address is continuously changed, and the transfer start block address is changed. The image data is continuously transferred from a transfer start block including a transfer end block to a transfer end block including the transfer end block address, and the transfer source is based on the transfer image start bit address and the transfer image end bit address in each block. region Source mask data to mask Mask areas other than the transfer destination area Destination mask data As well as The source mask data and the destination mask data on the basis of the destination mask data The transfer source area and the transfer destination area are used for alignment in the block by using.
[0010]
According to the present invention, the image data in the transfer area stored in the image data storage device is processed based on the parameters relating to the designated transfer source and transfer destination areas (hereinafter referred to as “transfer area” only in this paragraph). When transferring, assuming that the image data is image data in which one pixel is composed of one or a plurality of bits, the image data is transferred in block units larger than the image data of one pixel, and the image data is transferred within the block in the transfer area. The image data can be transferred at high speed by performing the alignment process and performing the arithmetic processing.
[0011]
In the present invention, since one pixel is composed of one or a plurality of bits, one pixel can be expressed with an arbitrary number of bits, and an arbitrary number of colors can be set. And the memory can be used effectively.
[0012]
According to the present invention, the transfer start and transfer end blocks for each scanning line including the transfer source area and the transfer destination area based on the parameters relating to the designated transfer source area and transfer destination area and the number of bits per pixel. By calculating the address and continuously transferring the image data from the transfer start block to the transfer end block, the image data can be transferred at high speed. Furthermore, in the present invention, when a mask pattern for masking other than the transfer area is generated based on the start and end bit addresses of the transfer image in each block, and the alignment within the block is performed in the transfer area, the number of bits of the pixel Even if it is configured, it is possible to perform arithmetic processing by matching the positions of the data of the transfer source and the transfer destination stored at an arbitrary position.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of an image display processing system according to the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram for explaining the basic configuration of an image display processing system according to an embodiment of the present invention.
This image display processing system transfers a local memory 4 composed of a DRAM (Dynamic Random Access Memory) or the like for storing image data to be displayed, and an arbitrary rectangular area of the image data stored in the local memory 4. The CPU 1 that outputs various parameters, the image data transfer device 2 that transfers the image data of the rectangular area on the local memory 4 based on the parameters given from the CPU 1, the image data transfer device 2 and the local memory 4 A memory controller 3 that controls access to image data and a display device 5 such as a CRT display or a liquid crystal display that displays image data in the screen area of the local memory 4. .
[0014]
Among these, the outline of the function of the image data transfer apparatus 2 is shown in FIG. The image data transfer device 2 includes transfer source data (hereinafter referred to as source data) S stored in a non-display area or display area on the local memory 4 and transfer destination data (hereinafter referred to as source data) stored in the display area. (Referred to as destination data.) The CPU 1 receives parameters defining the rectangular areas of D, and parameters defining the rectangular areas of the arbitrary pattern data P stored in the non-display area added to the source data S from the CPU 1. Source, destination, and pattern data are fetched from the local memory 4, a predetermined raster calculation process is performed between these data, and a process of writing to the destination area is executed.
[0015]
Here, the source data S and the destination data D are monochrome data or color data in which one pixel is composed of one or a plurality of bits. Here, the number of bits constituting one pixel is called BPP (bit per pixel).
[0016]
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.
Parameters specifying the destination area, source area, and pattern area sent from the CPU 1 are supplied to the destination address calculation circuit 12, the source address calculation circuit 13, and the pattern address calculation circuit 14 via the interface 11, respectively. In these address calculation circuits 12, 13, and 14, a start address (FBSPi) indicating the start of transfer on the local memory 4 in the destination area, source area, and pattern area and an end address indicating the end of transfer (one scan line). FBEPi). The values are passed to the destination address counter 15, the source address counter 16, and the pattern address counter 17, respectively.
[0017]
Further, 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 address counter 15, 16, and 17 hierarchizes the local memory 4 in units of sectors, blocks, and bytes, and outputs the addresses of sectors to be transferred to the respective SRAMs 18, 19, and 20. As a result, data for one sector is transferred to the SRAMs 18, 19, and 20 in units of blocks.
[0018]
Since the transfer start pixel and the transfer end pixel are not always the beginning and end of the block, the block at the start and end of transfer may contain data other than the pixel data to be transferred. Each address counter 15, 16, 17 generates mask data for masking these data, and supplies the mask data to the mask operation circuit 23. The mask calculation circuit 23 reads out data from each of the SRAMs 18, 19, and 20 based on the input mask data, and executes a calculation for sending the data to the raster calculation circuit 21. The raster calculation circuit 21 reads sector data from each SRAM 18, 19, 20 in units of blocks, reads the calculation result from the mask calculation circuit 23, performs raster calculation, and stores the calculation result in the output FIFO 22. The data stored in the FIFO 22 is transferred to the destination area of the local memory 4 at a predetermined timing. The controller 24 controls each circuit in accordance with a control command from the CPU 1.
[0019]
FIG. 4 is a flowchart showing a processing flow of the image data transfer apparatus 2.
First, Y = YS is loaded as an initial value of the transfer scan line Y set in each address calculation circuit 12, 13, and 14 (S1). Next, the start address (FBSPi) and end address (FBEPi) of the scan line are 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).
[0020]
If the processing of the sector data stored in the source SRAM 19 is completed (S7), the next sector data is transferred (S4). When the processing of the sector data stored in the destination SRAM 18 is completed, the data stored in the output FIFO 22 is written to the local memory 4 after the raster operation is completed (S8), and new sector data is stored in the destination. The data is transferred to the SRAM 18 (S3). If the processing of the sector data stored in the pattern SRAM 20 is completed (S7), the next sector data is transferred (S4).
[0021]
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).
[0022]
Next, a more specific operation of the image data transfer device 2 will be described.
FIG. 5A is a diagram showing in more detail a rectangular (display) area of image data including a transfer rectangular area. This rectangular area corresponds to the screen area for the destination data D, the screen area or the off-screen area for the source data S, and the off-screen area for the pattern data P. As for source data, a transfer image of color data is shown. Each parameter displayed here is given from the CPU 1 to the image data transfer apparatus 2 as described above, and is as follows.
[0023]
BASE: Data representing the coordinate value on the local memory 4 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) in bits. 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 the number of bits.
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.
[0024]
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. 6, 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.
[0025]
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. 6, when YDIR is 0, YS becomes the upper end of the transfer rectangular area, and Y is updated from YS in the positive direction. When YDIR is 1, YS becomes the lower end of the transfer rectangular area, and Y is updated in a negative direction from YS.
[0026]
Here, the start address (FBSPi) and end address (FBEPi) in the i-th line when given by the scan line Y = i are given by the following equations when XDIR = 0.
[0027]
[Expression 1]
FBSPi = BASE + i × PTCH + XS × BPP
FBEPi = BASE + i × PTCH + (XS + XEXT) × BPP-1
[0028]
When XDIR = 1, it is given by the following equation.
[0029]
[Expression 2]
FBSPi = BASE + i × PTCH + (XS + 1) × BPP-1
FBEPi = BASE + i × PTCH + (XS−XEXT + 1) × BPP
[0030]
FIG. 5B is a diagram showing the start address (FBSPi) and the end address (FBEPi) at Y = i when BASE = 0, as continuous data on the local memory 4.
[0031]
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.
[0032]
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.
[0033]
That is, each of the address counters 15, 16, and 17 converts the received start address (FBSPi) and end address (FBEPi) into sector address k bits and block address m bits from the upper side as shown in FIG. And bit address 8 * 2 n The local memory 4 is hierarchized by breaking it into bits. The address for designating the entire bit data is k + m + 8 * 2 as shown in FIG. n = W bits, and the capacity of the local memory 4 is 2 at maximum W / 8 bytes. In other words, the local memory 4 is 2 k It consists of 1 sector, 1 sector is 2 m Consists of blocks. 1 block is 2 n Consists of bytes. The example of FIG. 7A is an example where m = 3 and n = 1.
[0034]
Number of bytes in one block 2 n The byte is equal to the data bus width of the local memory 4. That is, 2 is obtained by one access to the local memory 4. n Data for one byte (one block) can be transferred. Access to local memory 4 is 2 n It is continuously performed in units of bytes (one block). 2 n Byte (1 block) data transfer is at least once and at most 2 m In the maximum case, data for one sector is continuously transferred. The data bus width of each of the SRAMs 18 to 20 is equal to the bus width of the local memory 4 2 n It is a byte and the address is m bits. This is equal to the size of data for one sector.
[0035]
As shown in FIG. 7B, 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 changed continuously. Is realized.
[0036]
FIG. 8 is a diagram showing a basic configuration of the address counters 15 to 17.
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 to the upper k bits (FBSP [k + m + 8 * 2 n −1: m + 8 * 2 n ]) In the sector address register 32, the central m bits (FBSP [m + 8 * 2 n -1: 8 * 2 n ]) In the block address register 33, the lower 8 * 2 n Bit (FBSP [8 * 2 n : 0]) are loaded into the bit address register 34, respectively. The end address (FBEP) is loaded into the end address register 35.
[0037]
Prior to fetching data for one sector, first, a sector indicating the address of the sector of the local memory 4 stored in the register 32 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. An address (SEC) is output to the memory controller 3, and the block indicating the number of blocks to be transferred (BLKCNT) in the sector and the address of the first block to be transferred in the sector (address where the block in the sector starts) A start address (BLKSTR) is calculated by the intra-sector block arithmetic circuit 45 and the like and sent to the memory controller 3. The intra-sector block calculation circuit 45 also calculates a block end address (BLKEND) indicating an address at which the block in the sector ends, in addition to the number of blocks (BLKCNT) and the block start address (BLKSTR) described above.
[0038]
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 start address (FBSP [m + -1: 8 * 2 n ]), The block end address (FBEP [m + 8 * 2) stored in the end address register 35. n -1: 8 * 2 n ]) And XDIR indicating the X direction of transfer are input and used.
[0039]
The sector start comparator 37 receives the sector address (FBSP [k + m + 8 * 2] of the start address from the start address register 30. n −1: m + 8 * 2 n ]) And the sector address (SEC) from the sector address register 32, the output data (SECSTRF) is set to 1 when they are equal, and is set to 0 when they are not equal. The sector end comparator 36 compares the sector address (FBEP [k + m + W-1: m + W]) of the end address from the end address register 35 with the sector address (SEC) from the sector address register 32, and outputs an output if they are equal. Data (SECENDF) is set to 1, and is set to 0 when they are not equal.
[0040]
FIG. 9 is a diagram for explaining sector data stored in the sector address register 32.
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 m The block start address (BLKSTR) is 0 and the end address (BLKEND) is 2. m-1 It becomes.
[0041]
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 m -FBSP [m + 8 * 2 n -1: 8 * 2 n And the block start address is FBSP [m + 8 * 2 n -1: 8 * 2 n ], End address is 2 m-1 It becomes.
[0042]
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 [m + 8 * 2 n -1: 8 * 2 n ] +1, the start address of the block is 0 and the end address is FBEP [m + 8 * 2 n -1: 8 * 2 n ].
[0043]
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 [m + 8 * 2 n -1: 8 * 2 n ] -FBSP [m + 8 * 2 n -1: 8 * 2 n ] +1, and the start address of the block is FBSP [m + 8 * 2 n -1: 8 * 2 n ] End address is FBEP [m + 8 * 2 n -1: 8 * 2 n ]. The above results and the respective cases when XDIR = 1 are summarized in a table as shown in FIG.
[0044]
The block start comparator 39 receives the block address (FBSP [m + 8 * 2] of the start address register 30. n -1: 8 * 2 n ]) And the block address (BLK) stored in the block address register 33 are compared, and if equal, the output data (BLKSTRF) is output as 1, and if not equal, 0 is output. Further, the block end comparator 38 receives the block address (FBEP [m + 8 * 2] of the end address register 35. n -1: 8 * 2 n ]) And the block address (BLK) stored in the block address register 33 are compared, and if equal, the output data (BLKENDF) is output as 1, and if not equal, 0 is output.
[0045]
Based on the outputs SECENDF, SECSTRF, BLKENDF, and BLKSTRF 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. 12, the start and end masks are both continuous 8 * 2 consisting of 0 or 1 data. n It is a bit pattern, and one bit of each mask corresponds to one bit of data read from each SRAM 18, 19, 20 and 8 * 2 n The bit pattern corresponds to one block of data.
[0046]
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 a bit existing between the address and the end address (FBEP), and 0 is assigned to the other bit as a flag.
[0047]
In this mask calculation, in addition to the output of the sector start comparator 37 (SECSTRF) and the output of the sector end comparator 36 (SECENDF), the output of the block start comparator 39 (BLKSTRF) and the output of the block end comparator 38 (BLKENDF) Is used. The block start comparator 39 is a block address FBSP [m + 8 * 2] of the start address (FBSP) of the start address register 30. n -1: 8 * 2 n ] And the value BLK of the block address register 33, BLKSTRF = 1 if they are equal, and BLKSTRF = 0 if they are not equal. The block end comparator 38 receives the block address FBEP [m + 8 * 2] of the end address (FBEP) of the end address register 35. n -1: 8 * 2 n ] And the value BLK of the block address register 33, BLKENDF = 1 if they are equal, and BLKENDF = 0 if they are not equal.
[0048]
The calculation of the start mask (STRMSK) in the start mask calculation circuit 46 is, for example, as shown in FIG. 12, when XDIR = 0 and the FBSP is in the block, that is, when both SECSTRF and BLKSTRF are 1. 8 * 2 n Binary pattern (8 * 2) where all bits are 1 n -1 binary representation) is shifted to the left by the number indicated by the bit address (BIT) in the bit address register 34, and zeros are filled from the right. The intra-block start address calculation circuit 49 calculates an address (BITSTR) in the bit pattern at which the mask at this time starts.
[0049]
Similarly, when XDIR = 1 and FBSP is in the block, that is, when both SECSTRF and BLKSTRF are 1, the calculation of the start mask (STRMSK) is 8 * 2. n Binary pattern (8 * 2) where all bits are 1 n -1 (binary representation) 8 * 2 n This is done by shifting to the right by -1-BIT and padding with zeros from the left. The intra-block start address calculation circuit 49 calculates an address (BITSTR) in the bit pattern at which the mask at this time starts. A calculation example of the above shift is shown in FIG.
[0050]
On the other hand, as shown in FIG. 14, the calculation of the end mask in the end mask calculation circuit 47 is 8 * when XDIR = 0 and FBEP is in the block, that is, when both SECENDF and BLKENDF are 1. 2 n Binary pattern (8 * 2) where all bits are 1 n -1 (binary representation) 8 * 2 n -1-FBEP [8 * 2 n -1: 0] (FBEP [8 * 2 n -1: 0] is performed by shifting right by the number of FBEP bit addresses) and padding with zeros from the left.
[0051]
Similarly, when XDIR = 1 and FBEP is in a block, that is, when both SEKENDF and BLKENDF are 1, the calculation of the end mask is 8 * 2. n Binary pattern (8 * 2) where all bits are 1 n -1 binary representation) to FBEP [8 * 2 n -1: 0] is shifted to the left, and zeros are padded from the right. Each mask calculated in this way is sent to the mask arithmetic circuit 23 for each block.
[0052]
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.
[0053]
Next, the mask calculation circuit 23 in the image data transfer apparatus 2 will be described.
The mask operation circuit 23 mainly receives mask data AMSK (hereinafter referred to as DSTMSK, SRCMSK, PATMSK, respectively) and blocks sent from the address counters 15, 16, and 17, respectively. Based on the internal start address BYTSTR (hereinafter referred to as DBYTSTR, SBYTSTR, and PBYTSTR), calculations for controlling the data transfer of the image display device 5 are performed. Each start address represents an address at which the mask at that time starts.
[0054]
As shown in FIG. 15, each start address (FBSP) of the destination, source, and pattern points to an arbitrary address of the bit data in the local memory 4. Based on these addresses, the mask arithmetic circuit 23 controls the transfer so that the destination, source, and pattern bits correspond one-on-one from the transfer start bit at the time of data transfer.
[0055]
FIG. 16 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.
[0056]
First, as shown in FIG. 17A, 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 bit start addresses DBITSTR, SBITSTR, PBITSTR in each block from the address counters 15, 16, 17 pass through the address selectors 60, 61, 62 to the subtractors 63, 64, 65, 66 in the subsequent stage. Entered.
[0057]
The subtractor 63 calculates an address difference (SRCSFT) within one block where the masking of DSTMSK and SRCMSK starts and outputs it to the register 67. Similarly, the subtractor 65 calculates an address difference (PATSFT) within one block where the DSATMSK and PATMSK masks start and outputs the calculated difference to the register 69. The shifters 71 and 72 input the address differences SRCSFT, PATSFT and XDIR output from the subtractors 63 and 65 and stored in the registers 67 and 69, the shifter 71 receives the source mask data SRCMSK, and the shifter 72 receives the pattern mask data PATMSK. Each shifts until the start of the mask matches DSTMSK. The shift at this time is possible in both positive and negative directions with respect to DSTMSK. The result is output from the shifters 71 and 72 to the logic operation circuit 73 as adjusted mask data (SRCADJ, PATADJ), respectively. As shown in FIG. 5A, the logical operation circuit 73 inputs DSTMSK in addition to these mask data and calculates a logical product to determine bits to be processed in DSTMSK.
[0058]
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.
[0059]
As shown in FIGS. 17C and 17D, the source mask logic operation circuit 77 and the pattern mask logic operation circuit 79 perform masks corresponding to the masks SRCRMV and PATRMV 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.
[0060]
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 SBITSTR and PBITSTR are input from the address counters 16 and 17 to the source and pattern address selectors 61 and 62, and then the mask start addresses (SSTAD, PSTAD) is output to the subtracters 63 to 66 as described above.
[0061]
The updated source and pattern masks (SRCMSK, PATMSK) are input to the source priority encoder (SPRIENC) 81 and the 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.
[0062]
On the other hand, as shown in FIG. 17B, the destination mask logic operation circuit 76 performs processing for removing a portion of the input destination mask data DSTMSK that coincides with 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.
[0063]
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.
[0064]
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.
[0065]
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 the SRCPRC bit is zero, it does not contribute to PRCMSK. However, if it is assumed that the SRCPRC bit of 1 contributes to PRCMSK, SRCPRC = SRCMSK & SRCRMV can be obtained. This is used for the calculation of the enable flag in the subsequent raster operation circuit 21.
[0066]
Next, the raster operation circuit 21 in the image data transfer device 2 will be briefly described. FIG. 18 is a diagram showing an internal configuration of the raster operation circuit 21. The raster operation circuit 21 performs raster operation on the data read from the destination SRAM 18, 18, and 20 of the pattern. .
[0067]
The raster arithmetic circuit 21 mainly shifts the data for one block from the source SRAM 19 in units of bit data, the SB shifter 150 for shifting the data for one block, and the PB for shifting data for one block from the pattern SRAM 20 in units of the bit data. Shifter 151, 8 * 2 to execute 1-bit raster operation n (= N) 1-bit raster operation circuits 1521 to 152N, 8 * 2 for storing the result of raster operation n Each register 1541 to 154N and the like.
[0068]
First, 8 * 2 read from the destination SRAM 18 n The bit destination data is input to the corresponding 1-bit raster arithmetic circuits 1521 to 152n. 8 * 2 read from source SRAM 19 n The bit source data is shifted bit by bit 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, 8 * 2 read from the pattern SRAM 20 n The bit pattern data is also shifted bit by bit by the PB shifter 151 by an amount equal to the PATSFT calculated by the mask operation circuit 23, and is made to correspond to the destination data. The 1-bit raster operation circuits 1521 to 152N perform raster operation on these destinations, sources, and pattern data using the designated code ROPCMD, and store the results in the registers 1541 to 154N. At this time, the registers 1541 to 154N receive the PRCMSK calculated by the mask arithmetic circuit 23 and store only the data for which the PRCMSK becomes 1.
[0069]
The output FIFO 22 following the raster operation circuit 21 writes the result stored in the registers 1541 to 154N into its own memory (not shown) when the raster operation of all the bit data in one block is completed. . When all the data for one destination sector has been written to the memory in the output FIFO 22, the data for one sector is continuously output to the memory controller 3, and the data is written to the local memory 4. Is doing the transfer.
[0070]
【The invention's effect】
As described above, according to the present invention, when the image data of the transfer area stored in the image data storage device is processed and transferred based on the designated transfer source and transfer destination area transfer parameters, Assuming that the data is image data composed of one or a plurality of bits in one pixel, the image data is transferred in units of blocks larger than the image data of one pixel, and alignment processing is performed in the block in the transfer area. By executing the above, it is possible to transfer image data at a high speed, and since image data is composed of one or more bits, one pixel can be expressed by an arbitrary number of bits. In addition, an arbitrary number of colors can be set, and the memory can be used effectively.
[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 flowchart showing the operation of the apparatus.
FIG. 5 is a diagram showing in more detail a rectangular (display) area of image data including a transfer rectangular area in the apparatus.
FIG. 6 is a diagram schematically showing XDIR and YDIR of a transfer rectangular area in the apparatus.
FIG. 7 is a diagram showing a configuration of image data constructed in a local memory in 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 procedure for generating each data during a mask calculation process in the counter.
FIG. 13 is a diagram for explaining a result of mask calculation processing in the counter.
FIG. 14 is a diagram for explaining a result of mask calculation processing in the counter.
FIG. 15 is a diagram showing a configuration in a local memory of each start address of destination, source, and pattern in the same apparatus.
FIG. 16 is a block diagram showing an internal configuration of a mask arithmetic circuit in the same device.
FIG. 17 is a diagram for explaining processing of each data in the mask arithmetic circuit in the same device.
FIG. 18 is a diagram showing an internal configuration of a raster arithmetic circuit in the same device.
FIG. 19 is a block diagram illustrating a configuration of a conventional image display processing system.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... CPU, 2 ... Image data transfer apparatus, 3 ... Memory controller, 4 ... Local memory, 5 ... Display apparatus, 11 ... Interface, 12 ... Destination address calculation circuit, 13 ... Source address calculation circuit, 14 ... Pattern address calculation Circuits 15 ... Destination address counter 16 ... Source address counter 17 ... Pattern address counter 18 ... Destination SRAM 19 ... Source SRAM 20 ... Pattern SRAM 21 ... Raster arithmetic circuit 22 ... Output FIFO 23 ... Mask arithmetic circuit, 24... Controller.

Claims (2)

指定された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置において、
前記画像データは、1ピクセルが1又は複数のビットで構成された画像データであり、
前記画像データ記憶装置の転送元領域及び転送先領域から1ピクセルの画像データよりも大きいブロック単位で画像データを読み出すアドレスカウンタと、
前記画像データ記憶装置から読み出されたブロック単位の画像データを記憶するデータ格納手段と、
前記転送元領域の画像データと前記転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行する演算手段と、
前記指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのビット数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始ブロックアドレス及び転送終了ブロックアドレスを算出し前記アドレスカウンタにセットするアドレス計算手段と、
前記転送元領域以外をマスクするソースマスクデータ及び転送先領域以外の領域をマスクするデスティネーションマスクデータを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うマスク演算手段と
を備え、
前記アドレスカウンタは、前記データ格納手段のアドレスの上位を第1のアドレス、下位を第2のアドレスとし、前記第1のアドレスを固定、前記第2のアドレスを連続的に変化させ、転送開始ブロックアドレスを含む転送開始ブロックから前記転送終了ブロックアドレスを含む転送終了ブロックまで連続的に前記画像データを転送し、さらに前記各ブロック内の転送画像開始ビットアドレス及び転送画像終了ビットアドレスに基づいて前記ソースマスクデータ及び前記デスティネーションマスクデータを生成し、
前記マスク演算手段は、前記デスティネーションマスクデータを基準として、前記ソースマスクデータと前記デスティネーションマスクデータを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行う
ことを特徴とする画像データ転送装置。
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 bits,
An address counter that reads out image data in block units larger than 1-pixel image data from the transfer source area and transfer destination area of the image data storage device;
Data storage means for storing block-unit image data read from the image data storage device;
Arithmetic means for performing the arithmetic processing by aligning the image data of the transfer source area and the image data of the transfer destination area in a block;
Based on the parameters related to the designated transfer source area and transfer destination area and the number of bits per pixel, the transfer start block address and transfer end block address are calculated for each scanning line including the transfer source area and the transfer destination area. Address calculating means for setting the address counter;
A mask operation means for aligning in the block between the transfer source region to a region other than the source mask data and the transfer destination region for masking the non-use destination mask data for masking said transfer source area destination region With
The address counter has a higher address of the data storage means as a first address, a lower address as a second address, the first address is fixed, the second address is continuously changed, and a transfer start block The image data is continuously transferred from a transfer start block including an address to a transfer end block including the transfer end block address, and further, the source based on a transfer image start bit address and a transfer image end bit address in each block Generating mask data and the destination mask data ;
The mask calculation means performs alignment in the block between the transfer source area and the transfer destination area using the source mask data and the destination mask data with reference to the destination mask data. An image data transfer device.
画像データを記憶する画像データ記憶装置と、
この画像データ記憶装置内に記憶された画像データの転送元領域及び転送先領域に関するパラメータを出力する中央処理装置と、
この中央処理装置から出力された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置と、
前記画像データ記憶装置に記憶された画像データを表示する画像表示装置とを備えた画像表示処理システムにおいて、
前記画像データは、1ピクセルが1又は複数のビットで構成された画像データであり、
前記中央処理装置は、前記1ピクセルを構成するビット数を前記画像データ転送装置に出力し、
前記画像データ転送装置は、
前記1ピクセルの画像データよりも大きいブロック単位で画像データを転送し、且つ転送元領域の画像データと転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行したのち、前記画像データ記憶装置に格納し、
前記指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのビット数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始ブロックアドレス及び転送終了ブロックアドレスを算出し、
前記画像データ記憶装置のアドレスの上位を第1のアドレス、下位を第2のアドレスとし、前記第1のアドレスを固定、前記第2のアドレスを連続的に変化させ、前記転送開始ブロックアドレスを含む転送開始ブロックから前記転送終了ブロックアドレスを含む転送終了ブロックまで連続的に前記画像データを転送し、
前記各ブロック内の転送画像開始ビットアドレス及び転送画像終了ビットアドレスに基づいて前記転送元領域以外をマスクするソースマスクデータ及び転送先領域以外の領域をマスクするデスティネーションマスクデータを生成すると共に、前記デスティネーションマスクデータを基準として、これら前記ソースマスクデータ及び前記デスティネーションマスクデータを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うものである
ことを特徴とする画像表示処理システム。
An image data storage device for storing image data;
A central processing unit for outputting parameters relating to a transfer source area and a transfer destination area of image data stored in the image data storage device;
After the arithmetic processing of the image data of the transfer source area and the image data of the transfer destination area stored in the image data storage device based on the parameters relating to the transfer source area and the transfer destination area output from the central processing unit, An image data transfer device for transferring to the transfer destination area;
In an image display processing system comprising an image display device for displaying image data stored in the image data storage device,
The image data is image data in which one pixel is composed of one or a plurality of bits,
The central processing unit outputs the number of bits constituting one pixel to the image data transfer device,
The image data transfer device includes:
After transferring the image data in block units larger than the image data of 1 pixel, and performing the arithmetic processing by performing alignment within the block with the image data of the transfer source area and the image data of the transfer destination area, Storing in the image data storage device;
Based on the parameters related to the designated transfer source area and transfer destination area and the number of bits per pixel, the transfer start block address and transfer end block address are calculated for each scanning line including the transfer source area and the transfer destination area. And
The upper address of the image data storage device is a first address, the lower address is a second address, the first address is fixed, the second address is continuously changed, and the transfer start block address is included. Transferring the image data continuously from the transfer start block to the transfer end block including the transfer end block address;
To generate a destination mask data for masking an area other than the source mask data and the transfer destination region for masking other than the transfer source area based on the transfer image start bit address and transfer the image end bit address of said each block, the The image display is characterized in that the transfer source area and the transfer destination area are aligned in a block using the source mask data and the destination mask data on the basis of the destination mask data. Processing system.
JP2001170166A 2001-06-05 2001-06-05 Image data transfer apparatus and image display processing system Expired - Fee Related JP4048731B2 (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2002366130A JP2002366130A (en) 2002-12-20
JP4048731B2 true JP4048731B2 (en) 2008-02-20

Family

ID=19012124

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4048731B2 (en)

Also Published As

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

Similar Documents

Publication Publication Date Title
US4862154A (en) Image display processor for graphics workstation
JP3656857B2 (en) Full-motion video NTSC display device and method
US4914729A (en) Method of filling polygonal region in video display system
EP0199989A2 (en) Method and system for image processing
US5388192A (en) Image layout processing method and apparatus
JPH0695273B2 (en) Display control device
JP4707782B2 (en) Image processing apparatus and method
JP4048731B2 (en) Image data transfer apparatus and image display processing system
JP3846142B2 (en) Image data transfer apparatus and image display processing system
JPH05249953A (en) Image display device
JP3969017B2 (en) Image data transfer apparatus and image display processing system
JPH06102855A (en) Animation display device and external storage device used for it
JPH08138067A (en) Line segment anti-aliasing device
JP2898482B2 (en) Computer game equipment
JP3252359B2 (en) Image processing device
JP2506825B2 (en) Color mixing processing control method
JPH03164872A (en) Graphic processing system
JP5228326B2 (en) Image display device
JP2647073B2 (en) Graphic display device
JP2002149141A (en) Method and device for transferring image data, and image display processing system
JPH03196189A (en) Image signal processor
JPS6117189A (en) Graphic processor
JPH06295171A (en) Image processor
JPH05158450A (en) Display control device for scanning type display
JPH05298441A (en) Picture enlarging device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070717

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071119

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees