JP3605891B2 - Computer system - Google Patents

Computer system Download PDF

Info

Publication number
JP3605891B2
JP3605891B2 JP18865095A JP18865095A JP3605891B2 JP 3605891 B2 JP3605891 B2 JP 3605891B2 JP 18865095 A JP18865095 A JP 18865095A JP 18865095 A JP18865095 A JP 18865095A JP 3605891 B2 JP3605891 B2 JP 3605891B2
Authority
JP
Japan
Prior art keywords
video
address
signal
bus
moving image
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
JP18865095A
Other languages
Japanese (ja)
Other versions
JPH0916160A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP18865095A priority Critical patent/JP3605891B2/en
Publication of JPH0916160A publication Critical patent/JPH0916160A/en
Application granted granted Critical
Publication of JP3605891B2 publication Critical patent/JP3605891B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
本発明は、動画の映像信号を映像メモリに転送して動画を表示するコンピュータシステムに関する。
【0002】
【従来の技術】
従来は、外部から与えられた映像データをパーソナルコンピュータのフレームメモリに転送する方法として、いわゆるDMA(Direct Memory Access)転送が利用されていた。
【0003】
図24は、映像データをビデオRAMに転送するためのDMAコントローラを備えた従来のコンピュータシステムを示すブロック図である。3つの映像メモリ51R,51G,51Bには、赤色(R)、緑色(G)、青色(B)に色相分解された色データDr ,Dg ,Db がそれぞれ記憶されている。これらの色データDr ,Dg ,Db は、例えばディザ法で予め2値化されている。DMAコントローラ55は、アドレスバス53と、データバス52と、制御バス54の使用権をCPU59から取得し、3つの映像メモリ51R,51G,51Bに記憶された2値色データDr ,Dg ,Db をリアルタイムに表示用のビデオRAM56R,56G,56Bにそれぞれ転送する。転送された2値色データDr ,Dg ,Db は、VRAM56R、56G、56Bを通じてモニタ−制御部57に送られ、モニタ−58に映像を表示させる。
【0004】
DMA転送の際には、まず、CPU59が、R成分用のVRAM56Rにおける表示開始アドレスをDMAコントローラ55に送ってDMAコントローラ55を起動する。DMAコントローラ55は、バスの使用権をCPU59から獲得して1ライン目のR成分の2値色データDr をR成分用のVRAM56Rに転送し、その後、CPU59にバスの使用権を戻す。次に、CPU59がG成分用のVRAM56Gの表示開始アドレスをDMAコントローラ55に送ってDMAコントローラ55を起動すると、R成分と同様に2値色データDg の転送が行なわれる。さらに、B成分も同様に転送される。2ライン目の映像データを転送する際には、CPU59はVRAM56R,56G,56Bそれぞれの2ライン目の表示開始アドレスを算出してこれをDMAコントローラ55に送り、RGB各色の2値色データDr ,Dg ,Db を順次転送する。
【0005】
このように、CPU59は各ライン毎にVRAM56R,56G,56Bの表示開始アドレスを算出してDMAコントローラ55に教示し、DMAコントローラ55がこれに応じて各ラインの色データDr ,Dg ,Db を順次DMA転送していくことにより、1フィ−ルド分の色データがVRAM56に転送される。なお、「1フィールド」とは、画面の左上隅から右下隅までの1回の走査でカバーされる画像を言う。多くの場合には、2:1のインターレス(飛び越し走査)が行なわれており、2フィールドで1フレーム(1画面)の画像を構成している。こうして、1秒間に約60フィ−ルド分の2値色データを順次DMA転送していくことによって、動画がモニタ−58に表示される。
【0006】
【発明が解決しようとする課題】
NTSC(National Television System Commmittee )方式による映像信号を利用した場合、水平1ラインの走査期間は63μsである。一方、図24のシステムにおいて、CPU59が表示開始アドレスを計算してDMAコントローラ55に転送する時間と、DMAコントローラ55がCPU59から各バスの使用権を取得する時間と、各2値色データDr ,Dg ,Db の1ライン分をDMA転送する時間とを合計すると、1秒間に数フィ−ルド分のデータしか転送できない。これはCPU59が表示開始アドレスを計算したり、DMAコントローラ55に表示開始アドレスを設定したりするための時間が必要以上にかかるためと考えられる。このように、従来の装置では、1秒間に数フィールド分のデータしか転送できないため、スム−ズな動画を表示することは不可能であった。
【0007】
ところで、近年のCPUの高速化とメモリの大容量化に伴って、マルチウィンドウ機能を備えたパーソナルコンピュータが急速に普及し始めている。特に、ウィンドウの1つに動画を表示させることのできるものもある。
【0008】
図25は、マルチウィンドウシステムにおいて静止画SIa,SIbと動画MIとを同時に表示した場合を示す説明図である。従来は、図25(A)のように動画MIの表示領域が矩形の場合には、動画をDMA転送することは可能であったが、矩形でない表示領域内の動画を表わす映像データを転送することは不可能であった。ここで、「表示領域」とはディスプレイデバイスの画面上において表示される領域を意味している。例えば、図25(A)において静止画SIaの領域がアクティブになり、図25(B)のように動画MIの上に重ねられて表示されると、動画MIの表示領域が矩形でなくなるので、DMA転送によって動画MIを表示することが不可能であった。更に、複数の動画MIを画面上において各々独立した任意の形状で表示させることも不可能であった。
【0009】
本発明は、従来技術における上述の課題を解決するためになされたものであり、動画の中の任意の形状の領域内の映像信号を映像メモリに高速に転送することを目的とする。更に、複数の動画について各々独立した任意の形状の領域内の映像信号を映像メモリに転送することを他の目的とする。
【0011】
【課題を解決するための手段および作用】
上述の課題の少なくとも一部を解決するため、本発明のコンピュータシステムは、動画を表示可能なコンピュータシステムであって、
ソフトウェアプログラムに従って各種の演算と制御を実行するマイクロプロセッサと、
前記マイクロプロセッサに接続された第1のバスと、
アドレスとデータが共通の信号線によって時分割で転送される第2のバスと、
前記第1と第2のバスを接続するブリッジと、
映像を表示する表示デバイスと、
前記表示デバイスに表示される映像の映像信号を記憶する映像メモリと、
前記映像メモリと同一の画像空間を有するとともに、前記映像メモリと同一のアドレス空間に割り当てられており、前記映像メモリ内において複数種類の動画映像信号が書き込まれるべき複数の動画領域を示すマスクデータを記憶するマスクデータメモリと、
前記第2のバスに接続され、前記映像メモリへの映像信号の書込みと読み出し、および、前記マスクデータメモリへのマスクデータの書込みと読み出しを制御するビデオコントローラと、
動画映像信号で表わされる動画の各走査線毎に、各走査線の先頭アドレスを生成して前記第2のバス上に出力するとともに、前記先頭アドレスの後に前記走査線上の各画素の映像信号を前記第2のバス上に連続して出力する機能をそれぞれ有する複数の映像転送手段と、
前記複数の映像転送手段による前記第2のバスの使用権を調停するバス調停手段と、を備え、
前記ビデオコントローラは、
前記第2のバスを介して与えられた前記先頭アドレスから、各画素に対する画素アドレスを生成するアドレス生成手段と、
前記映像メモリと前記マスクデータメモリに同一のアドレスを供給するとともに、前記マスクデータメモリから読出された前記マスクデータに応じて、各画素の映像信号を前記映像メモリに書き込むか否かを示す書込信号を生成する書込信号生成手段と、
前記書込信号と前記アドレス生成手段によって生成された画素アドレスとに従って、各画素の映像信号を前記映像メモリに書き込む書込手段と、
を備える。
【0012】
マスクデータメモリは映像メモリと同一の画像空間を有し、また、同一のアドレス空間に割り当てられているので、マスクデータメモリと映像メモリに同一のアドレスを供給することによって、映像メモリの書込みアドレスに対応するマスクデータがマスクデータメモリから読出される。そして、動画領域を示すマスクデータに応じて映像信号を映像メモリに書込むので、任意の形状の動画領域内の映像信号を映像メモリに書き込むことができる。また、映像転送手段は、各走査線に関して先頭アドレスと映像信号とを出力すればよいので、動画の映像信号を高速に転送することができる。
【0013】
【実施例】
A.システムの構成と動作:
図1は、本発明の一実施例としてのコンピュータシステムの構成を示すブロック図である。このコンピュータシステムでは、CPU200とメインメモリ202とがホストバス204に接続されている。ホストバス204は、ブリッジ206を介して高速バス208に接続されている。この高速バス208は、アドレスとデータが共通の信号線によって時分割で転送されるバスである。また、高速バス208はクロック信号に同期して動作する同期式のバスであるが、クロック信号の周波数は33MHz以下であればよく、動作の途中でクロック周波数を変更することも可能である。
【0014】
高速バス208には、ビデオコントローラ212と、拡張バスブリッジ214とが接続されている。ビデオコントローラ212には、フレームメモリとしてのビデオRAM(VRAM)222と、マスクデータを記憶するマスクデータRAM223と、表示デバイスとしてのカラーCRT224またはカラー液晶ディスプレイ(LCD)226とが接続されている。ビデオコントローラ212は、高速バス208を介して与えられたデジタル映像信号(映像データ)をVRAM222に書き込む書込機能と、VRAM222から映像信号を読み出してカラーCRT224や液晶ディスプレイ226に与えることによって映像を表示させる表示機能とを有している。
【0015】
拡張バスブリッジ214は、高速バス208に低速バス230を接続するためのブリッジである。低速バス230には各種のI/Oコントローラ232やコネクタ(図示せず)などが接続される。低速バス230は、高速バス208に比べてデータ転送速度が低く、フロッピディスク装置やキーボードなどの比較的低速の入出力装置が接続される。
【0016】
高速バス208には、さらに、バス調整手段としてのバスアービタ240と、映像転送手段としての3つの動画転送コントローラ250,260,270が接続されている。第1の動画転送コントローラ250には、圧縮/伸長回路252が接続され、圧縮/伸長回路252にはモデム254が接続されている。外部の通信回線からモデム254に供給された圧縮動画映像信号は、圧縮/伸長回路252で伸長され、伸長後の映像信号が動画転送コントローラ250によって転送される。
【0017】
第2の動画転送コントローラ260には、A−D変換器262が接続され、A−D変換器262にはビデオデコーダ264が接続されている。ビデオデコーダ264には、さらに、テレビチューナ266が接続されており、また、その入力端子にはビデオカメラが接続される。ビデオデコーダ264は、テレビチューナ266やビデオカメラ等の動画映像信号供給デバイスから与えられたコンポジット映像信号VSをデコードして、コンポーネント映像信号(YUV信号またはRGB信号)と同期信号VSYNC,HSYNCとフィールド指示信号FISとを生成する。フィールド指示信号FISは、インターレース走査の場合に奇数フィールドか偶数フィールドかを示す信号である。ビデオデコーダ264内には、YUV信号からRGB信号に変換する色信号変換回路が設けられている。A−D変換器262は、アナログコンポーネント映像信号をデジタルコンポーネント映像信号DSに変換する。デジタルコンポーネント映像信号DSは、第2の動画転送コントローラ260によって転送される。あるいは、圧縮/伸長回路252で圧縮されて、第1の動画転送コントローラ250によってMODEM等の通信機器へ伝送されたり、また、ハードディスク等の外部記憶装置(図示せず)に転送される。第3の動画転送コントローラ270にはCD−ROM装置272が接続されており、CD−ROM装置272から供給される動画の映像信号を転送する。
【0018】
3つの動画転送コントローラ250,260,270は、それぞれが高速バス208を利用して動画映像信号を転送することが可能である。バスアービタ240は、これらの3つの動画転送コントローラが高速バス208を使用する際の優先順位を調停する役割を果たしている。3つの動画転送コントローラが高速バス208を使用する際には、それぞれがバス要求信号REQ1#,REQ2#,REQ3#をバスアービタ240に供給して、バスを使用したい旨を通知する。バスアービタ240は、内部の優先順位レジスタの値に従ってバスの使用権をいずれに与えるかを決定し、3つの動画転送コントローラに対するバス許可信号GNT1#,GNT2#,GNT3#のいずれか1つをアクティブにする。
【0019】
図2は、バスアービタ240内の循環優先順位レジスタの内容を示す説明図である。循環優先順位アルゴリズムでは、3つの動画転送コントローラ250,260,270に循環的にバスの優先権が与えられる。2つ以上の動画転送コントローラがバス要求信号をアクティブにすると、循環優先順位レジスタに設定されている優先度が最も高いコントローラにバスの使用が許可される。その際、最も優先度の高いコントローラ(例えば第1の動画転送コントローラ250)がバスを使用すると、次のコントローラ(例えば第2の動画転送コントローラ260)が次の優先権を持つこととなる。このようなバスアービタ240の調停の結果、3つの動画転送コントローラからそれぞれ動画映像信号を転送することができる。
【0020】
図3は、VRAM222とマスクデータRAM223の構成を示す説明図である。図3(A)に示すように、VRAM222は、RGBの各色8ビットのコンポジット映像データを、表示デバイス(カラーCRT224,液晶ディスプレイ226)の画面の各画素毎に記憶するフレームメモリである。また、マスクデータRAM223は、動画が書き込まれるVRAM222の領域(以下、「動画書込領域」または「動画領域」と呼ぶ)を表わす2ビットのマスクデータを各画素毎に記憶するメモリである。また、図3(B)に示すように、VRAM222とマスクデータRAM223は、ビデオコントローラ212から見て同一のアドレス空間にマッピングされている。マスクデータを用いた動画の転送動作については後述する。
【0021】
図4は、動画転送コントローラの内部構成を示すブロック図である。図1に示す3つの動画転送コントローラは、すべて図4に示す構成を有している。動画転送コントローラは、高速バス208とのインタフェイス300と、高速バス208の制御信号を生成するバス制御信号生成部302と、アドレスとデータを切換えて高速バス208内のアドレス/データバスADB上に出力するための切換回路304と、バス制御信号生成部302と切換回路304の動作を制御する切換制御部306と、アドレスを演算するアドレス演算部312と、データ出力部314と、FIFOメモリユニット318と、色調整部320とを備えている。
【0022】
色調整部320に与えられるデジタル映像信号DSは、24ビット(RGB各8ビット)のフルカラー映像データである。色調整部320は、この24ビットのデジタル映像信号DSを、必要に応じて16ビット(R:G:B=5:6:5ビットで6万色を再現可能)、8ビット(R:G:B=3:3:2ビットで256色を再現可能)、4ビット(カラーパレットにより16色を再現可能)、3ビット(カラーパレットにより8色を再現可能)の映像データに変換する回路である。4ビットや3ビットの映像データに変換する場合には、ディザ法による2値化が実行される。なお、どのタイプの映像データに変換するかは、オペレータの指定に応じてCPU200によって設定される。但し、以下では24ビットのフルカラー映像データ(「コンポーネント映像データ」と呼ぶ)を色調整部320がそのまま出力する場合について説明する。
【0023】
FIFOメモリユニット318から出力された映像データは、データ出力部314と切換回路304とを介してアドレス/データバスADB上に出力される。切換回路304は、切換制御部306から与えられる切換信号SWに従って、データ出力部314から出力される映像データMDATAとアドレス演算部312から出力されるアドレスMADDとを切換えて、アドレスMADDとデータMDATAとを時分割で出力する。また、切換回路304内の3ステートバッファ305は、切換制御部306から与えられる第1の出力制御信号C1に応じて出力状態とハイインピーダンス状態に切換えられる。また、高速バス208用の各種の制御信号(C/BEやFRAME#等)のためのバス制御信号生成部302も、その出力部に3ステートバッファ303を有している。この3ステートバッファ303は、切換制御部306から与えられる第2の出力制御信号C2に応じて出力状態とハイインピーダンス状態に切換えられる。
【0024】
図5は、ビデオコントローラ212(図1)の内部構成を示すブロック図である。ビデオコントローラ212は、デコーダ350と、アドレスカウンタ352と、アドレスラッチ354と、データ変換回路356と、VGAコントローラ358とを備えている。デコーダ350とアドレスカウンタ352とアドレスラッチ354は、高速バス208のアドレス/データバスADBを介して与えられた各走査線の先頭アドレスMADDから、各走査線上の各画素のアドレス(画素アドレス)PADDを生成するアドレス生成手段としての機能を有する。また、VGAコントローラ358は、画素アドレスPADDに従って各走査線の各画素の映像データPDATAをVRAM222に書き込む第1の書込手段としての機能を有する。VGAコントローラ358は、さらに、マスクデータをマスクデータRAM223に書き込む第2の書込手段としての機能も有している。なお、マスクデータは、高速バス208のアドレス/データバスADBを介してCPU200からビデオコントローラ212に転送される。
【0025】
デコーダ350は、高速バス208の各種の制御信号から、アドレスカウンタ352とアドレスラッチ354とデータ変換回路356とを制御するための信号を生成する。データ変換回路356は、高速バス208を介してYUV信号が与えられた時に、これをRGB信号に変換する回路である。RGB信号が供給されている場合には、RGB信号はデータ変換回路356をそのまま通過する。なお、データ変換回路356がデータ変換を行なうか否かは、デコーダ350から与えられるモード信号に応じて決定される。
【0026】
図6は、マスクデータを利用して、任意の形状の領域内の映像データをVRAM222に転送する方法を示す説明図である。VRAM222内に描かれている3つの動画MR1〜MR3は、図1に示す3つの動画転送コントローラ250,260,270によってそれぞれ転送される。それぞれの動画は元々矩形であるが、マスクデータTDATAに従って、図6のように重なり合う部分が隠された状態でVRAM222内にそれぞれの映像データが書き込まれる。アドレスラッチ354は、VRAM222のアドレス空間(すなわち表示デバイスの画面領域に対応する空間)内における各動画の画素アドレスPADDを出力している。VGAコントローラ358は、この画素アドレスPADDをVRAM222とマスクデータRAM223とに共通に与えられる。従って、矩形の動画を表わす映像データPDATAがVRAM222に与えられる時に、各画素のマスクデータTDATAがマスクデータRAM223から読出されてVGAコントローラ358に入力される。VGAコントローラ358は、マスクデータTDATAに従って各画素の映像データPDATAの書込みの有無を制御する。
【0027】
図6に示すように、VGAコントローラ358は、2つのANDゲート362,364と、NANDゲート366と、ORゲート368とを有している。2つのANDゲート362,364は、2ビットのマスクデータTDATAが各ビットと、デコーダ350から出力される2ビットのモードデータMODEの各ビットとの論理積を取る。2つのANDゲート362,364の出力は、NANDゲート366に入力されている。従って、NANDゲート366の出力TTは、マスクデータTDATAとモードデータMODEとが完全に一致する場合にのみ0レベルとなる。図6のマスクデータRAM223内に図示されているように、マスクデータTDATAは、各動画領域MR1,MR2,MR3でそれぞれ01b,10b,11bの値を取り、背景領域では00bの値を取る(bは2進数であることを示す)。従って、これらのマスクデータTDATAと同じ値のモードデータMODEがデコーダ350から出力された時にのみ、NANDゲート366の出力TTが0レベルになる。
【0028】
ORゲート368は、NANDゲート366の出力TTと、デコーダ350から出力される書込信号PWE#との負論理の論理積(AND)を取り、その出力EPWR#を書込信号としてVRAM222に与えている。なお、この明細書において、信号名の後ろに「#」が付されているものは負論理の信号である。この結果、マスクデータTDATAとモードデータMODEの値に応じて、VRAM222への映像データPDATAの書込みが許可されたり禁止されたりすることになる。例えば、VRAM222とマスクデータRAM223の全空間において、モードデータMODEの値がマスクデータTDATAと一致していれば、3つの動画MR1〜MR3の映像データをそれぞれVRAM222内に書き込むことができる。また、モードデータMODEの値を10bに固定しておけば、第2の動画MR2の映像データのみを書き込むことができる。
【0029】
マスクデータTDATAの分布を変更すれば、各動画領域の形状を任意に変更することが可能である。マスクデータTDATAは、元々は矩形である動画の一部をマスクする機能を有すると言い換えることもできる。また、画素アドレスPADDの値とマスクデータTDATAの分布を変更すれば、表示デバイスの画面上において動画が表示される領域の位置を任意に変更することも可能である。さらに、後述するように、任意の形状の動画領域内において、動画を水平方向と垂直方向に任意の倍率で変倍することも可能である。
【0030】
この実施例では、ORゲート368により書込信号EPWR#のレベルを制御することによって、映像データPDATAのVRAM222への書込みを制御するようにしているので、回路構成が単純であるという利点がある。また、映像データPDATAと画素アドレスPADDは、矩形の動画を書き込む場合と同様にVRAM222に供給すればよいので、映像データPDATAと画素アドレスPADDを動画領域の形状に応じて調整する必要がない。
【0031】
図7は、図6のVRAM222の走査線X1−X2上のデータ転送の動作を示すタイミングチャートである。なお、図7(b)〜(e)はバスアービタ240に関する信号であり、図7(f)〜(j)は、高速バス208を介して転送される信号、図9(k)〜(m)はビデオコントローラ212からVRAM222へ転送される信号である。なお、映像データの転送は、FIFOメモリユニット318(図3)で生成されるドットクロック信号DCLK(図7(a))に同期して実行される。
【0032】
第1の動画転送コントローラ250(図1)が動画を転送する際には、そのバスリクエスト信号REQ1#(図7(b))をアサート(Lレベルに)することによって、バスアービタ240にバスの使用権を要求する。これに応じてバスアービタ240がバス許可信号GNT1#(図7(c))をアサート(Lレベルに)すると、第1の動画転送コントローラ250による転送が開始される。すなわち、第1の動画転送コントローラ250は、まず、高速バス208のアドレス/データバスADB上に1走査線の先頭アドレスMADDを出力し、その後、その走査線上の全画素の映像データPADDを連続して出力する。第2の動画転送コントローラ260が動画を転送する際には、そのバスリクエスト信号REQ2#(図7(d))をアサートする。これに応じてバスアービタ240がバス許可信号GNT2#(図7(e))をアサートすると、第2の動画転送コントローラ260が高速バス208のアドレス/データバスADB上に1走査線の先頭アドレスMADDを出力し、その後、その走査線上の全画素の映像データPADDを連続して出力する。
【0033】
図7(m)の下部に示す時点T1,T2は、図6のVRAM222に示す画素位置T1,T2と対応している。すなわち、バスアービタ240による調停によって、複数の動画転送コントローラがバスの使用権を順次獲得しながらそれぞれの動画の映像データを転送していくことができる。
【0034】
映像データの転送における動画転送コントローラとビデオコントローラ212の動作の関係は次の通りである。図4に示す動画転送コントローラは、まず、各走査線の先頭アドレスMADDをアドレス演算部312で生成して、高速バス208のアドレス/データバスADB上に出力する。すると、切換制御部306から与えられる切換信号SWによって切換回路304内のスイッチ(マルチプレクサ)が、データ出力部314側に切換えられる。この結果、先頭アドレスMADDの走査線上の全画素に関する映像データPDATAがドットクロック信号DCLKに同期してアドレス/データバスADB上に連続して出力される。
【0035】
図7(f)〜(i)は、高速バス208としてPCI(Peripheral Component Interconnect )バスを使用した場合の制御信号を示している。図7(f)の信号FRAME#は、転送元(イニシエータ・デバイス)である動画転送コントローラによって出力される信号であり、信号FRAME#がアサートされると(Lレベルになると)バスサイクルが開始される。また、信号FRAME#がデアサートされると(Hレベルになると)、次のクロックでそのバスサイクルが終了する。図7(g)の信号IRDY#はイニシエータである動画転送コントローラがデータ転送可能であることを示す信号であり、動画転送コントローラによって出力される。図7(h)の信号TRDY#は、転送先(ターゲット・デバイス)であるビデオコントローラ212がデータ転送可能である示す信号であり、ビデオコントローラ212によって出力される。図7(i)の信号DEVSEL#は、ターゲットであるビデオコントローラ212がデータ転送を受け入れることを示す信号であり、ビデオコントローラ212によって出力される。なお、高速バス208の制御信号はこの他にも存在するが図示の便宜上省略されている。
【0036】
図5に示すビデオコントローラ212内のデコーダ350は、イニシエータである動画転送コントローラから出力されたアドレスをチェックして、ビデオコントローラ212がターゲット・デバイスであるか否かを判断する。ビデオコントローラ212がターゲット・デバイスである場合には、デコーダ350は制御信号TRDY#(図7(h)),DEVSEL#(図7(i))をアサートするとともに、アドレスカウンタ352とアドレスラッチ354とデータ変換回路356とに制御信号を供給してそれらの動作を制御する。すなわち、アドレス/データバスADB上にアドレスMADDが出力されている場合には、アドレスカウンタ352のロード端子をアクティブにすることによって、アドレスMADDをアドレスカウンタ352の初期値として設定する。アドレスカウンタ352のクロック端子には、デコーダ350から画素書込信号PWR#が入力されている。この画素書込信号PWR#は、高速バス208のクロック信号DCLKと同一周波数で同期しており、VGAコントローラ358がVRAM222に各画素の映像データを書き込むタイミングを示す信号である。従って、アドレスカウンタ352は、クロック信号DCLK(図7(a))の1パルス毎にアドレスを1つインクリメントして、各画素に対する画素アドレスPADDを出力する。アドレスラッチ354は、アドレスカウンタ352から出力された画素アドレスPADDをラッチしてVGAコントローラ358に出力している。
【0037】
VGAコントローラ358は、図7(k)〜(m)に示すように、各動画の1走査線上の全画素に対する映像データを、画素書込信号EPWR#に同期してVRAM222内に書き込んでいく。なお、VGAコントローラ358からVRAM222に与えられる画素アドレスEPADDは、VGAコントローラ358における局所的なアドレス空間で定義されているので、高速バス208における画素アドレスPADDの値とは異なるが、その意味は同一である。すなわち、画素アドレスEPADDの値は、その動画の各走査線の先頭アドレスSPから1クロック毎に1ずつ増加した値である。
【0038】
以上のように、このコンピュータシステムでは、複数ビットのマスクデータTDATAを用いてVRAM222内をマスクすることによって、複数の動画転送コントローラから1つのVRAM222内にそれぞれ動画映像データを転送することができる。上記の例ではマスクデータTDATAを2ビットとしていたので、3つの動画映像データを区別することができる。一般に、マスクデータをnビットとすれば、{(2のn乗)−1}個の動画転送コントローラから同じVRAM222にそれぞれ動画を転送することが可能である。
【0039】
B.マスクデータの更新処理:
図8は、マスクデータの更新処理の手順を示すフローチャートである。ステップS1では、マスクデータの初期データがマスクデータRAM223に書き込まれる。ここで、マスクデータの初期データとは、動画が初めて表示される際に書き込まれるマスクデータのことを言い、通常は矩形の動画領域を示すマスクデータである。
【0040】
ステップS2では、CPU200が、表示デバイスの画面上において動画ウィンドウの状態が変更されたか否かを監視する。動画ウィンドウとは、画面上の動画領域と同じ意味であり、VRAM222の画像空間における動画領域に対応している。動画ウィンドウの状態が変更されるのは、動画ウィンドウに重なる他のウィンドウのサイズや位置を変更した場合、動画ウィンドウ自身のサイズや位置を変更した場合、および、ウィンドウ同士の重なりの上下関係を変更した場合などがある。
【0041】
動画ウィンドウの状態が変更されると、ステップS3においてVRAM222のチップイネーブル信号CE1#(図5)がHレベルに立上げられてVRAM222への書込みが禁止されるとともに、マスクデータRAM223のチップイネーブル信号CE2#がLレベルに立下げられてマスクデータRAM223の書き込みが許可される。ステップS4では、CPU200がマスクデータRAM223に新たなマスクデータを書き込むことによって、マスクデータRAM223内のマスクデータを更新する。ステップS5では、チップイネーブル信号CE1#がLレベルに立ち下げられ、VRAM222へのデータの書込みが許可される。
【0042】
このように、ユーザが表示デバイスの画面上で動画ウィンドウや静止画ウィンドウを変更することによって動画ウィンドウの位置や形状が変更されると、その度にマスクデータが更新される。なお、図8のマスクデータ更新処理はCPU200が所定のドライバ(アプリケーションソフトとハードウェアを連結させる部分)プログラムを組み込むることによって実現されている。
【0043】
D.システム構成の変形例:
上述した動画転送コントローラは、必ずしも各走査線上の全画素に対する映像データを連続して転送する必要はない。動画転送コントローラは1つのアドレスに続いて、所望の画素数の映像データを連続して転送することができる。また、各画素のアドレスとデータとを交互に出力することも可能である。但し、各動画について、各走査線の先頭アドレスMADDを出力した後に、その走査線上の全画素に対する映像データを連続して転送するようにすれば、より高速にデータ転送を行なうことができ、スムーズな動画表示を行なえるという利点がある。
【0044】
なお、図6に示すように、書込信号EPWR#のレベルをマスクデータTDATAとモードデータMODEで制御することによって映像データの書込みを制御する代わりに、ビデオRAM特有の機能であるライトパービットモードにおいて、VRAM222の書込動作をビット単位で禁止するようにしてもよい。
【0045】
また、マスクデータTDATAを映像データの書込み制御に利用する代わりに、映像データをビット反転させて動画の色を変更するために利用することも可能である。図9は、動画映像データをビット反転させる場合の回路構成の一部を示す説明図である。ビット反転回路615は、映像データのビット数と等しい数のEXOR(排他的論理和)回路を備えており、VGAコントローラ358内に設けられている。各EXOR回路の一方の入力端子にはNANDゲート366の出力TTが共通に与えられており、他方の入力端子には映像データの各ビットの信号が与えられている。NANDゲート366の出力TTが0の時には映像データPDATAはそのままビット反転回路615を通過するが、出力TTが1の時には映像データPDATAの各ビットの値が反転される。この結果、出力TTの値が1の画素において映像データPDATAの色が変更される。
【0046】
E.アドレス演算のための回路構成:
図10は、FIFOメモリユニット318の内部構成を示すブロック図である。図10(A)に示すように、FIFOメモリユニット318は、FIFO制御部321と、2つのFIFOメモリ322,324を備えている。また、図10(B)に示すように、FIFO制御部321は5つのPLL回路325〜328,510と波形成形部511とを有している。第1ないし第3のPLL回路325〜327は、水平同期信号HSYNCの周波数をNH0倍、(NH0*HX)倍、および、NH 倍した信号CLKI,CLKO,DCLKをそれぞれ生成する。また、第4のPLL回路328は、垂直同期信号VSYNCの周波数をNV 倍した信号HINCを生成する。第5のPLL回路510は、図10(C)に示すように、水平同期信号HSYNCの周波数をHX倍した信号HSYNC*HXを生成し、波形成形部511はその立ち上がりエッジを検出して第2の水平同期信号XHSYNCを生成する。この第2の水平同期信号XHSYNCは、第1の水平同期信号HSYNCのHX倍の周波数を有する同期信号である。なお、各PLL回路内の設定値NH0,(NH0*HX),NH ,NV ,HXは、CPU200によって設定される。これらのPLL回路325〜328は、映像の拡大・縮小を行なうための回路であり、その機能については後述する。
【0047】
なお、2つのFIFOメモリ322,324は、所定量の映像データを一時的に記憶する映像データバッファとしての機能を有しており、FIFO制御部321は映像データバッファ制御部としての機能を有している。また、第1のPLL回路325は入力クロック生成手段として、第2のPLL回路326は出力クロック生成手段として、第3のPLL回路327はドットクロック生成手段として、第4のPLL回路328はラインインクリメント信号生成手段としての機能をそれぞれ有している。なお、第2と第4のPLL回路326,328およびFIFOメモリユニット318が協同して、映像を垂直方向に変倍可能な変倍手段としての機能を発揮する。また、第2と第3のPLL回路326,327が協同して、映像データで表わされる映像を水平方向に変倍可能な変倍手段としての機能を発揮する。
【0048】
図11は、動画転送コントローラ内のアドレス演算部312の内部構成を示すブロック図である。アドレス演算部312は、オフセットアドレス記憶部330と、加算アドレス値記憶部332と、垂直カウンタ部334と、加算器340とを有している。乗算器338は、加算アドレス値記憶部332に記憶された加算アドレス値ADADと、垂直カウンタ部334から出力される垂直方向のカウント値VCNTとを乗算する。加算器340は、オフセットアドレス記憶部330に予め記憶されたオフセットアドレスOFADと乗算器338の乗算結果MULとを加算することによって、映像データのアドレスMADDを生成する。後述するように、このアドレスMADDは、各走査線の先頭アドレスである。
【0049】
図12は、VRAM222のメモリマップである。このVRAM222の1ワードは24ビットであり、1ワードに映像データのR成分とG成分とB成分とが含まれている。また、画面上の1画素(ドット)が1ワードに対応している。
【0050】
図13は、VRAM222のメモリ空間と画面との対応関係を示す説明図である。この図では、VRAM222の水平レンジ80の画素数は640(50hワード)、垂直レンジ81の走査線本数は480本である。図13の例では、簡単のために、動画の映像データが書き込まれる動画領域MPAが、垂直方向に2ライン目で水平方向に2画素目の開始位置から始まって水平方向に8画素の幅を有し、垂直方向に2ラインの幅を有する合計16画素の領域であるものと仮定している。なお、動画領域MPAの位置とサイズは、オペレータがカラーCRT224またはカラー液晶ディスプレイ226の画面上で指定する。
【0051】
図14は、カラーCRT224の画面上において指定された動画領域MPAを示す平面図である。図13に示すメモリ空間は、図14に示すカラーCRT224の表示画面と1:1で対応している。以下ではインターレース走査の行なわない場合のデータ転送について最初に説明し、インターレース走査を行なう場合のデータ転送については後述する。
【0052】
図11に示すオフセットアドレス記憶部330に記憶されるオフセットアドレスOFADは、図12において、VRAM222の先頭アドレス0000hから動画領域MPAの書込み開始位置のアドレス(0051h)までのオフセットの値(51h)である。
【0053】
動画領域MPAの最初の走査線の先頭アドレス(=0051h)は、画面上においてオペレータが指定した動画領域MPAの左上点P1(図14)の位置に応じて決定される。すなわち、オペレータが動画領域MPAを指定すると、CPU200が左上点P1に相当するアドレス(=0051h)を算出し、このアドレス(=0051h)をオフセットアドレスOFADとしてオフセットアドレス記憶部330に設定する。オペレータはカラーCRT224またはカラー液晶ディスプレイ226の画面上で任意の位置に任意の大きさの動画領域MPAを設定することができ、これに応じてオフセットアドレスOFADが設定される。
【0054】
インタレース走査を行なわない場合には、加算アドレス値記憶部332に記憶される加算アドレスADADは、VRAM222のメモリ空間における1走査線分の画素数に等しく、この実施例では50hに設定されている。
【0055】
乗算器338の出力MULと、加算器340の出力MADDは、それぞれ次の算術式で与えられる。
MUL=ADAD×VCNT …(1)
MADD=OFAD+MUL …(2)
【0056】
上記(1),(2)式をまとめると、各走査線に対する加算器340の出力MADDは次の算術式で与えられる。
MADD=(ADAD×VCNT)+OFAD …(3)
【0057】
垂直カウントVCNTは動画領域MPA内の走査線番号を示している。また、乗算器338の出力MULは、動画領域MPAの書込開始位置P1から各走査線の先頭画素までのアドレスの差(オフセット)を示している。従って、加算器340の出力MADDは、各走査線の先頭画素のアドレス(各走査線の先頭アドレス)である。
【0058】
F.インターレース走査を行なう場合のアドレス演算:
図15は、インターレース走査を行なう場合の奇数ラインフィールドと偶数ラインフィールドのメモリ空間を示す説明図であり、図13に対応する図である。奇数ラインフィールドは、動画領域MPA内の16個の画素アドレスのうちで1走査線分の8つの画素アドレス00A1h〜00A8hを含んでおり、偶数ラインフィールドは他の8つの画素アドレス0051h〜0058hを含んでいる。
【0059】
インターレースを行なう場合には、オフセットアドレス記憶部330(図11)に奇数ラインフィールド用のオフセットアドレスOFAD1=A1hと偶数ラインフィールド用のオフセットアドレスOFAD2=51hとを登録する。オフセットアドレス記憶部330は、これらの2つのオフセットアドレスOFAD1,OFAD2の一方をフィールド指示信号FISに応じて選択的に出力する。なお、2:1のインターレースの場合には、加算アドレスADADはインターレースが無い場合の値(=50h)の2倍(=A0h)となる。このように、インターレース走査の場合には、オフセットアドレスOFADと加算アドレスADADとを調整することによって、インターレースが無い場合と同様に、上記(3)式に従って各走査線の映像データの先頭アドレスMADDを算出できる。
【0060】
なお、インターレースを行なうための映像データを転送する場合にも、意図的にインターレースを行なわずに同一のアドレスに奇数ラインフィールドと偶数ラインフィールドの映像データを書き込むことも可能である。この場合には、インターレースが無い場合のオフセットアドレスOFADと加算アドレスADADとを、両方のフィールドに共通して使用すればよい。
【0061】
G.映像の拡大・縮小処理:
動画転送コントローラは、映像の拡大・縮小を行なう機能を有している。映像の拡大・縮小処理は、主に、図4に示すアドレス演算部312とFIFOメモリユニット318とによって実行される。図16は、アドレス演算部312内の垂直カウンタ部334の内部構成と、FIFO制御部321内の関連部分を示すブロック図である。FIFO制御部321のPLL回路327は、ビデオデコーダ220から与えられた水平同期信号HSYNCの周波数をNH 倍したドットクロック信号DCLKを生成する。また、PLL回路328は、垂直同期信号VSYNCの周波数をNV 倍したラインインクリメント信号HINCを生成する。ラインインクリメント信号HINCは、後述するように、映像を垂直方向に縮小する際に用いられる。ラインインクリメント信号HINCの周波数が第2の水平同期信号XHSYNCと同じである場合には、映像の縮小が行なわれない。
【0062】
垂直カウンタ部334は、バックポーチ記憶部402と、比較器404と、バックポーチカウンタ406と、垂直カウンタ408と、ラッチ410とを有している。バックポーチ記憶部402は、高速バス208を介してCPU200から与えられたバックポーチ数BPを記憶する。ここで、バックポーチ数BPはバックポーチ期間における水平同期信号HSYNCのパルス数である。バックポーチカウンタ406には第1の水平同期信号HSYNCが与えられ、ラッチ410のクロック入力端子には第2の水平同期信号XHSYNCが与えられている。また、垂直カウンタ408のクロック入力端子にはラインインクリメント信号HINCが与えられている。また、バックポーチカウンタ406と垂直カウンタ408のリセット入力端子には垂直同期信号VSYNCが与えられている。比較器404は、バックポーチ記憶部402に記憶されたバックポーチ数BPと、バックポーチカウンタ406のカウント値BPCとを比較する。
【0063】
比較器404の出力CMPはBP=BPCの時にHレベルとなり、BP≠BPCの時にはLレベルとなる。また、バックポーチカウンタ406は比較器404の出力CMPがLレベルの時にイネーブルとなり、垂直カウンタ408はCMPがHレベルの時にイネーブルとなる。
【0064】
垂直同期信号VSYNCが垂直カウンタ部334に与えられるとバックポーチカウンタ406と垂直カウンタ408とがリセットされる。このとき、比較器404の出力CMPはLレベルなので、バックポーチカウンタ406がイネーブルとなり、水平同期信号HSYNCのパルス数をカウントする。一方、垂直カウンタ408は停止したままである。水平同期信号HSYNCのパルスがバックポーチ数BPと等しい数だけバックポーチカウンタ406に入力されると、BP=BPCとなる。この結果、比較器404の出力CMPがHレベルとなり、バックポーチカウンタ406が停止するとともに、垂直カウンタ408がカウントアップを開始する。垂直カウンタ408のカウント値CNTは、第2の水平同期信号XHSYNCの立上がりエッジでラッチ410に保持されて、垂直カウントVCNTとして出力される。この垂直カウントVCNTが画面上の走査線番号を示している。なお、垂直方向に縮小を行なわない場合には、第2の水平同期信号XHSYNCとラインインクリメント信号HINCの周波数が等しく、従って、垂直カウントVCNTは第2の水平同期信号XHSYNCのパルス数に等しい。
【0065】
このように、垂直カウンタ408とラッチ410は、走査線番号を加算する手段としての機能を有している。
【0066】
図17は、垂直カウンタ部334の動作を示すタイミングチャートである。バックポーチ期間が過ぎ、有効映像期間において第2の水平同期信号XHSYNCがLレベルになると、垂直カウンタ部334のカウントアップが開始される。すなわち、有効映像期間において、第2の水平同期信号XHSYNCが1パルス発生する度に垂直カウンタ部334から出力される垂直カウントVCNTの値が1つずつ増加する。
【0067】
このように、映像を垂直方向に縮小しない場合には、垂直同期信号VSYNCが1パルス発生するたびに垂直カウントVCNTが0にリセットされ、その後、第2の水平同期信号XHSYNCが1パルス発生するたびに垂直カウントVCNTが1つずつ増加する。一方、映像を垂直方向に縮小する場合には、第2の水平同期信号XHSYNCとラインインクリメント信号HINCとに応じて垂直カウントVCNTが増加するが、その動作については後述する。
【0068】
図18は、FIFOメモリユニット318(図10)による垂直方向の拡大処理機能を説明する説明図であり、(a)は入力映像データVDI 、(b)は出力映像データVDO 、(c)は2つのFIFOメモリの動作をそれぞれ示している。但し、図18(a),(b)では、図示の便宜上、映像データを元のアナログ映像信号VSの形で描いている。
【0069】
図18(c)に示すように、2つのFIFOメモリ322,324の入力端子と出力端子は、仮想的なトグルスイッチ323a,323bによって相補的に交互に切換えられている。これらの仮想的なトグルスイッチ323a,323bは、FIFO制御部321から与えられる入力イネーブル信号REと出力イネーブル信号OEによって、2つのFIFOメモリ322,324の入出力が相補的に交互に切換えられることを等価的に示したものである。2つのFIFOメモリ322,324には、入力クロック信号CLKIと出力クロック信号CLKOとが共通に与えられている。入力クロック信号CLKIの周波数fCLKIは、図10(B)からも解るように、水平同期信号HSYNCの周波数をNH0倍したものであり、ビデオデコーダ264に与えられた映像信号VSがNTSC信号の場合には約6MHzの一定の周波数である。一方、出力クロック信号CLKOの周波数fCLKOは、入力クロック信号CLKIの周波数fCLKIのHX倍(HXは整数)の値である(図10(B)参照)。すなわち、出力クロック信号CLKOを生成するPLL回路326の設定値(NH0*HX)は、入力クロック信号CLKIを生成するPLL回路325の設定値NH0のHX倍に設定される。この実施例では、HX=3と仮定する。
【0070】
図18(a),(b)の第1の期間TT11と第3の期間TT13では、第1のFIFOメモリ322に入力映像データVDI が書き込まれ、第2のFIFOメモリ324から出力映像データVDO が読み出される。第2の期間TT12では、第2のFIFOメモリ324に入力映像データVDI が書き込まれ、第1のFIFOメモリ322から出力映像データVDO が読み出される。この結果、第1の期間TT11では第1の走査線L1に関する映像データが第1のFIFOメモリ322に書き込まれる。また、第2の期間TT12では、第2の走査線L2に関する映像データが第2のFIFOメモリ324に書き込まれる。図18の例は出力クロック信号CLKOの周波数fCLKOが入力クロック信号CLKIの周波数fCLKIの3倍に設定されているので、第2の期間TT12において、第1の走査線L1に関する映像データが第1のFIFOメモリ322から3回読み出される。
【0071】
図19は、映像の垂直方向の拡大と縮小の様子を示す説明図である。図19(A)は入力映像データVDI を示し、図19(B)は出力映像データVDO を示している。出力映像データVDO では、入力映像データVDI の各走査線がそれぞれHX(=3)回ずつ繰り返されており、これによって映像が垂直方向にHX(=3)倍に拡大されている。図19(B)において、例えば「L1a」,「L1b」,「L1c」は、元の走査線L1の映像データが3回繰り返して出力されていることを示している。このように、2つのFIFOメモリ322,324を用いて出力クロック信号CLKOの周波数fCLKOを入力クロック信号CLKIの周波数fCLKIの整数倍に設定することによって、映像を垂直方向に整数倍で拡大することが可能である。
【0072】
垂直方向の縮小は、図16に示すFIFO制御部321内のPLL回路328と、垂直カウンタ部334内の垂直カウンタ408およびラッチ410とによって実現される。図20は、垂直方向の縮小動作を示すタイミングチャートである。PLL回路328で生成されるラインインクリメント信号HINC(図20(a))は、垂直同期信号VSYNCの周波数fVSYNC のNV 倍の周波数fHINCを有している。第2の水平同期信号XHSYNC(図20(c))は、垂直同期信号VSYNCの周波数fVSYNC の(NV0*HX)倍の周波数fXHSYNCを有しており、NV0の値は元のアナログ映像信号VSにおける1フィールドの走査線数(以下、「全画ライン数」と呼ぶ)を示す一定値(NTSC信号の場合にはNV0=262.5)である。なお、図21(A),(B)に示すように、アナログ映像信号VSで表わされる映像の全画ライン数をNV0、有効画ライン数をNVLとし、その映像をディスプレイデバイスに表示する際の表示ライン数をNVMとすると、PLL回路328の設定値NV は次式で与えられる。

Figure 0003605891
ただし、NVM≦HX*NVLである。
【0073】
上式において、例えば、NV0=262.5,NVL=240,NVM=480を代入すれ、NV =525となる。
【0074】
垂直カウンタ408(図16)は、ラインインクリメント信号HINCの立上りエッジに応じてカウント値CNT(図20(b))をカウントアップし、また、ラッチ410は第2の水平同期信号XHSYNCの立上りエッジに応じて垂直カウンタ408のカウント値CNTをラッチして垂直カウントVCNT(図19(d))として出力する。
【0075】
図19の例では、ラインインクリメント信号HINCの周波数fHINCと第2の水平同期信号XHSYNCの周波数fXHSYNCの比(NV /NV0*HX)は2/3であり、これに応じて、垂直カウントVCNT(図19(d))は0,1,2,2,3,4,4,5…のように、2つ目毎に同じ値が1回繰り返される。垂直カウントVCNTはVRAM222における垂直アドレスを示しているので、3番目の垂直アドレスVCNT=2には、3本目の走査線L1cの映像データと4本目の走査線L2aの映像データが書き込まれることになる。この結果、3番目の垂直アドレスVCNT=2に最初に書き込まれた走査線L1cの映像データは、次の走査線L2aの映像データに置き換えられる。これが繰り返されると、3の倍数の位置にある走査線の映像データが間引かれて、垂直方向に縮小される結果となる。
【0076】
図19(B),(C)には、図19の動作によって映像が垂直方向に縮小される様子が示されている。2つのFIFOメモリ322,324の切換によってHX倍に拡大された映像データVDO は9つの走査線L1a〜L3cに亘っているが、この中で、3番目の走査線L1cの映像データはその次の走査線L2aの映像データで置き換えられ、また、6番目の走査線L2cの映像データもその次の走査線L3aの映像データで置き換えられる。この結果、映像が垂直方向にNV /(NV0*HX)倍される。なお、2つのFIFOメモリ322,324によって映像データが予め垂直方向にHX倍に拡大されているので、総合的な垂直方向の倍率MV は次式で与えられる。
MV =NV /NV0 …(4)
【0077】
映像の水平方向の拡大・縮小の倍率MH は、映像データをVRAM222に書き込む際のドットクロック信号DCLK(図16)の周波数fDCLKと、FIFOメモリ322,324から映像データを読み出す際の出力クロック信号CLKO(図18(c))の周波数fCLKOとの比fDCLK/fCLKOに等しい。図18において述べたように、出力クロックCLKOの周波数fCLKOは、入力クロック信号CLKIの周波数fCLKIのHX倍であり、入力クロック信号CLKIはコンポジット映像信号VSの周波数特性に応じた一定値である。従って、水平方向の倍率MH は、次の(5)式で与えられる。
MH =fDCLK/fCLKO=fDCLK/(HX*fCLKI) …(5)
【0078】
さらに、図10(B)からも解るように、入力クロック信号CLKIの周波数fCLKIは、水平同期信号HSYNCの周波数fHSYNC のNH0倍であり、fHSYNC ,NH0は定数である。また、ドットクロック信号DCLKは、水平同期信号HSYNCの周波数fHSYNC のNH 倍の周波数を有する。従って、上記(5)式は、次のように書き換えられる。
Figure 0003605891
【0079】
垂直倍率MV を示す(4)式と水平倍率MH を示す(6)式において、CPU200から設定できる値は、HX,NV ,NH の3つであり、これらはいずれもFIFO制御部321内の設定値である。これらの3つの値HX,NV ,NH は、例えば次の式で決定される。
【0080】
HX=RND(MV ) …(7a)
NV =NV0*MV …(7b)
NH =NH0*MH *HX …(7c)
ここで、演算子RNDは、括弧内の数値の小数点以下を切り上げた整数を示している。
【0081】
なお、(7b),(7c)式は、整数HXとしてどのような値を用いても成立するので、整数HXの値を(7a)式以外の式で決定することも可能である。
【0082】
図21(A)は元のコンポジット映像信号VSで表わされる映像ORを示しており、図21(B)は拡大・縮小後の映像MRを記憶するVRAM空間を示している。ここでは、水平方向の最大画素数780,有効画素数640,垂直方向の最大ライン数525,有効ライン数480としている。VRAM空間における映像MRは、カラーCRT224やカラー液晶ディスプレイ226にそのまま表示される。従って、垂直方向の倍率MV と水平方向の倍率MH は、ディスプレイデバイス上で設定された映像表示用ウィンドウのサイズと元の映像ORのサイズとの比に等しい。CPU200は、ディスプレイデバイス上に設定された映像表示用ウィンドウのサイズから倍率MV ,MH を算出し、さらに、上記(7a)〜(7c)に従って3つの値HX,NV ,NH を算出して、FIFO制御部321内に設定する。
【0083】
このように、上記実施例では、VRAM222に映像データを転送する際に、映像を任意の倍率で拡大・縮小することができる。また、映像の表示位置もアドレス演算部312によって任意に設定できるので、ディスプレイデバイスの任意の位置に任意の倍率で動画を表示することが可能である。
【0084】
E.他の変形例:
本発明は実施例に限らず、以下のような種々の変形が可能である。
【0085】
(1)上述した式(3)で与えられる先頭アドレスMADDを算出する回路としては、図11に示す構成以外の種々の構成が考えられる。例えば、アドレス演算部312内の加算器を減算器に置き換えたり、加算順序を変更させたりしても同様の結果が得られる。
【0086】
また、図11に示す乗算器338を、加算器とカウントアップ用カウンタとで置き換えて、加算アドレス値記憶部332に記憶された加算アドレスADADを垂直カウンタ部334の垂直カウントVCNTの回数だけ加算するようにしてもよい。
【0087】
(2)図22に示すように、図16におけるPLL回路328を1/N分周器329で置き換えることも可能である。この1/N分周器329は、垂直同期信号VSYNCによってリセットされ、リセットされた後にドットクロック信号DCLKを1/Nに分周してラインインクリメント信号HINCを生成する。このように1/N分周器329を用いると、PLL回路を用いた場合よりもラインインクリメント信号HINCのジッタを少なくすることができるという利点がある。
【0088】
(3)図23は、3つのFIFOメモリを用いて垂直方向の拡大とともに走査線間の補間を行なう回路の構成と動作を示す説明図であり、図18に対応する図である。図23(c)に示すように、この回路は、3つのFIFOメモリ421,422,423と、3つの等価的なスイッチ431,432,433と、2つの乗算器441,442と、加算器450とを含んでいる。図23(a),(b)に示すように、各期間TT21,TT22,TT23では、1つのFIFOメモリに1走査線分の映像データが書き込まれ、他の2つのFIFOメモリから映像データが読み出される。映像データが書き込まれるFIFOメモリと映像データが読み出されるFIFOメモリは、所定の順番で選択される。図23(c)は、第3の期間TT23の前半におけるスイッチの接続状態を示している。この時、第1のFIFOメモリ421から読み出された第1の走査線L1の映像データは第1の乗算器441でk1倍され、第2のFIFOメモリ422から読み出された第2の走査線L2の映像データは第2の乗算器442でk2倍される。2つの乗算器441,442の出力は加算器450で加算されるので、期間TT23の前半において加算器450から出力される出力映像データVDO は、(L1*k1+L2*k2)となる(図23(b))。ここで、係数k1,k2をともに0.5とおけば、期間TT23の前半における出力映像データVDO は、2本の走査線L1,L2の映像データを単純平均したデータとなる。k1,k2を0でない適当な値に設定すれば、重み付き平均を得ることができる。なお、期間TT23の後半では、第2の走査線L2の映像データがそのまま出力映像データVDO として出力される。
【0089】
(4)垂直方向を拡大させるためのFIFOメモリユニット318と同様に機能するFIFOメモリユニットをビデオデコーダ220と色調整部320の間に設けることによっても、図23の構成と同様に垂直方向の拡大と補間を行なうことができる。この場合には、図10(A)のFIFOメモリユニット318は映像データVDの垂直方向の拡大を行なわず、データ転送のタイミングを調整する回路として使用される。
【0090】
なお、本発明において、「映像を垂直方向に拡大する」という用語は、図18のように単純に拡大する場合に限らず、図23のように垂直方向に補間しつつ拡大する場合も意味している。
【0091】
(6)複数のFIFOメモリの代わりにRAMなどの他のタイプの映像データバッファを用いることによってFIFOメモリユニットと等価な機能を有する回路を構成することも可能である。一般には、複数の映像データバッファとバッファ制御回路を設け、バッファ制御回路によって複数の映像データバッファを所定の順番で切換えることによって、上述したFIFOメモリユニットの機能を実現することが可能である。
【0092】
(7)図10(B)のPLL回路325と等価な機能は、PLL回路326で得られた信号CLKOを入力として(1/NH0)で分周出力し、水平同期信号HSYNCでリセットする回路を用いても実現できる。このように、図10(B)ではPLL回路を複数用いているが、分周回路等の組み合わせによって等価な回路を実現することも可能である。
【0093】
(8)図4の色調整部320は、デジタル映像信号DSをYUV信号で受けて色相変換を行なった後、コンポーネント映像データVDをRGB信号として出力する回路として構成してもよい。
【0094】
【発明の効果】
以上説明したように、本発明によれば、動画の中の任意の形状の領域内の映像信号を映像メモリに高速に転送することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例としてのコンピュータシステムを示すブロック図。
【図2】図2は、バスアービタ240内の循環優先順位レジスタの内容を示す説明図である。
【図3】VRAM222とマスクデータRAM223の構成を示す説明図。
【図4】動画転送コントローラの内部構成を示すブロック図。
【図5】ビデオコントローラ212の内部構成を示すブロック図。
【図6】マスクデータを利用して任意の形状の表示領域内の映像データをVRAM222に転送する方法を示す説明図。
【図7】マスクデータを用いたデータ転送の動作を示すタイミングチャート。
【図8】マスクデータの更新処理の手順を示すフローチャート。
【図9】映像データをビット反転させる場合の回路構成の一部を示す説明図。
【図10】FIFOメモリユニット318の内部構成を示すブロック図
【図11】アドレス演算部312の内部構成を示すブロック図。
【図12】VRAM222のアドレスマップ。
【図13】VRAM222と画面との対応関係を示す説明図。
【図14】カラーモニタの画面内の動画領域MPAを示す平面図。
【図15】インターレース走査を行なう場合の奇数ラインフィールドと偶数ラインフィールドのメモリ空間を示す説明図。
【図16】垂直カウンタ部334およびFIFO制御部321の内部構成を示すブロック図。
【図17】垂直カウンタ部334の動作を示すタイミングチャート。
【図18】映像の垂直方向の拡大動作を示す説明図。
【図19】映像の垂直方向の拡大と縮小の様子を示す説明図。
【図20】映像の垂直方向の縮小動作を示すタイミングチャート。
【図21】映像の垂直方向と水平方向の拡大・縮小の様子を示す説明図。
【図22】第2のPLL回路328を1/N分周器で置き換えた場合の回路構成を示すブロック図。
【図23】3つのFIFOメモリを用いて垂直方向の拡大とともに走査線間の補間を行なう構成と動作を示す説明図。
【図24】従来のDMAコントローラを用いたコンピュータシステムのブロック図。
【図25】従来技術によって静止画SIa,SIbと動画MIとを同時に表示した場合を示す説明図。
【符号の説明】
51R,51G,51B…映像メモリ
52…データバス
53…アドレスバス
54…制御バス
55…DMAコントローラ
56R,56G,56B…VRAM
57…制御部
59…CPU
200…CPU
202…メインメモリ
204…ホストバス
206…ブリッジ
208…高速バス
212…ビデオコントローラ
214…拡張バスブリッジ
220…ビデオデコーダ
222…VRAM
223…マスクデータRAM
224…カラーCRT
226…カラー液晶ディスプレイ
230…低速バス
232…I/Oコントローラ
240…バスアービタ
250,260,270…動画転送コントローラ
252…圧縮/伸長回路
254…モデム
262…A−D変換器
264…ビデオデコーダ
266…テレビチューナ
272…CD−ROM装置
300…インタフェイス
302…バス制御信号生成部
304…切換回路
306…切換制御部
312…アドレス演算部
314…データ出力部
318…FIFOメモリユニット
320…色調整部
321…FIFO制御部
322,324…FIFOメモリ
323a,323b…トグルスイッチ
325〜328…PLL回路
330…オフセットアドレス記憶部
332…加算アドレス値記憶部
334…垂直カウンタ部
338…乗算器
340…加算器
350…デコーダ
352…アドレスカウンタ
354…アドレスラッチ
356…データ変換回路
358…VGAコントローラ
362,364…ANDゲート
366…NANDゲート
368…ORゲート
402…バックポーチ記憶部
404…比較器
406…バックポーチカウンタ
408…垂直カウンタ
410…ラッチ
421,422,423…FIFOメモリ
431,432,433…スイッチ
441,442…乗算器
450…加算器
510…PLL回路
511…波形成形部
615…ビット反転回路[0001]
[Industrial applications]
The present invention relates to a computer system that displays a moving image by transferring a video signal of the moving image to a video memory.
[0002]
[Prior art]
Conventionally, so-called DMA (Direct Memory Access) transfer has been used as a method of transferring video data supplied from the outside to a frame memory of a personal computer.
[0003]
FIG. 24 is a block diagram showing a conventional computer system provided with a DMA controller for transferring video data to a video RAM. The three video memories 51R, 51G, and 51B store color data Dr, Dg, and Db that are separated into hues of red (R), green (G), and blue (B), respectively. These color data Dr, Dg, Db are binarized in advance by, for example, a dither method. The DMA controller 55 acquires the right to use the address bus 53, the data bus 52, and the control bus 54 from the CPU 59, and transfers the binary color data Dr, Dg, and Db stored in the three video memories 51R, 51G, and 51B. The data is transferred to the video RAMs 56R, 56G, 56B for display in real time. The transferred binary color data Dr, Dg, Db is sent to the monitor control section 57 through the VRAMs 56R, 56G, 56B, and causes the monitor 58 to display an image.
[0004]
At the time of DMA transfer, first, the CPU 59 sends the display start address in the R component VRAM 56R to the DMA controller 55 to activate the DMA controller 55. The DMA controller 55 acquires the right to use the bus from the CPU 59, transfers the binary color data Dr of the R component on the first line to the VRAM 56R for the R component, and then returns the right to use the bus to the CPU 59. Next, when the CPU 59 sends the display start address of the VRAM 56G for the G component to the DMA controller 55 and starts the DMA controller 55, the binary color data Dg is transferred in the same manner as the R component. Further, the B component is transferred similarly. When transferring the video data of the second line, the CPU 59 calculates the display start address of the second line of each of the VRAMs 56R, 56G and 56B and sends it to the DMA controller 55, where the binary color data Dr, Dg and Db are sequentially transferred.
[0005]
As described above, the CPU 59 calculates the display start addresses of the VRAMs 56R, 56G, and 56B for each line and teaches them to the DMA controller 55, and the DMA controller 55 sequentially transmits the color data Dr, Dg, and Db of each line accordingly. By performing the DMA transfer, the color data for one field is transferred to the VRAM 56. Note that "one field" refers to an image covered by one scan from the upper left corner to the lower right corner of the screen. In many cases, 2: 1 interlacing (interlaced scanning) is performed, and two fields constitute an image of one frame (one screen). In this way, the moving image is displayed on the monitor 58 by sequentially DMA transferring binary color data of about 60 fields per second.
[0006]
[Problems to be solved by the invention]
In the case of using an NTSC (National Television System Committee) video signal, the scanning period of one horizontal line is 63 μs. On the other hand, in the system of FIG. 24, the time when the CPU 59 calculates the display start address and transfers it to the DMA controller 55, the time when the DMA controller 55 acquires the right to use each bus from the CPU 59, and the time when each binary color data Dr, When the time for DMA transfer of one line of Dg and Db is summed up, only several fields of data can be transferred per second. This is considered to be because it takes more time than necessary for the CPU 59 to calculate the display start address and to set the display start address in the DMA controller 55. As described above, the conventional device can transfer only data for a few fields per second, and therefore cannot display a smooth moving image.
[0007]
By the way, with the recent increase in the speed of CPUs and the increase in memory capacity, personal computers having a multi-window function have begun to spread rapidly. In particular, some windows can display a moving image.
[0008]
FIG. 25 is an explanatory diagram showing a case where the still images SIa and SIb and the moving image MI are simultaneously displayed in the multi-window system. Conventionally, when the display area of the moving image MI is rectangular as shown in FIG. 25A, the moving image can be DMA-transferred, but video data representing the moving image in a non-rectangular display area is transferred. That was impossible. Here, the “display area” means an area displayed on the screen of the display device. For example, in FIG. 25A, when the area of the still image SIa becomes active and is displayed over the moving image MI as shown in FIG. 25B, the display area of the moving image MI is not rectangular. The moving image MI cannot be displayed by the DMA transfer. Furthermore, it has been impossible to display a plurality of moving images MI on the screen in an independent and arbitrary shape.
[0009]
SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problem in the related art, and has as its object to transfer a video signal in an area of an arbitrary shape in a moving image to a video memory at a high speed. It is another object of the present invention to transfer a video signal in a region of an arbitrary shape independent of a plurality of moving images to a video memory.
[0011]
Means and action for solving the problem
To solve at least a part of the problems described above, a computer system according to the present invention is provided. Is a computer system that can display videos,
A microprocessor that performs various operations and controls according to a software program;
A first bus connected to the microprocessor;
A second bus in which addresses and data are transferred in a time-division manner by a common signal line;
A bridge connecting the first and second buses;
A display device for displaying video,
A video memory for storing a video signal of a video displayed on the display device;
It has the same image space as the video memory, is allocated to the same address space as the video memory, and stores mask data indicating a plurality of moving image areas in which a plurality of types of moving image video signals are to be written in the video memory. A mask data memory for storing;
A video controller connected to the second bus and controlling writing and reading of a video signal to and from the video memory, and writing and reading of mask data to and from the mask data memory;
For each scanning line of a moving image represented by a moving image video signal, a head address of each scanning line is generated and output on the second bus, and a video signal of each pixel on the scanning line is generated after the head address. A plurality of video transfer means each having a function of continuously outputting on the second bus;
Bus arbitration means for arbitrating the right to use the second bus by the plurality of video transfer means,
The video controller comprises:
Address generation means for generating a pixel address for each pixel from the start address given via the second bus;
The same address is supplied to the video memory and the mask data memory, and a write indicating whether a video signal of each pixel is to be written to the video memory according to the mask data read from the mask data memory. Write signal generating means for generating a signal;
Writing means for writing a video signal of each pixel to the video memory according to the write signal and the pixel address generated by the address generation means;
Is provided.
[0012]
Since the mask data memory has the same image space as the video memory and is assigned to the same address space, by supplying the same address to the mask data memory and the video memory, the write address of the video memory is The corresponding mask data is read from the mask data memory. Then, since the video signal is written to the video memory according to the mask data indicating the video area, the video signal in the video area of an arbitrary shape can be written to the video memory. Further, since the video transfer means only needs to output the head address and the video signal for each scanning line, the video signal of the moving image can be transferred at a high speed.
[0013]
【Example】
A. System configuration and operation:
FIG. 1 is a block diagram showing a configuration of a computer system as one embodiment of the present invention. In this computer system, a CPU 200 and a main memory 202 are connected to a host bus 204. The host bus 204 is connected to a high-speed bus 208 via a bridge 206. The high-speed bus 208 is a bus in which addresses and data are transferred by a common signal line in a time-division manner. The high-speed bus 208 is a synchronous bus that operates in synchronization with the clock signal. The frequency of the clock signal may be 33 MHz or less, and the clock frequency can be changed during the operation.
[0014]
A video controller 212 and an expansion bus bridge 214 are connected to the high-speed bus 208. The video controller 212 is connected with a video RAM (VRAM) 222 as a frame memory, a mask data RAM 223 for storing mask data, and a color CRT 224 or a color liquid crystal display (LCD) 226 as a display device. The video controller 212 displays a video by writing a digital video signal (video data) provided via the high-speed bus 208 to the VRAM 222, and reads a video signal from the VRAM 222 and supplies the video signal to the color CRT 224 or the liquid crystal display 226. Display function.
[0015]
The expansion bus bridge 214 is a bridge for connecting the low-speed bus 230 to the high-speed bus 208. Various I / O controllers 232 and connectors (not shown) are connected to the low-speed bus 230. The low-speed bus 230 has a lower data transfer speed than the high-speed bus 208, and is connected to a relatively low-speed input / output device such as a floppy disk device or a keyboard.
[0016]
The high-speed bus 208 is further connected with a bus arbiter 240 as a bus adjusting unit and three moving image transfer controllers 250, 260, and 270 as video transfer units. A compression / decompression circuit 252 is connected to the first moving image transfer controller 250, and a modem 254 is connected to the compression / decompression circuit 252. The compressed video signal supplied to the modem 254 from the external communication line is decompressed by the compression / decompression circuit 252, and the decompressed video signal is transferred by the video transfer controller 250.
[0017]
An A / D converter 262 is connected to the second moving image transfer controller 260, and a video decoder 264 is connected to the A / D converter 262. A video tuner 266 is further connected to the video decoder 264, and a video camera is connected to an input terminal thereof. The video decoder 264 decodes the composite video signal VS given from a video video signal supply device such as a television tuner 266 or a video camera, and outputs a component video signal (YUV signal or RGB signal), synchronization signals VSYNC, HSYNC, and a field instruction. And a signal FIS. The field indication signal FIS is a signal indicating whether the field is an odd field or an even field in the case of interlaced scanning. In the video decoder 264, a color signal conversion circuit for converting a YUV signal into an RGB signal is provided. The A / D converter 262 converts an analog component video signal into a digital component video signal DS. The digital component video signal DS is transferred by the second moving image transfer controller 260. Alternatively, the data is compressed by the compression / decompression circuit 252 and transmitted to a communication device such as a MODEM by the first moving image transfer controller 250, or transferred to an external storage device (not shown) such as a hard disk. A CD-ROM device 272 is connected to the third moving image transfer controller 270, and transfers the moving image signal supplied from the CD-ROM device 272.
[0018]
Each of the three moving image transfer controllers 250, 260, and 270 can transfer a moving image video signal using the high-speed bus 208. The bus arbiter 240 plays a role in arbitrating the priorities when these three moving image transfer controllers use the high-speed bus 208. When the three moving image transfer controllers use the high-speed bus 208, they supply bus request signals REQ1 #, REQ2 #, and REQ3 # to the bus arbiter 240 to notify them that they want to use the bus. The bus arbiter 240 determines to which of the right to use the bus according to the value of the internal priority register, and activates any one of the bus permission signals GNT1 #, GNT2 #, and GNT3 # for the three moving image transfer controllers. I do.
[0019]
FIG. 2 is an explanatory diagram showing the contents of the cyclic priority register in the bus arbiter 240. In the circular priority algorithm, three video transfer controllers 250, 260, 270 are cyclically given bus priority. When two or more moving image transfer controllers activate the bus request signal, the controller having the highest priority set in the cyclic priority register is permitted to use the bus. At this time, when the controller with the highest priority (for example, the first moving image transfer controller 250) uses the bus, the next controller (for example, the second moving image transfer controller 260) has the next priority. As a result of such arbitration of the bus arbiter 240, the moving image video signals can be respectively transferred from the three moving image transfer controllers.
[0020]
FIG. 3 is an explanatory diagram showing the configuration of the VRAM 222 and the mask data RAM 223. As shown in FIG. 3A, the VRAM 222 is a frame memory that stores, for each pixel of a screen of a display device (color CRT 224, liquid crystal display 226), 8-bit RGB composite video data. The mask data RAM 223 is a memory that stores 2-bit mask data representing an area of the VRAM 222 in which a moving image is written (hereinafter, referred to as “moving image writing area” or “moving image area”) for each pixel. Also, as shown in FIG. 3B, the VRAM 222 and the mask data RAM 223 are mapped to the same address space as viewed from the video controller 212. The moving image transfer operation using the mask data will be described later.
[0021]
FIG. 4 is a block diagram showing the internal configuration of the moving image transfer controller. All three moving image transfer controllers shown in FIG. 1 have the configuration shown in FIG. The moving image transfer controller includes an interface 300 with the high-speed bus 208, a bus control signal generator 302 for generating a control signal for the high-speed bus 208, and an address / data bus ADB in the high-speed bus 208 by switching addresses and data. A switching circuit 304 for outputting, a bus control signal generating unit 302 and a switching control unit 306 for controlling operations of the switching circuit 304, an address calculating unit 312 for calculating an address, a data output unit 314, and a FIFO memory unit 318. And a color adjustment unit 320.
[0022]
The digital video signal DS provided to the color adjustment unit 320 is 24-bit (8 bits for each of RGB) full-color video data. The color adjusting unit 320 converts the 24-bit digital video signal DS into 16 bits (R: G: B = 5: 6: 5 bits can reproduce 60,000 colors) and 8 bits (R: G : B = 3: 3: 2 bits can reproduce 256 colors), 4 bits (16 colors can be reproduced by color palette), 3 bits (8 colors can be reproduced by color palette) is there. When converting to 4-bit or 3-bit video data, binarization by the dither method is executed. The type of video data to be converted is set by the CPU 200 in accordance with the designation of the operator. However, hereinafter, a case will be described in which the color adjustment unit 320 outputs 24-bit full-color video data (referred to as “component video data”) as it is.
[0023]
The video data output from the FIFO memory unit 318 is output to the address / data bus ADB via the data output unit 314 and the switching circuit 304. The switching circuit 304 switches between the video data MDATA output from the data output unit 314 and the address MADD output from the address calculation unit 312 in accordance with the switching signal SW given from the switching control unit 306, and outputs the address MADD and the data MDATA. Is output in a time-sharing manner. The three-state buffer 305 in the switching circuit 304 is switched between an output state and a high impedance state according to a first output control signal C1 provided from the switching control unit 306. Further, the bus control signal generator 302 for various control signals (C / BE, FRAME #, etc.) for the high-speed bus 208 also has a three-state buffer 303 at its output. The three-state buffer 303 is switched between an output state and a high-impedance state according to a second output control signal C2 provided from the switching control unit 306.
[0024]
FIG. 5 is a block diagram showing the internal configuration of the video controller 212 (FIG. 1). The video controller 212 includes a decoder 350, an address counter 352, an address latch 354, a data conversion circuit 356, and a VGA controller 358. The decoder 350, the address counter 352, and the address latch 354 obtain the address (pixel address) PADD of each pixel on each scanning line from the head address MADD of each scanning line provided via the address / data bus ADB of the high-speed bus 208. It has a function as an address generating means for generating. Further, the VGA controller 358 has a function as a first writing unit that writes the video data PDATA of each pixel of each scanning line into the VRAM 222 according to the pixel address PADD. The VGA controller 358 also has a function as a second writing unit that writes the mask data into the mask data RAM 223. The mask data is transferred from the CPU 200 to the video controller 212 via the address / data bus ADB of the high-speed bus 208.
[0025]
The decoder 350 generates signals for controlling the address counter 352, the address latch 354, and the data conversion circuit 356 from various control signals of the high-speed bus 208. The data conversion circuit 356 is a circuit that converts, when a YUV signal is given via the high-speed bus 208, into an RGB signal. When the RGB signal is supplied, the RGB signal passes through the data conversion circuit 356 as it is. Note that whether or not data conversion circuit 356 performs data conversion is determined according to a mode signal provided from decoder 350.
[0026]
FIG. 6 is an explanatory diagram showing a method of transferring video data in an area of an arbitrary shape to the VRAM 222 using mask data. The three moving images MR1 to MR3 depicted in the VRAM 222 are transferred by the three moving image transfer controllers 250, 260, and 270 shown in FIG. Although each moving image is originally rectangular, each image data is written in the VRAM 222 in accordance with the mask data TDATA with the overlapping portion hidden as shown in FIG. The address latch 354 outputs the pixel address PADD of each moving image in the address space of the VRAM 222 (that is, the space corresponding to the screen area of the display device). The VGA controller 358 applies the pixel address PADD to the VRAM 222 and the mask data RAM 223 in common. Therefore, when the video data PDATA representing a rectangular moving image is supplied to the VRAM 222, the mask data TDATA of each pixel is read from the mask data RAM 223 and input to the VGA controller 358. The VGA controller 358 controls whether or not the video data PDATA of each pixel is written according to the mask data TDATA.
[0027]
As shown in FIG. 6, the VGA controller 358 has two AND gates 362 and 364, a NAND gate 366, and an OR gate 368. The two AND gates 362 and 364 calculate the logical product of each bit of the 2-bit mask data TDATA and each bit of the 2-bit mode data MODE output from the decoder 350. Outputs of the two AND gates 362 and 364 are input to a NAND gate 366. Therefore, the output TT of the NAND gate 366 becomes 0 level only when the mask data TDATA completely matches the mode data MODE. As shown in the mask data RAM 223 of FIG. 6, the mask data TDATA takes the values of 01b, 10b, and 11b in the moving image regions MR1, MR2, and MR3, respectively, and takes the value of 00b in the background region (b Indicates a binary number). Therefore, only when mode data MODE having the same value as these mask data TDATA is output from decoder 350, output TT of NAND gate 366 becomes 0 level.
[0028]
OR gate 368 takes the logical product (AND) of the negative logic of output TT of NAND gate 366 and write signal PWE # output from decoder 350, and provides output EPWR # to VRAM 222 as a write signal. I have. In this specification, signals with "#" after the signal name are signals of negative logic. As a result, depending on the values of the mask data TDATA and the mode data MODE, the writing of the video data PDATA to the VRAM 222 is permitted or prohibited. For example, if the value of the mode data MODE matches the mask data TDATA in the entire space of the VRAM 222 and the mask data RAM 223, the video data of the three moving images MR1 to MR3 can be written in the VRAM 222 respectively. If the value of the mode data MODE is fixed to 10b, only the video data of the second moving image MR2 can be written.
[0029]
By changing the distribution of the mask data TDATA, it is possible to arbitrarily change the shape of each moving image area. In other words, the mask data TDATA has a function of masking a part of a moving image that is originally rectangular. Further, by changing the value of the pixel address PADD and the distribution of the mask data TDATA, it is possible to arbitrarily change the position of the region where the moving image is displayed on the screen of the display device. Further, as will be described later, in a moving image region having an arbitrary shape, the moving image can be scaled at an arbitrary magnification in the horizontal direction and the vertical direction.
[0030]
In this embodiment, the writing of the video data PDATA into the VRAM 222 is controlled by controlling the level of the write signal EPWR # by the OR gate 368, and thus there is an advantage that the circuit configuration is simple. Also, since the video data PDATA and the pixel address PADD may be supplied to the VRAM 222 in the same manner as when writing a rectangular moving image, there is no need to adjust the video data PDATA and the pixel address PADD according to the shape of the moving image area.
[0031]
FIG. 7 is a timing chart showing the operation of data transfer on the scanning lines X1-X2 of the VRAM 222 in FIG. 7B to 7E show signals related to the bus arbiter 240, and FIGS. 7F to 7J show signals transferred via the high-speed bus 208, and FIGS. 9K to 9M. Is a signal transferred from the video controller 212 to the VRAM 222. The transfer of the video data is executed in synchronization with the dot clock signal DCLK (FIG. 7A) generated by the FIFO memory unit 318 (FIG. 3).
[0032]
When the first moving image transfer controller 250 (FIG. 1) transfers a moving image, the bus request signal REQ1 # (FIG. 7B) is asserted (to an L level), so that the bus arbiter 240 uses the bus. Claim rights. In response to this, when the bus arbiter 240 asserts the bus permission signal GNT1 # (FIG. 7C) (to the L level), the transfer by the first moving image transfer controller 250 starts. That is, the first moving image transfer controller 250 first outputs the head address MADD of one scanning line on the address / data bus ADB of the high-speed bus 208, and then continuously outputs the video data PADD of all pixels on the scanning line. Output. When transferring the moving image, the second moving image transfer controller 260 asserts the bus request signal REQ2 # (FIG. 7D). In response to this, when the bus arbiter 240 asserts the bus permission signal GNT2 # (FIG. 7 (e)), the second moving image transfer controller 260 places the head address MADD of one scanning line on the address / data bus ADB of the high speed bus 208. Then, the video data PADD of all the pixels on the scanning line are continuously output.
[0033]
Time points T1 and T2 shown in the lower part of FIG. 7M correspond to pixel positions T1 and T2 shown in the VRAM 222 in FIG. In other words, the arbitration by the bus arbiter 240 allows the plurality of moving image transfer controllers to transfer the video data of each moving image while sequentially acquiring the bus use right.
[0034]
The relationship between the operations of the moving image transfer controller and the video controller 212 in the transfer of video data is as follows. In the moving image transfer controller shown in FIG. 4, first, the head address MADD of each scanning line is generated by the address operation unit 312 and output to the address / data bus ADB of the high speed bus 208. Then, the switch (multiplexer) in the switching circuit 304 is switched to the data output unit 314 side by the switching signal SW given from the switching control unit 306. As a result, the video data PDATA for all the pixels on the scanning line of the head address MADD is continuously output on the address / data bus ADB in synchronization with the dot clock signal DCLK.
[0035]
FIGS. 7F to 7I show control signals when a PCI (Peripheral Component Interconnect) bus is used as the high-speed bus 208. The signal FRAME # in FIG. 7F is a signal output by the moving image transfer controller that is the transfer source (initiator device). When the signal FRAME # is asserted (when the signal FRAME # becomes L level), a bus cycle is started. You. Further, when the signal FRAME # is deasserted (to H level), the bus cycle ends at the next clock. The signal IRDY # in FIG. 7G is a signal indicating that the moving image transfer controller as the initiator can transfer data, and is output by the moving image transfer controller. A signal TRDY # in FIG. 7H is a signal indicating that the video controller 212 as a transfer destination (target device) can transfer data, and is output by the video controller 212. The signal DEVSEL # in FIG. 7I is a signal indicating that the target video controller 212 accepts data transfer, and is output by the video controller 212. Note that other control signals for the high-speed bus 208 exist, but are omitted for convenience of illustration.
[0036]
The decoder 350 in the video controller 212 shown in FIG. 5 checks the address output from the moving image transfer controller, which is the initiator, and determines whether the video controller 212 is a target device. When the video controller 212 is a target device, the decoder 350 asserts the control signals TRDY # (FIG. 7 (h)) and DEVSEL # (FIG. 7 (i)), and sets the address counter 352 and the address latch 354 A control signal is supplied to the data conversion circuit 356 to control the operation thereof. That is, when the address MADD is output on the address / data bus ADB, the address MADD is set as the initial value of the address counter 352 by activating the load terminal of the address counter 352. The pixel write signal PWR # from the decoder 350 is input to the clock terminal of the address counter 352. This pixel write signal PWR # is synchronized with the clock signal DCLK of the high-speed bus 208 at the same frequency, and is a signal indicating the timing at which the VGA controller 358 writes video data of each pixel to the VRAM 222. Therefore, the address counter 352 increments the address by one for each pulse of the clock signal DCLK (FIG. 7A) and outputs a pixel address PADD for each pixel. The address latch 354 latches the pixel address PADD output from the address counter 352 and outputs it to the VGA controller 358.
[0037]
As shown in FIGS. 7K to 7M, the VGA controller 358 writes video data for all pixels on one scanning line of each moving image in the VRAM 222 in synchronization with the pixel write signal EPWR #. Since the pixel address EPADD given from the VGA controller 358 to the VRAM 222 is defined in a local address space in the VGA controller 358, it differs from the value of the pixel address PADD in the high-speed bus 208, but the meaning is the same. is there. That is, the value of the pixel address EPADD is a value that is incremented by one every clock from the head address SP of each scanning line of the moving image.
[0038]
As described above, in this computer system, moving image video data can be transferred from one moving image transfer controller to one VRAM 222 by masking the inside of the VRAM 222 using the mask data TDATA of a plurality of bits. In the above example, since the mask data TDATA is 2 bits, three moving image data can be distinguished. In general, if the mask data is n bits, it is possible to transfer moving images from the {(2 n) −1} moving image transfer controllers to the same VRAM 222.
[0039]
B. Update mask data:
FIG. 8 is a flowchart illustrating a procedure of a mask data update process. In step S1, initial data of the mask data is written to the mask data RAM 223. Here, the initial data of the mask data refers to mask data written when a moving image is displayed for the first time, and is usually mask data indicating a rectangular moving image region.
[0040]
In step S2, the CPU 200 monitors whether or not the state of the moving image window has been changed on the screen of the display device. The moving image window has the same meaning as the moving image area on the screen, and corresponds to the moving image area in the image space of the VRAM 222. The state of the video window is changed when the size or position of another window that overlaps the video window is changed, the size or position of the video window itself is changed, and the vertical relationship of the overlap between windows is changed And so on.
[0041]
When the state of the moving image window is changed, in step S3, the chip enable signal CE1 # (FIG. 5) of the VRAM 222 is raised to the H level to prohibit writing to the VRAM 222, and the chip enable signal CE2 of the mask data RAM 223. # Falls to the L level, and writing of the mask data RAM 223 is permitted. In step S4, the CPU 200 updates the mask data in the mask data RAM 223 by writing new mask data into the mask data RAM 223. In step S5, the chip enable signal CE1 # falls to the L level, and writing of data to the VRAM 222 is permitted.
[0042]
As described above, whenever the position or shape of the moving image window is changed by changing the moving image window or the still image window on the screen of the display device, the mask data is updated each time. Note that the mask data update process in FIG. 8 is realized by the CPU 200 incorporating a predetermined driver (portion connecting application software and hardware) program.
[0043]
D. Modification of system configuration:
The moving image transfer controller described above does not necessarily need to transfer video data to all pixels on each scanning line continuously. The moving image transfer controller can continuously transfer video data of a desired number of pixels following one address. It is also possible to alternately output the address and data of each pixel. However, for each moving image, if the head address MADD of each scanning line is output and then the video data for all the pixels on the scanning line is continuously transferred, the data transfer can be performed at a higher speed and the data can be smoothly transferred. There is an advantage that a dynamic moving image can be displayed.
[0044]
As shown in FIG. 6, instead of controlling the writing of the video data by controlling the level of the write signal EPWR # with the mask data TDATA and the mode data MODE, a write per bit mode which is a function unique to the video RAM is used. In the above, the write operation of the VRAM 222 may be prohibited in bit units.
[0045]
Instead of using the mask data TDATA to control the writing of the video data, it is also possible to use the bit data of the video data to change the color of the moving image by inverting the bits. FIG. 9 is an explanatory diagram showing a part of the circuit configuration when the video image data is bit-inverted. The bit inversion circuit 615 includes EXOR (exclusive OR) circuits equal in number to the number of bits of video data, and is provided in the VGA controller 358. One input terminal of each EXOR circuit is commonly supplied with the output TT of the NAND gate 366, and the other input terminal is supplied with a signal of each bit of video data. When the output TT of the NAND gate 366 is 0, the video data PDATA passes through the bit inversion circuit 615 as it is, but when the output TT is 1, the value of each bit of the video data PDATA is inverted. As a result, the color of the video data PDATA is changed at the pixel whose output TT value is 1.
[0046]
E. FIG. Circuit configuration for address operation:
FIG. 10 is a block diagram showing the internal configuration of the FIFO memory unit 318. As shown in FIG. 10A, the FIFO memory unit 318 includes a FIFO control unit 321 and two FIFO memories 322 and 324. Also, as shown in FIG. 10B, the FIFO control unit 321 has five PLL circuits 325 to 328 and 510 and a waveform shaping unit 511. The first to third PLL circuits 325 to 327 generate signals CLKI, CLKO, and DCLK obtained by multiplying the frequency of the horizontal synchronization signal HSYNC by NH0 times, (NH0 * HX) times, and NH times. In addition, the fourth PLL circuit 328 generates a signal HINC obtained by multiplying the frequency of the vertical synchronization signal VSYNC by NV. The fifth PLL circuit 510 generates a signal HSYNC * HX obtained by multiplying the frequency of the horizontal synchronization signal HSYNC by HX, as shown in FIG. 10C, and the waveform shaping unit 511 detects the rising edge thereof to generate a second signal HSYNC * HX. The horizontal synchronization signal XHSYNC is generated. The second horizontal synchronization signal XHSYNC is a synchronization signal having a frequency HX times that of the first horizontal synchronization signal HSYNC. The setting values NH0, (NH0 * HX), NH, NV, HX in each PLL circuit are set by the CPU 200. These PLL circuits 325 to 328 are circuits for enlarging / reducing an image, and their functions will be described later.
[0047]
The two FIFO memories 322 and 324 have a function as a video data buffer for temporarily storing a predetermined amount of video data, and the FIFO control unit 321 has a function as a video data buffer control unit. ing. Further, the first PLL circuit 325 serves as an input clock generating means, the second PLL circuit 326 serves as an output clock generating means, the third PLL circuit 327 serves as a dot clock generating means, and the fourth PLL circuit 328 serves as a line increment. Each has a function as a signal generation unit. Note that the second and fourth PLL circuits 326 and 328 and the FIFO memory unit 318 cooperate to exhibit a function as a scaling unit capable of scaling a video in the vertical direction. In addition, the second and third PLL circuits 326 and 327 cooperate to exhibit a function as a scaling unit capable of scaling the image represented by the image data in the horizontal direction.
[0048]
FIG. 11 is a block diagram showing the internal configuration of the address calculation unit 312 in the moving image transfer controller. The address operation unit 312 includes an offset address storage unit 330, an addition address value storage unit 332, a vertical counter unit 334, and an adder 340. The multiplier 338 multiplies the addition address value ADAD stored in the addition address value storage section 332 by the vertical count value VCNT output from the vertical counter section 334. The adder 340 generates the address MADD of the video data by adding the offset address OFAD stored in the offset address storage unit 330 in advance and the multiplication result MUL of the multiplier 338. As will be described later, this address MADD is the head address of each scanning line.
[0049]
FIG. 12 is a memory map of the VRAM 222. One word of the VRAM 222 is 24 bits, and one word includes an R component, a G component, and a B component of video data. One pixel (dot) on the screen corresponds to one word.
[0050]
FIG. 13 is an explanatory diagram showing the correspondence between the memory space of the VRAM 222 and the screen. In this figure, the number of pixels in the horizontal range 80 of the VRAM 222 is 640 (50h words), and the number of scanning lines in the vertical range 81 is 480. In the example of FIG. 13, for simplicity, the moving image area MPA in which moving image video data is written has a width of 8 pixels in the horizontal direction starting from the start position of the second pixel in the horizontal direction and the second pixel in the horizontal direction. It is assumed that the region has a total of 16 pixels having a width of 2 lines in the vertical direction. The position and size of the moving image area MPA are specified by the operator on the screen of the color CRT 224 or the color liquid crystal display 226.
[0051]
FIG. 14 is a plan view showing a moving image area MPA specified on the screen of the color CRT 224. The memory space shown in FIG. 13 corresponds one-to-one with the display screen of the color CRT 224 shown in FIG. Hereinafter, data transfer without interlace scanning will be described first, and data transfer with interlace scanning will be described later.
[0052]
The offset address OFAD stored in the offset address storage unit 330 shown in FIG. 11 is the offset value (51h) from the start address 0000h of the VRAM 222 to the write start position address (0051h) of the moving image area MPA in FIG. .
[0053]
The start address (= 0051h) of the first scanning line of the moving image area MPA is determined according to the position of the upper left point P1 (FIG. 14) of the moving image area MPA specified by the operator on the screen. That is, when the operator specifies the moving image area MPA, the CPU 200 calculates an address (= 0051h) corresponding to the upper left point P1, and sets this address (= 0051h) in the offset address storage unit 330 as the offset address OFAD. The operator can set a moving image area MPA of an arbitrary size at an arbitrary position on the screen of the color CRT 224 or the color liquid crystal display 226, and the offset address OFAD is set accordingly.
[0054]
When interlaced scanning is not performed, the addition address ADAD stored in the addition address value storage unit 332 is equal to the number of pixels for one scanning line in the memory space of the VRAM 222, and is set to 50h in this embodiment. .
[0055]
The output MUL of the multiplier 338 and the output MADD of the adder 340 are respectively given by the following arithmetic expressions.
MUL = ADAD × VCNT (1)
MADD = OFAD + MUL (2)
[0056]
Summarizing the above equations (1) and (2), the output MADD of the adder 340 for each scanning line is given by the following arithmetic equation.
MADD = (ADAD × VCNT) + OFAD (3)
[0057]
The vertical count VCNT indicates a scanning line number in the moving image area MPA. The output MUL of the multiplier 338 indicates a difference (offset) between addresses from the writing start position P1 of the moving image area MPA to the first pixel of each scanning line. Therefore, the output MADD of the adder 340 is the address of the head pixel of each scanning line (head address of each scanning line).
[0058]
F. Address calculation for interlaced scanning:
FIG. 15 is an explanatory diagram showing a memory space of an odd-numbered line field and an even-numbered line field when performing interlaced scanning, and is a diagram corresponding to FIG. The odd line field includes eight pixel addresses 00A1h to 00A8h for one scanning line among the 16 pixel addresses in the moving image area MPA, and the even line field includes the other eight pixel addresses 0051h to 0058h. In.
[0059]
When interlacing is performed, an offset address OFAD1 = A1h for odd line fields and an offset address OFAD2 = 51h for even line fields are registered in the offset address storage unit 330 (FIG. 11). Offset address storage section 330 selectively outputs one of these two offset addresses OFAD1 and OFAD2 according to field instruction signal FIS. In the case of 2: 1 interlace, the addition address ADAD is twice (= A0h) the value (= 50h) without interlace. As described above, in the case of interlaced scanning, by adjusting the offset address OFAD and the addition address ADAD, the head address MADD of the video data of each scanning line is set in accordance with the above equation (3), as in the case where there is no interlace. Can be calculated.
[0060]
When transferring video data for interlacing, it is also possible to write video data of an odd line field and an even line field at the same address without intentionally performing interlacing. In this case, the offset address OFAD and the addition address ADAD when there is no interlace may be used in common for both fields.
[0061]
G. FIG. Image enlargement / reduction processing:
The moving image transfer controller has a function of enlarging / reducing a video. The image enlargement / reduction processing is mainly executed by the address calculation unit 312 and the FIFO memory unit 318 shown in FIG. FIG. 16 is a block diagram showing the internal configuration of the vertical counter unit 334 in the address calculation unit 312 and the relevant parts in the FIFO control unit 321. The PLL circuit 327 of the FIFO control unit 321 generates a dot clock signal DCLK obtained by multiplying the frequency of the horizontal synchronization signal HSYNC given from the video decoder 220 by NH 2. Further, the PLL circuit 328 generates a line increment signal HINC obtained by multiplying the frequency of the vertical synchronization signal VSYNC by NV. The line increment signal HINC is used when reducing the image in the vertical direction, as described later. If the frequency of the line increment signal HINC is the same as that of the second horizontal synchronization signal XHSYNC, the image is not reduced.
[0062]
The vertical counter section 334 includes a back porch storage section 402, a comparator 404, a back porch counter 406, a vertical counter 408, and a latch 410. The back porch storage unit 402 stores the number of back porches BP given from the CPU 200 via the high-speed bus 208. Here, the back porch number BP is the number of pulses of the horizontal synchronization signal HSYNC in the back porch period. The back porch counter 406 is supplied with the first horizontal synchronization signal HSYNC, and the clock input terminal of the latch 410 is supplied with the second horizontal synchronization signal XHSYNC. The clock input terminal of the vertical counter 408 is supplied with a line increment signal HINC. The vertical synchronization signal VSYNC is supplied to reset input terminals of the back porch counter 406 and the vertical counter 408. The comparator 404 compares the back porch number BP stored in the back porch storage unit 402 with the count value BPC of the back porch counter 406.
[0063]
The output CMP of the comparator 404 goes high when BP = BPC, and goes low when BP ≠ BPC. The back porch counter 406 is enabled when the output CMP of the comparator 404 is at L level, and the vertical counter 408 is enabled when CMP is at H level.
[0064]
When the vertical synchronization signal VSYNC is supplied to the vertical counter section 334, the back porch counter 406 and the vertical counter 408 are reset. At this time, since the output CMP of the comparator 404 is at the L level, the back porch counter 406 is enabled and counts the number of pulses of the horizontal synchronization signal HSYNC. On the other hand, the vertical counter 408 remains stopped. When the number of pulses of the horizontal synchronization signal HSYNC is input to the back porch counter 406 equal to the number of back porches BP, BP = BPC. As a result, the output CMP of the comparator 404 becomes H level, the back porch counter 406 stops, and the vertical counter 408 starts counting up. The count value CNT of the vertical counter 408 is held by the latch 410 at the rising edge of the second horizontal synchronization signal XHSYNC, and is output as the vertical count VCNT. This vertical count VCNT indicates the scanning line number on the screen. If no reduction is performed in the vertical direction, the frequency of the second horizontal synchronization signal XHSYNC is equal to the frequency of the line increment signal HINC, and therefore, the vertical count VCNT is equal to the number of pulses of the second horizontal synchronization signal XHSYNC.
[0065]
As described above, the vertical counter 408 and the latch 410 have a function as a unit for adding the scanning line number.
[0066]
FIG. 17 is a timing chart showing the operation of the vertical counter unit 334. When the back porch period elapses and the second horizontal synchronization signal XHSYNC goes low during the effective video period, the vertical counter 334 starts counting up. That is, in the effective video period, the value of the vertical count VCNT output from the vertical counter unit 334 increases by one each time one pulse of the second horizontal synchronization signal XHSYNC is generated.
[0067]
As described above, when the image is not reduced in the vertical direction, the vertical count VCNT is reset to 0 each time one pulse of the vertical synchronization signal VSYNC is generated, and thereafter, each time one pulse of the second horizontal synchronization signal XHSYNC is generated. , The vertical count VCNT increases by one. On the other hand, when reducing the image in the vertical direction, the vertical count VCNT increases according to the second horizontal synchronization signal XHSYNC and the line increment signal HINC, and the operation will be described later.
[0068]
FIGS. 18A and 18B are explanatory diagrams for explaining the vertical enlargement processing function by the FIFO memory unit 318 (FIG. 10). FIG. 18A shows input video data VDI, FIG. 18B shows output video data VDO, and FIG. 2 shows the operation of each FIFO memory. However, in FIGS. 18A and 18B, the video data is drawn in the form of the original analog video signal VS for convenience of illustration.
[0069]
As shown in FIG. 18C, the input terminals and the output terminals of the two FIFO memories 322 and 324 are switched alternately and complementarily by virtual toggle switches 323a and 323b. These virtual toggle switches 323a and 323b enable the input and output of the two FIFO memories 322 and 324 to be alternately switched alternately by the input enable signal RE and the output enable signal OE provided from the FIFO control unit 321. It is equivalently shown. The input clock signal CLKI and the output clock signal CLKO are commonly supplied to the two FIFO memories 322 and 324. As can be seen from FIG. 10B, the frequency fCLKI of the input clock signal CLKI is obtained by multiplying the frequency of the horizontal synchronization signal HSYNC by NH0, and is used when the video signal VS given to the video decoder 264 is an NTSC signal. Is a constant frequency of about 6 MHz. On the other hand, the frequency fCLKO of the output clock signal CLKO is a value HX times (HX is an integer) the frequency fCLKI of the input clock signal CLKI (see FIG. 10B). That is, the set value (NH0 * HX) of PLL circuit 326 that generates output clock signal CLKO is set to HX times the set value NH0 of PLL circuit 325 that generates input clock signal CLKI. In this example, it is assumed that HX = 3.
[0070]
In the first period TT11 and the third period TT13 of FIGS. 18A and 18B, the input video data VDI is written to the first FIFO memory 322, and the output video data VDO is output from the second FIFO memory 324. Is read. In the second period TT12, the input video data VDI is written to the second FIFO memory 324, and the output video data VDO is read from the first FIFO memory 322. As a result, in the first period TT11, the video data relating to the first scanning line L1 is written to the first FIFO memory 322. Further, in the second period TT12, the video data relating to the second scanning line L2 is written to the second FIFO memory 324. In the example of FIG. 18, since the frequency fCLKO of the output clock signal CLKO is set to be three times the frequency fCLKI of the input clock signal CLKI, in the second period TT12, the video data of the first scan line L1 is changed to the first frequency. The data is read from the FIFO memory 322 three times.
[0071]
FIG. 19 is an explanatory diagram showing how the video is enlarged and reduced in the vertical direction. FIG. 19A shows the input video data VDI, and FIG. 19B shows the output video data VDO. In the output video data VDO, each scanning line of the input video data VDI is repeated HX (= 3) times, respectively, whereby the video is enlarged HX (= 3) times in the vertical direction. In FIG. 19B, for example, “L1a”, “L1b”, and “L1c” indicate that the video data of the original scanning line L1 is repeatedly output three times. As described above, by setting the frequency fCLKO of the output clock signal CLKO to be an integral multiple of the frequency fCLKI of the input clock signal CLKI by using the two FIFO memories 322 and 324, the image can be vertically enlarged by an integral multiple. It is possible.
[0072]
The reduction in the vertical direction is realized by the PLL circuit 328 in the FIFO control unit 321 and the vertical counter 408 and the latch 410 in the vertical counter unit 334 shown in FIG. FIG. 20 is a timing chart showing the vertical reduction operation. The line increment signal HINC (FIG. 20A) generated by the PLL circuit 328 has a frequency fHINC which is NV times the frequency fVSYNC of the vertical synchronization signal VSYNC. The second horizontal synchronizing signal XHSYNC (FIG. 20 (c)) has a frequency fXHSYNC which is (NV0 * HX) times the frequency fVSYNC of the vertical synchronizing signal VSYNC, and the value of NV0 in the original analog video signal VS This is a constant value (NV0 = 262.5 in the case of the NTSC signal) indicating the number of scanning lines in one field (hereinafter, referred to as "the total number of image lines"). As shown in FIGS. 21A and 21B, the total number of image lines represented by the analog video signal VS is set to NV0, the number of effective image lines is set to NVL, and the image is displayed on a display device. Assuming that the number of display lines is NVM, the set value NV of the PLL circuit 328 is given by the following equation.
Figure 0003605891
However, NVM ≦ HX * NVL.
[0073]
In the above equation, for example, NV0 = 262.5, NVL = 240, and NVM = 480 are substituted, so that NV = 525.
[0074]
The vertical counter 408 (FIG. 16) counts up the count value CNT (FIG. 20B) in response to the rising edge of the line increment signal HINC, and the latch 410 detects the rising edge of the second horizontal synchronization signal XHSYNC. Accordingly, the count value CNT of the vertical counter 408 is latched and output as the vertical count VCNT (FIG. 19D).
[0075]
In the example of FIG. 19, the ratio (NV / NV0 * HX) between the frequency fHINC of the line increment signal HINC and the frequency fXHSYNC of the second horizontal synchronization signal XHSYNC is 2/3, and accordingly, the vertical count VCNT (FIG. 19 (d)), the same value is repeated once for every second time, such as 0, 1, 2, 2, 3, 4, 4, 5. Since the vertical count VCNT indicates the vertical address in the VRAM 222, the video data of the third scanning line L1c and the video data of the fourth scanning line L2a are written in the third vertical address VCNT = 2. . As a result, the video data of the scanning line L1c written first at the third vertical address VCNT = 2 is replaced with the video data of the next scanning line L2a. If this is repeated, the result is that the video data of the scanning line at a position that is a multiple of 3 is thinned out and reduced in the vertical direction.
[0076]
FIGS. 19B and 19C show a state in which the image is reduced in the vertical direction by the operation of FIG. The video data VDO enlarged by HX times by switching between the two FIFO memories 322 and 324 extends over nine scanning lines L1a to L3c. Among them, the video data of the third scanning line L1c is the next. The video data of the sixth scanning line L2c is replaced with the video data of the next scanning line L3a. As a result, the image is multiplied by NV / (NV0 * HX) in the vertical direction. Since the video data has been enlarged vertically by HX times in advance by the two FIFO memories 322 and 324, the overall vertical magnification MV is given by the following equation.
MV = NV / NV0 (4)
[0077]
The magnification MH of the horizontal enlargement / reduction of the video is represented by the frequency fDCLK of the dot clock signal DCLK (FIG. 16) when the video data is written to the VRAM 222, and the output clock signal CLKO when the video data is read from the FIFO memories 322 and 324. It is equal to the ratio fDCLK / fCLKO to the frequency fCLKO in FIG. As described in FIG. 18, the frequency fCLKO of the output clock CLKO is HX times the frequency fCLKI of the input clock signal CLKI, and the input clock signal CLKI is a constant value according to the frequency characteristics of the composite video signal VS. Therefore, the horizontal magnification MH is given by the following equation (5).
MH = fDCLK / fCLKO = fDCLK / (HX * fCLKI) (5)
[0078]
Further, as can be seen from FIG. 10B, the frequency fCLKI of the input clock signal CLKI is NH0 times the frequency fHSYNC of the horizontal synchronization signal HSYNC, and fHSYNC and NH0 are constants. Further, the dot clock signal DCLK has a frequency that is NH times the frequency fHSYNC of the horizontal synchronization signal HSYNC. Therefore, the above equation (5) can be rewritten as follows.
Figure 0003605891
[0079]
In the expression (4) indicating the vertical magnification MV and the expression (6) indicating the horizontal magnification MH, three values that can be set from the CPU 200 are HX, NV, and NH 3, all of which are set in the FIFO control unit 321. Value. These three values HX, NV, NH are determined, for example, by the following equations.
[0080]
HX = RND (MV) (7a)
NV = NV0 * MV (7b)
NH = NH0 * MH * HX (7c)
Here, the operator RND indicates an integer obtained by rounding up the number in parentheses below the decimal point.
[0081]
It should be noted that the formulas (7b) and (7c) hold even when any value is used as the integer HX, so that the value of the integer HX can be determined by a formula other than the formula (7a).
[0082]
FIG. 21A shows an image OR represented by the original composite image signal VS, and FIG. 21B shows a VRAM space for storing an enlarged / reduced image MR. Here, the maximum number of pixels in the horizontal direction is 780, the number of effective pixels is 640, the maximum number of lines in the vertical direction is 525, and the number of effective lines is 480. The image MR in the VRAM space is displayed on the color CRT 224 or the color liquid crystal display 226 as it is. Therefore, the magnification MV in the vertical direction and the magnification MH in the horizontal direction are equal to the ratio of the size of the video display window set on the display device to the size of the original video OR. The CPU 200 calculates the magnifications MV, MH from the size of the video display window set on the display device, and further calculates three values HX, NV, NH according to the above (7a) to (7c), and It is set in the control unit 321.
[0083]
As described above, in the above embodiment, when transferring the video data to the VRAM 222, the video can be enlarged or reduced at an arbitrary magnification. In addition, since the display position of the video can be arbitrarily set by the address calculation unit 312, it is possible to display a moving image at an arbitrary magnification at an arbitrary position on the display device.
[0084]
E. FIG. Other variations:
The present invention is not limited to the embodiments, and various modifications as described below are possible.
[0085]
(1) As a circuit for calculating the start address MADD given by the above equation (3), various configurations other than the configuration shown in FIG. 11 can be considered. For example, the same result can be obtained by replacing the adder in the address operation unit 312 with a subtractor or changing the order of addition.
[0086]
Further, the multiplier 338 shown in FIG. 11 is replaced with an adder and a counter for counting up, and the addition address ADAD stored in the addition address value storage unit 332 is added by the number of times of the vertical count VCNT of the vertical counter unit 334. You may do so.
[0087]
(2) As shown in FIG. 22, the PLL circuit 328 in FIG. 16 can be replaced by a 1 / N frequency divider 329. The 1 / N divider 329 is reset by the vertical synchronization signal VSYNC, and after the reset, divides the dot clock signal DCLK by 1 / N to generate a line increment signal HINC. The use of the 1 / N frequency divider 329 has the advantage that the jitter of the line increment signal HINC can be reduced as compared with the case where the PLL circuit is used.
[0088]
(3) FIG. 23 is an explanatory diagram showing the configuration and operation of a circuit for performing vertical enlargement and interpolation between scanning lines using three FIFO memories, and is a diagram corresponding to FIG. As shown in FIG. 23C, this circuit includes three FIFO memories 421, 422, 423, three equivalent switches 431, 432, 433, two multipliers 441, 442, and an adder 450. And As shown in FIGS. 23A and 23B, in each of the periods TT21, TT22, and TT23, one scan line of video data is written into one FIFO memory, and video data is read from the other two FIFO memories. It is. The FIFO memory to which the video data is written and the FIFO memory from which the video data is read are selected in a predetermined order. FIG. 23C shows the connection state of the switches in the first half of the third period TT23. At this time, the video data of the first scan line L1 read from the first FIFO memory 421 is multiplied by k1 in the first multiplier 441, and the second scan read from the second FIFO memory 422 is performed. The video data of the line L2 is multiplied by k2 in the second multiplier 442. Since the outputs of the two multipliers 441 and 442 are added by the adder 450, the output video data VDO output from the adder 450 in the first half of the period TT23 is (L1 * k1 + L2 * k2) (FIG. b)). Here, if the coefficients k1 and k2 are both set to 0.5, the output video data VDO in the first half of the period TT23 is data obtained by simply averaging the video data of the two scanning lines L1 and L2. If k1 and k2 are set to appropriate values other than 0, a weighted average can be obtained. In the latter half of the period TT23, the video data of the second scanning line L2 is output as it is as the output video data VDO.
[0089]
(4) By providing a FIFO memory unit that functions in the same manner as the FIFO memory unit 318 for expanding the vertical direction between the video decoder 220 and the color adjustment unit 320, the vertical expansion can be performed similarly to the configuration in FIG. And interpolation can be performed. In this case, the FIFO memory unit 318 shown in FIG. 10A is used as a circuit for adjusting the data transfer timing without expanding the video data VD in the vertical direction.
[0090]
Note that, in the present invention, the term “magnify an image in the vertical direction” is not limited to a case where the image is simply enlarged as shown in FIG. ing.
[0091]
(6) It is also possible to configure a circuit having a function equivalent to a FIFO memory unit by using another type of video data buffer such as a RAM instead of a plurality of FIFO memories. Generally, a plurality of video data buffers and a buffer control circuit are provided, and the functions of the above-mentioned FIFO memory unit can be realized by switching the plurality of video data buffers in a predetermined order by the buffer control circuit.
[0092]
(7) The function equivalent to the PLL circuit 325 in FIG. 10B is that a signal CLKO obtained by the PLL circuit 326 is used as an input to divide and output by (1 / NH0) and reset by the horizontal synchronization signal HSYNC. It can be realized even if used. As described above, although a plurality of PLL circuits are used in FIG. 10B, an equivalent circuit can be realized by a combination of a frequency divider circuit and the like.
[0093]
(8) The color adjustment unit 320 in FIG. 4 may be configured as a circuit that receives the digital video signal DS as a YUV signal, performs hue conversion, and then outputs the component video data VD as an RGB signal.
[0094]
【The invention's effect】
As described above, according to the present invention, a video signal in a region of an arbitrary shape in a moving image can be transferred to a video memory at high speed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a computer system as a first embodiment of the present invention.
FIG. 2 is an explanatory diagram showing contents of a cyclic priority register in a bus arbiter 240;
FIG. 3 is an explanatory diagram showing a configuration of a VRAM 222 and a mask data RAM 223.
FIG. 4 is a block diagram showing an internal configuration of a moving image transfer controller.
FIG. 5 is a block diagram showing an internal configuration of a video controller 212.
FIG. 6 is an explanatory diagram showing a method of transferring video data in a display area of an arbitrary shape to a VRAM 222 using mask data.
FIG. 7 is a timing chart showing an operation of data transfer using mask data.
FIG. 8 is a flowchart illustrating a procedure of a mask data update process;
FIG. 9 is an explanatory diagram showing a part of a circuit configuration when video data is bit-inverted.
FIG. 10 is a block diagram showing the internal configuration of a FIFO memory unit 318.
FIG. 11 is a block diagram showing an internal configuration of an address operation unit 312.
FIG. 12 is an address map of a VRAM 222.
FIG. 13 is an explanatory diagram showing a correspondence between a VRAM 222 and a screen.
FIG. 14 is a plan view showing a moving image area MPA in the screen of the color monitor.
FIG. 15 is an explanatory diagram showing a memory space of an odd line field and an even line field when performing interlaced scanning.
FIG. 16 is a block diagram showing an internal configuration of a vertical counter unit 334 and a FIFO control unit 321.
FIG. 17 is a timing chart showing the operation of the vertical counter unit 334.
FIG. 18 is an explanatory diagram showing an operation of vertically enlarging an image.
FIG. 19 is an explanatory diagram showing a state of enlargement and reduction of a video in a vertical direction.
FIG. 20 is a timing chart showing a vertical reduction operation of an image.
FIG. 21 is an explanatory diagram showing the state of enlargement / reduction of an image in the vertical and horizontal directions.
FIG. 22 is a block diagram showing a circuit configuration when a second PLL circuit 328 is replaced by a 1 / N frequency divider.
FIG. 23 is an explanatory diagram showing a configuration and operation for performing vertical enlargement and interpolation between scanning lines using three FIFO memories.
FIG. 24 is a block diagram of a computer system using a conventional DMA controller.
FIG. 25 is an explanatory diagram showing a case where still images SIa and SIb and a moving image MI are simultaneously displayed by a conventional technique.
[Explanation of symbols]
51R, 51G, 51B ... Video memory
52 Data bus
53 ... Address bus
54 ... Control bus
55… DMA controller
56R, 56G, 56B ... VRAM
57 ... Control unit
59 ... CPU
200 ... CPU
202: Main memory
204: Host bus
206… Bridge
208 ... Highway bus
212 ... Video controller
214 ... expansion bus bridge
220 ... Video decoder
222 ... VRAM
223: Mask data RAM
224 ... Color CRT
226 ... Color LCD display
230 ... Low speed bus
232 ... I / O controller
240 ... Bus arbiter
250, 260, 270 ... Video transfer controller
252: Compression / expansion circuit
254 ... Modem
262 ... AD converter
264 ... Video decoder
266 ... TV tuner
272 CD-ROM device
300 ... Interface
302 ... Bus control signal generator
304 switching circuit
306 ... Switch control unit
312 ... Address operation unit
314: Data output unit
318 ... FIFO memory unit
320: color adjustment unit
321 ... FIFO control unit
322, 324: FIFO memory
323a, 323b ... Toggle switch
325-328 ... PLL circuit
330: Offset address storage unit
332 ... added address value storage unit
334 ... Vertical counter section
338 ... Multiplier
340 ... Adder
350 ... Decoder
352 ... Address counter
354: Address latch
356 data conversion circuit
358 ... VGA controller
362, 364: AND gate
366: NAND gate
368 ... OR gate
402: Back porch storage unit
404 ... Comparator
406 ... Back porch counter
408: Vertical counter
410 ... Latch
421, 422, 423 ... FIFO memory
431, 432, 433 ... switch
441, 442... Multiplier
450 ... Adder
510 ... PLL circuit
511: corrugated forming part
615 ... Bit inversion circuit

Claims (1)

動画を表示可能なコンピュータシステムであって、
ソフトウェアプログラムに従って各種の演算と制御を実行するマイクロプロセッサと、
前記マイクロプロセッサに接続された第1のバスと、
アドレスとデータが共通の信号線によって時分割で転送される第2のバスと、
前記第1と第2のバスを接続するブリッジと、
映像を表示する表示デバイスと、
前記表示デバイスに表示される映像の映像信号を記憶する映像メモリと、
前記映像メモリと同一の画像空間を有するとともに、前記映像メモリと同一のアドレス空間に割り当てられており、前記映像メモリ内において複数種類の動画映像信号が書き込まれるべき複数の動画領域を示すマスクデータを記憶するマスクデータメモリと、
前記第2のバスに接続され、前記映像メモリへの映像信号の書込みと読み出し、および、前記マスクデータメモリへのマスクデータの書込みと読み出しを制御するビデオコントローラと、
動画映像信号で表わされる動画の各走査線毎に、各走査線の先頭アドレスを生成して前記第2のバス上に出力するとともに、前記先頭アドレスの後に前記走査線上の各画素の映像信号を前記第2のバス上に連続して出力する機能をそれぞれ有する複数の映像転送手段と、
前記複数の映像転送手段による前記第2のバスの使用権を調停するバス調停手段と、を備え、
前記ビデオコントローラは、
前記第2のバスを介して与えられた前記先頭アドレスから、各画素に対する画素アドレスを生成するアドレス生成手段と、
前記映像メモリと前記マスクデータメモリに同一のアドレスを供給するとともに、前記マスクデータメモリから読出された前記マスクデータに応じて、各画素の映像信号を前記映像メモリに書き込むか否かを示す書込信号を生成する書込信号生成手段と、
前記書込信号と前記アドレス生成手段によって生成された画素アドレスとに従って、各画素の映像信号を前記映像メモリに書き込む書込手段と、
を備えるコンピュータシステム。
A computer system capable of displaying a video,
A microprocessor that performs various operations and controls according to a software program;
A first bus connected to the microprocessor;
A second bus in which addresses and data are transferred in a time-division manner by a common signal line;
A bridge connecting the first and second buses;
A display device for displaying video,
A video memory for storing a video signal of a video displayed on the display device;
It has the same image space as the video memory, is allocated to the same address space as the video memory, and stores mask data indicating a plurality of moving image areas in which a plurality of types of moving image video signals are to be written in the video memory. A mask data memory for storing;
A video controller connected to the second bus and controlling writing and reading of a video signal to and from the video memory, and writing and reading of mask data to and from the mask data memory;
For each scanning line of a moving image represented by a moving image video signal, a head address of each scanning line is generated and output on the second bus, and a video signal of each pixel on the scanning line is generated after the head address. A plurality of video transfer means each having a function of continuously outputting on the second bus;
Bus arbitration means for arbitrating the right to use the second bus by the plurality of video transfer means,
The video controller comprises:
Address generation means for generating a pixel address for each pixel from the start address given via the second bus;
The same address is supplied to the video memory and the mask data memory, and a write indicating whether a video signal of each pixel is to be written to the video memory according to the mask data read from the mask data memory. Write signal generating means for generating a signal;
Writing means for writing a video signal of each pixel to the video memory according to the write signal and the pixel address generated by the address generation means;
A computer system comprising:
JP18865095A 1995-06-29 1995-06-29 Computer system Expired - Fee Related JP3605891B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18865095A JP3605891B2 (en) 1995-06-29 1995-06-29 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18865095A JP3605891B2 (en) 1995-06-29 1995-06-29 Computer system

Publications (2)

Publication Number Publication Date
JPH0916160A JPH0916160A (en) 1997-01-17
JP3605891B2 true JP3605891B2 (en) 2004-12-22

Family

ID=16227442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18865095A Expired - Fee Related JP3605891B2 (en) 1995-06-29 1995-06-29 Computer system

Country Status (1)

Country Link
JP (1) JP3605891B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1138420C (en) * 1997-12-01 2004-02-11 松下电器产业株式会社 Image processor, image data processor and variable length encoder/decoder
WO2002037467A1 (en) * 2000-11-06 2002-05-10 Mitsubishi Denki Kabushiki Kaisha Display controller and display method
JP4636755B2 (en) * 2001-09-21 2011-02-23 キヤノン株式会社 Imaging apparatus, image processing method, recording medium, and program
CN100437743C (en) * 2003-09-09 2008-11-26 戴洛格半导体公司 Display color adjust
JP2005142699A (en) 2003-11-05 2005-06-02 Mega Chips Corp Image companding apparatus
US7536487B1 (en) * 2005-03-11 2009-05-19 Ambarella, Inc. Low power memory hierarchy for high performance video processor
JP2006330564A (en) * 2005-05-30 2006-12-07 Digital Electronics Corp Image display controller and image display device
CN112732603A (en) * 2019-10-14 2021-04-30 广州飒特红外股份有限公司 Multi-channel VDMA control method and application thereof

Also Published As

Publication number Publication date
JPH0916160A (en) 1997-01-17

Similar Documents

Publication Publication Date Title
US5500654A (en) VGA hardware window control system
US5577203A (en) Video processing methods
JP3451722B2 (en) Video data transfer device
JP3419046B2 (en) Video display device
EP1519358A2 (en) Frame rate conversion device, overtaking prediction method for use in the same, display control device and video receiving display device
JPH08202318A (en) Display control method and its display system for display device having storability
US5585864A (en) Apparatus for effecting high speed transfer of video data into a video memory using direct memory access
JPH0934426A (en) Image display method
JPS63282790A (en) Display controller
JPH10177374A (en) On-screen display system with real time window address calculation
JPH0432593B2 (en)
JP3605891B2 (en) Computer system
JPH07104722A (en) Image display system
EP0799467A1 (en) Memory bandwidth optimization
JPH06332843A (en) Moving image video data transfer device and computer system
US20070195111A1 (en) Device and method for overlapping multi-channel digital display signals
US7893943B1 (en) Systems and methods for converting a pixel rate of an incoming digital image frame
JP3484763B2 (en) Video data transfer device and computer system
KR19990003407A (en) Graphics Subsystem for Computer Systems
JPH06214538A (en) System and method for display of integrated video and graphic
JP3605889B2 (en) Computer system
JP3894173B2 (en) Computer system for video data transfer
JPH07320037A (en) Video data transfer device
JP3593715B2 (en) Video display device
Herveille VGA/LCD Core v2. 0 Specifications

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040520

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040927

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees