JP3605891B2 - Computer system - Google Patents
Computer system Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims description 97
- 238000012546 transfer Methods 0.000 claims description 80
- 230000006870 function Effects 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 38
- IYZMXHQDXZKNCY-UHFFFAOYSA-N 1-n,1-n-diphenyl-4-n,4-n-bis[4-(n-phenylanilino)phenyl]benzene-1,4-diamine Chemical compound C1=CC=CC=C1N(C=1C=CC(=CC=1)N(C=1C=CC(=CC=1)N(C=1C=CC=CC=1)C=1C=CC=CC=1)C=1C=CC(=CC=1)N(C=1C=CC=CC=1)C=1C=CC=CC=1)C1=CC=CC=C1 IYZMXHQDXZKNCY-UHFFFAOYSA-N 0.000 description 16
- 239000000872 buffer Substances 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 10
- 101000885321 Homo sapiens Serine/threonine-protein kinase DCLK1 Proteins 0.000 description 9
- 102100039758 Serine/threonine-protein kinase DCLK1 Human genes 0.000 description 9
- 230000009467 reduction Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 239000004973 liquid crystal related substance Substances 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 239000002131 composite material Substances 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 101100064317 Arabidopsis thaliana DTX41 gene Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 101100345335 Arabidopsis thaliana GNT2 gene Proteins 0.000 description 2
- 101001130128 Arabidopsis thaliana Leucoanthocyanidin dioxygenase Proteins 0.000 description 2
- 101000747588 Homo sapiens UDP-glucuronosyltransferase 1-6 Proteins 0.000 description 2
- 101000841498 Homo sapiens UDP-glucuronosyltransferase 1A1 Proteins 0.000 description 2
- 101150093077 Mgat2 gene Proteins 0.000 description 2
- 102100029151 UDP-glucuronosyltransferase 1A10 Human genes 0.000 description 2
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 2
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 101100345342 Rattus norvegicus Mgat3 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Controls And Circuits For Display Device (AREA)
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 は次式で与えられる。
ただし、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)式は、次のように書き換えられる。
【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
[0004]
At the time of DMA transfer, first, the
[0005]
As described above, the
[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
[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
[0014]
A
[0015]
The expansion bus bridge 214 is a bridge for connecting the low-
[0016]
The high-speed bus 208 is further connected with a
[0017]
An A / D converter 262 is connected to the second moving
[0018]
Each of the three moving
[0019]
FIG. 2 is an explanatory diagram showing the contents of the cyclic priority register in the
[0020]
FIG. 3 is an explanatory diagram showing the configuration of the
[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
[0022]
The digital video signal DS provided to the
[0023]
The video data output from the
[0024]
FIG. 5 is a block diagram showing the internal configuration of the video controller 212 (FIG. 1). The
[0025]
The
[0026]
FIG. 6 is an explanatory diagram showing a method of transferring video data in an area of an arbitrary shape to the
[0027]
As shown in FIG. 6, the
[0028]
OR
[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
[0031]
FIG. 7 is a timing chart showing the operation of data transfer on the scanning lines X1-X2 of the
[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
[0033]
Time points T1 and T2 shown in the lower part of FIG. 7M correspond to pixel positions T1 and T2 shown in the
[0034]
The relationship between the operations of the moving image transfer controller and the
[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
[0036]
The
[0037]
As shown in FIGS. 7K to 7M, the
[0038]
As described above, in this computer system, moving image video data can be transferred from one moving image transfer controller to one
[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
[0040]
In step S2, the
[0041]
When the state of the moving image window is changed, in step S3, the chip enable signal CE1 # (FIG. 5) of the
[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
[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
[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
[0046]
E. FIG. Circuit configuration for address operation:
FIG. 10 is a block diagram showing the internal configuration of the
[0047]
The two
[0048]
FIG. 11 is a block diagram showing the internal configuration of the
[0049]
FIG. 12 is a memory map of the
[0050]
FIG. 13 is an explanatory diagram showing the correspondence between the memory space of the
[0051]
FIG. 14 is a plan view showing a moving image area MPA specified on the screen of the
[0052]
The offset address OFAD stored in the offset
[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
[0054]
When interlaced scanning is not performed, the addition address ADAD stored in the addition address
[0055]
The output MUL of the
MUL = ADAD × VCNT (1)
MADD = OFAD + MUL (2)
[0056]
Summarizing the above equations (1) and (2), the output MADD of the
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
[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
[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
[0062]
The
[0063]
The output CMP of the
[0064]
When the vertical synchronization signal VSYNC is supplied to the
[0065]
As described above, the
[0066]
FIG. 17 is a timing chart showing the operation of the
[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
[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
[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
[0072]
The reduction in the vertical direction is realized by the
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
[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
[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
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
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.
[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
[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
[0083]
As described above, in the above embodiment, when transferring the video data to the
[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
[0086]
Further, the
[0087]
(2) As shown in FIG. 22, the
[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
[0089]
(4) By providing a FIFO memory unit that functions in the same manner as the
[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
[0093]
(8) The
[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
FIG. 3 is an explanatory diagram showing a configuration of a
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
FIG. 6 is an explanatory diagram showing a method of transferring video data in a display area of an arbitrary shape to a
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
FIG. 11 is a block diagram showing an internal configuration of an
FIG. 12 is an address map of a
FIG. 13 is an explanatory diagram showing a correspondence between a
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
FIG. 17 is a timing chart showing the operation of the
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
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:
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999029112A1 (en) * | 1997-12-01 | 1999-06-10 | Matsushita Electric Industrial Co., Ltd. | 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 |
CN112732603B (en) * | 2019-10-14 | 2024-08-27 | 广州飒特红外股份有限公司 | Multichannel VDMA control method and application thereof |
-
1995
- 1995-06-29 JP JP18865095A patent/JP3605891B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0916160A (en) | 1997-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5821918A (en) | Video processing apparatus, systems and methods | |
US5500654A (en) | VGA hardware window control system | |
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) | Video display method | |
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 | |
KR100245275B1 (en) | Graphics Subsystem for Computer Systems | |
JP3484763B2 (en) | Video data transfer device and computer system | |
JPH06214538A (en) | System and method for display of integrated video and graphic | |
JP3605889B2 (en) | Computer system | |
JPH0816133A (en) | Device and method for detecting changed line | |
US7589736B1 (en) | System and method for converting a pixel rate of an incoming digital image frame | |
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 | |
JP3666063B2 (en) | Information processing device | |
JP2658322B2 (en) | Display control device |
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 |