トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 描画命令伝送システム及び方法
【発明者】 【氏名】藤本 克文

【要約】 【課題】通信路を通るデータ量を低減して描画性能の低下を生じさせないようにした描画命令伝送システム及び方法を提供すること。

【解決手段】第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送方法において、前記第1情報機器から前記第2情報機器に伝送すべき複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令をバッファリングして当該描画命令と別の描画命令に変換し、該変換された変換後の描画命令を前記通信路に送信し、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行する。
【特許請求の範囲】
【請求項1】 第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送システムにおいて、前記第1情報機器は、前記第1情報機器における複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令を当該描画命令とは別の描画命令に変換する変換手段と、この変換手段により変換された変換後の描画命令を前記通信路に送信する手段とを備え、前記第2情報機器は、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行する手段を備えたことを特徴とする描画命令伝送システム。
【請求項2】 前記情報機器は、前記複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令をバッファリングする手段を具備することを特徴とする請求項1記載の描画命令伝送システム。
【請求項3】 第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送方法において、前記第1情報機器から前記第2情報機器に伝送すべき複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令を当該描画命令と別の描画命令に変換し、該変換された変換後の描画命令を前記通信路に送信し、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行することを特徴とする描画命令伝送方法。
【請求項4】 第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送システムにおいて、前記第1情報機器は、前記第1情報機器における複数の描画命令のうち同一種類の複数の描画命令を当該描画命令とは別の描画命令に変換する変換手段と、この変換手段により変換された変換後の描画命令を前記通信路に送信する手段とを備え、前記第2情報機器は、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行する手段を備えたことを特徴とする描画命令伝送システム。
【請求項5】 前記情報機器は、前記複数の描画命令のうち同一種類の複数の描画命令をバッファリングする手段を具備することを特徴とする請求項4記載の描画命令伝送システム。
【請求項6】 第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送方法において、前記第1情報機器から前記第2情報機器に伝送すべき複数の描画命令のうち同一種類の複数の描画命令を当該描画命令と別の描画命令に変換し、該変換された変換後の描画命令を前記通信路に送信し、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行することを特徴とする描画命令伝送方法。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送システム及び方法に関する。
【0002】
【従来の技術】従来、通信路を介して接続されたコンピュータ等の情報機器間で描画命令を送受信する場合には、送信側の情報機器において描画命令を一時的にバッファへ保持して、ある時点でまとめて送信することにより、効率的に描画命令を送信するようにしている。
【0003】
【発明が解決しようとする課題】しかし、このように通信路を介して描画命令を送受信する場合には、通信路の帯域によって描画性能が制限されるばかりか、通信路の帯域や描画プログラムによっては、必要な描画性能を得ることが困難なことがある。
【0004】一般に、アプリケーションプログラムから画面への描画を行う場合に使用される描画命令は「点を描く」、「直線を描く」といった基本的な命令である。
【0005】一方、アプリケーションプログラムから最終的に画面に表示する図形には規則性が多く、繰り返して命令を使用してパラメータのみを変更しながら同じ種類の描画命令を連続して呼び出すことがある。
【0006】例えば、点線を描く場合には直線を描く命令を繰り返し呼び出すことになる。このような描画命令は一方の情報機器内で処理される場合には問題にならないが、通信路を介して他方の情報機器へ送信される場合には、通信路を通るデータ量を増加させ、描画性能を低下させる原因となる。
【0007】本発明の目的は、通信路を通るデータ量を低減して描画性能の低下を生じさせないようにした描画命令伝送システム及び方法を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するために請求項1に係る発明は、第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送システムにおいて、前記第1情報機器は、前記第1情報機器における複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令を当該描画命令とは別の描画命令に変換する変換手段と、この変換手段により変換された変換後の描画命令を前記通信路に送信する手段とを備え、前記第2情報機器は、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行する手段を備えたことを特徴とする。
【0009】また請求項2に係る発明は、請求項1における前記情報機器が、前記複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令をバッファリングする手段を具備することを特徴とする。
【0010】請求項3に係る発明は、第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送方法において、前記第1情報機器から前記第2情報機器に伝送すべき複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令を当該描画命令と別の描画命令に変換し、該変換された変換後の描画命令を前記通信路に送信し、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行することを特徴とする。
【0011】請求項4に係る発明は、第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送システムにおいて、前記第1情報機器は、前記第1情報機器における複数の描画命令のうち同一種類の複数の描画命令を当該描画命令とは別の描画命令に変換する変換手段と、この変換手段により変換された変換後の描画命令を前記通信路に送信する手段とを備え、前記第2情報機器は、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行する手段を備えたことを特徴とする。
【0012】また請求項5に係る発明は、請求項4における前記情報機器が、前記複数の描画命令のうち同一種類の複数の描画命令をバッファリングする手段を具備することを特徴とする。
【0013】請求項6に係る発明は、第1情報機器から通信路を介して通信機能と表示機能とを有する第2情報機器に描画命令を伝送する描画命令伝送方法において、前記第1情報機器から前記第2情報機器に伝送すべき複数の描画命令のうち同一種類の複数の描画命令を当該描画命令と別の描画命令に変換し、該変換された変換後の描画命令を前記通信路に送信し、前記通信路を介して送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行することを特徴とする。
【0014】本発明によれば、第1情報機器から通信路を介して第2情報機器に描画命令を伝送する場合に、同一図形を等間隔に描画するような複数の描画命令又は同一種類の複数の描画命令を、別の描画命令に変換することにより、アプリケーションを変更することなく、通信路を通るデータ量を低減し、描画性能を向上させることができる。
【0015】
【発明の実施の形態】(第1実施形態)以下、本発明に係る描画命令伝送システム及び方法の第1実施形態を図面を参照して説明する。第1実施形態は、送信に際しては、伝送すべき複数の描画命令のうち同一図形を等間隔に描画するような複数の描画命令を当該描画命令と別の描画命令に変換し、該変換された変換後の描画命令を送信し、受信に際しては、送信された変換後の描画命令を解釈して変換前の複数の描画命令に相当する描画命令を実行するものであり、以下のようなシステム構成となっている。
【0016】図1に示すように、第1計算機を構成するアプリケーションプロセス10及び変換装置11と、第2計算機を構成する受信・描画プロセス30及び表示装置31とは通信路20で接続されている。このシステム構成の下で、第1計算機からの送信プロセスは描画命令を通信路20を介して第2計算機に向けて送信し、第2計算機の受信・描画プロセス30は通信路20を介して描画命令を受信し、受信した描画命令に基づいて表示装置31にて描画処理を行うようになっている。
【0017】変換装置11は、描画命令を一時的に保持するためのバッファを備えており、このバッファに一時的に保持された描画命令に対して以下に説明する方法により変換を行う。
【0018】ここでは、2次元座標上の座標(x,y)へ点を描画する命令drawPixel(x,y)に対する変換方法を例示して説明する。
【0019】まず、送信プロセスはバッファ内の命令列を読み、連続した描画命令の中で隣り合う描画命令同士の相対的な位置関係が等しい部分を検索する。
【0020】次のような図形の描画命令列が与えられたとする。
【0021】drawPixel(2,2) drawPixel(3,4)drawPixel(4,6) drawPixel(5,8) drawPixel(3,1) drawPixel(4,3) drawPixel(5,5) drawPixel(6,7)これを変換すると、次のようになる。
【0022】for(1,-1,2)for(1,2,4)drawPixel(2,2)すなわち、変換前の命令列は、最初の4命令、および、最後の4命令が前の描画命令をx軸方向へ1、y軸方向へ2だけ移動したものとなっているので、変換後の命令列は、2つの命令for(1,2,4)drawPixel(2,2)及びfor(1,2,4)drawPixel(3,1)に変換する。
【0023】ここでfor(1,2,4)は繰り返し回数が4、繰り返し毎のx軸座標の増分が1、繰り返し毎のy軸座標の増分が2であることを表す。
【0024】drawPixel(x,y)は描画命令の種類及び部分は繰り返しの最初の描画位置(x,y)を表す。
【0025】さらに、2つの描画命令for(1,2,4)drawPixel(2,2)とfor(1,2,4)drawPixel(3,1)は繰り返し部分が等しく(for(1,2,4)の部分が等しく)、x軸方向へ1、y軸方向へ−1だけ移動したものとなっているため、さらにfor(1,−1,2)for(1,2,4)drawPixel(2,2)という1つの命令に変換する。
【0026】この変換後の命令を通信路20を介して第2計算機の受信・描画プロセス30へ送信することにより、通信路20を通るデータ量が減り、通信コストが下がる。さらに、通信路を通るデータ量が減ることにより、単位時間内に処理できる描画命令の数が増加し、描画性能が向上する。
【0027】受信・描画プロセス30での処理は単純であり、for(1,−1,2)for(1,2,4)drawPixel(2,2)の処理手順を疑似プログラムで書くと、
のようになる。これにより、描画命令の変換を行わない場合と全く同じ結果が得られる。
【0028】ここでは点を描画する命令の例を記したが、線、円、多角形等の点以外の描画命令の場合も同様である。また、便宜上、描画命令をfor,drawPixelのような文字列で表わしているが、命令コード(数値)でも同様である。さらに、2次元座標空間内での描画命令の変換の場合を説明したが、3次元座標空間内での描画命令の変換も同様である。また、3次元座標空間の場合には、同様の方法で、for(x1,y1,z1,n1)for(x2,y2,z2,n2)…for(x3,y3,z3,ns)drawPixel(x0,y0,z0)のように変換を行うことができる。
【0029】ここで、命令列の変換アルゴリズムの詳細について以下にて説明する。
【0030】アプリケーションプロセス10から変換装置11に送られる命令列のバッファリング処理は図3のフローで行われる。すなわち、ステップS1にて所定時間内に命令列があると、ステップS2に移行する。命令列が無いと、ステップS4に移行する。
【0031】ステップS2では、命令列が変換可能なもの、すなわち、後述するように、同一図形を等間隔に描画するような複数の描画命令(又は同一種類の複数の描画命令)であるかを判定する。変換可能な命令列であると判定されると、ステップS3で変換処理される。また、変換可能な命令列が無い場合は、ステップS4で変換不可能な命令列の有り無しが判定され、ありと判定されると、ステップS5でその旨が送信される。
【0032】バッファリングされた命令列の変換可能条件は、次の通りである。すなわち、以下の条件を満たす場合、隣接する命令OPaおよびOPbは変換可能である。
【0033】「基底命令の種類が等しい。」かつ「OPaに含まれるforの数daとOPaに含まれるforの数dbについてda=dbまたはda-1=dbが成り立つ。」(但し、基底命令はforを0個含むとみなす。)かつ「forのパラメータが全て等しい。」かつ「da−1=dbの場合、OPbがOPaの延長線上にある。」ここで、上述した用語は、次のように定義される。
【0034】「基底命令」は、次のように定義される。
【0035】「基底命令」とは、本実施形態による変換を行う前の基本となる命令のことである。また、変換後の命令を「拡張命令」と呼ぶ。
【0036】変換後の形式がfor(xa_1,ya_1,na_1)for(xa_2,ya_2,na_2)…for(xa_s,ya_s,na_da)type(xa_0,ya_0)の場合、type(xa_0,ya_0)の部分が基底命令である。
【0037】また、typeの部分を基底命令の種類と呼ぶ。
【0038】基底命令の種類とは基底命令から位置を表す情報を除いた部分である。
【0039】また、(xa_0,ya_0)の部分は基底命令の位置を表す座標である。
【0040】例えば、座標(x,y)に半径rの円を描く基底命令drawCircle(x,y,r)の場合「基底命令の種類」は「半径rの円を描く命令」とみなし、これがtypeの部分に相当する。
【0041】基底命令の位置は(x,y)とみなし、これが(xa_0,ya_0)の部分に相当する。
【0042】例えば、基底命令drawCircle(0,0,1)と基底命令drawCircle(2,3,1)の種類は等しい(基底命令の種類はどちらも「半径1の円を描く命令」である。)。
【0043】例えば、座標(x1,y1)と座標(x2,y2)を結ぶ直線を描く基底命令drawLine (x1,y1,x2,y2)の場合基底命令の種類は「始点と、始点からx軸方向へ(x2-x1)、y軸方向へ(y2-y1)だけ進んだ座標を結ぶ直線を描く命令」とみなし、これがtypeの部分に相当する。
【0044】基底命令の位置は(x1,y1)とみなし、これが(xa_0,ya_0)の部分に相当する。
【0045】例えば、基底命令drawLine (0,0,1,1)と基底命令drawLine(5,4,6,5)の種類は等しい。
【0046】(「基底命令の種類)はどちらも「始点からx軸方向へ1、y軸方向へ1だけ進んだ座標を結ぶ直線を描く命令」。)
次に、「OPaとOPbのforのパラメータが全て等しい」について定義説明する。
【0047】「OPaとOPbのforのパラメータが全て等しい」とは、da>=dbの場合、1<=j<=dbかつi=j+da−db。
【0048】da<dbの場合、1<=i<=daかつj=i+db−da。
【0049】という条件を満たす全ての整数の組(i,j)についてxa_i=xb_jかつya_i=yb_jかつna_i=nb_jが成り立つことである。
【0050】ただし、OPa=for(xa_1,ya_1,na_1)for(xa_2,ya_2,na_2)…for(xa_s,ya_s,na_da)type(xa_0,ya_0)OPb=for(xb_1,yb_1,nb_1)for(xb_2,yb_2,nb_2)…for(xb_t,yb_t,nb_db)type(xb_0,yb_0)da>=0(da=0の場合、OPaが基底命令であることを表す。)
db>=0(db=0の場合、OPbが基底命令であることを表す。)
であるとする。
【0051】次に、「OPbがOPaの延長線上にある」について定義説明する。
【0052】「OPbがOPaの延長線上にある」とは、「forのパラメータが全て等しい。」かつ、「da-1=db」
かつ「OPaの基底命令によって描かれる図形に対するOPbの基底命令によって描かれる図形の相対位置を表す座標(xb_0-xa_0,yb_0-ya_0)が、(xa_1xna_1,ya_1xna_1)と等しい。」という条件が成り立つことである。
【0053】ただし、OPa=for(xa_1,ya_1,na_1)for(xa_2,ya_2,na_2)…for(xa_s,ya_s,na_da)type(xa_0,ya_0)OPb=for(xb_1,yb_1,nb_1)for(xb_2,yb_2,nb_2)…for(xb_t,yb_t,nb_db)type(xb_0,yb_0)であるとする。
【0054】ここで、換可能性条件を説明する。
【0055】(1) バッファ内に命令が1つだけ存在する場合バッファ内の命令が以下の条件を満たす場合、その命令には変換可能性がある。
【0056】「バッファに入ってからの時間が一定の時間以内である。」
(2) バッファ内に命令が2つ以上存在する場合バッフア内の隣接する命令OPaとOPbが以下の条件を満たす場合、OPaとOPbには変換可能性がある。
【0057】ここで、OPaとOPbの順序関係はOPa,OPbの順であるとする。
【0058】(OPaがOPbよりも先に実行された。または、OPaがOPbよりも先にバッフアへ入った。)
以下の条件を満たさない場合OPaおよびバッファ内でOPaよりも前にあるすべての命令には変換可能性がない。
【0059】「OPaがバッファに入ってからの時間が一定の時間以内である。」かつ「OPaに含まれるforの数daとOPbに含まれるforの数dbについてda>=dbが成り立つ。」かつ「OPaの基底命令の種類とOPbの基底命令の種類が等しい。」尚、変換可能性条件の判定は性能を左右するものであり、変換が可能であるか否かを必ずしも正確に判定する必要はない。
【0060】従って、ここで述べた条件は一つの例であり、ここで述べた条件よりも、緩い条件を用いることも、逆に厳しい条件を用いることもできる。
【0061】例えば、極端に条件を緩くして「OPaがバッファに入ってからの時間が一定の時間以内である。」としても機能的には問題はなく、正しく描画されることになる。
【0062】変換可能な描画パターンが多用される場合、より緩い変換可能性条件を用いることにより、通信路を通るデータ量削減、および、それに伴う描画性能向上が期待できる。
【0063】より厳しい変換可能性条件を用いることにより、描画命令がバッファ内に留まる時間の短縮が期待できる。
【0064】従って、描画パターンと許容される遅延時間に応じて最適な条件が変わる。
【0065】上述した変換可能条件が満たされた場合は、次の第1〜第3の変換手順により変換が行われる。
【0066】第1変換手順について説明する。
【0067】OPaが基底命令であり、かつ、OPbが基底命令である場合for(x_1,y_1,2)OPaという拡張命令へ変換。ただし、(x_1,y_1)はOPbが表す図形のOPaが表す図形からの相対位置を表す。
【0068】例えば、変換可能な2命令、円描画命令drawCircle(1,2,3)、および、drawCircle(5,4,3)を変換する場合、以下のようになる。
【0069】ただし、drawCircle(x,y,r)は座標(x,y)が中心で半径rの円を描画する命令であるとする。
【0070】座標(5,4)の座標(1,2)からの相対位置(x1,y1)は(4,2)であり、繰り返し回数n1は2なので、for(x1,y1,n1)OPa=for(4,2,2) drawCircle(1,2,3)へ変換する。
【0071】第2変換手順について説明する。
【0072】OPaが拡張命令であり、かつ、OPbが拡張命令であり、かつ、da=dbの場合、for(xb_0-xa_0,yb_0-ya_0,2)for(xa_1,ya_1,na_1)for(xa_2,ya_2,na_2)…for(xa_s,ya_s,na_da)type(xa_0,ya_0)へ変換する。
【0073】ただし、OPa=for(xa_1,ya_1,na_1)for(xa_2,ya_2,na_2)…for(xa_s,ya_s,na_da)type(xa_0,ya_0)OPb=for(xb_1,yb_1,nb_1)for(xb_2,yb_2,nb_2)…for(xb_s,yb_s,nb_db)type(xb_0,yb_0)であるとする。
【0074】例えば、変換可能な2命令、円描画拡張命令for(1,2,3)drawCircle(4,5,6)、および、for(1,2,3)drawCircle(8,7,6)を変換する場合、以下のようになる。
【0075】ただし、drawCircle(x,y,r)は座標(x,y)が中心で半径rの円を描画する命令であるとする。
【0076】座標(8,7)の座標(4,5)からの相対位置(x1,y1)は(4,2)であり、for(4,2,2) for(1,2,3) drawCircle(4,5,6)へ変換する。
【0077】尚、「円描画命令drawCircleおよび半径r=6」という情報が「type」に相当する。
【0078】一見上記の形式と異なるように見えるかもしれないが、type(x,y)=drawCircle(x,y,6)であると考えればよい。
【0079】第3変換手順について説明する。
【0080】OPaが拡張命令であり、かつ、OPbが拡張命令であり、かつ、da-1=dbの場合、for(xa_1,ya_1,na_1+1)for(xa_2,ya_2,na_2)…for(xa_s,ya_s,na_da)type(xa_0,ya_0)と変換する。
【0081】ただし、OPa=for(xa_1,ya_1,na_1)for(xa_2,ya_2,na_2)…for(xa_s,ya_s,na_da)type(xa_0,ya_0)OPb=for(xb_1,yb_1,nb_1)for(xb_2,yb_2,nb_2)…for(xb_t,yb_t,nb_db)type(xb_0,yb_0)であるとする。
【0082】例えば、変換可能な2命令、円描画拡張命令for(1,2,3)for(4,5,6)drawCircle(7,8,9)および、for(4,5,6)drawCircle(10,14,9)を変換する場合、以下のようになる。ただし、drawCircle(x,y,r)は座標(x,y)が中心で半径rの円を描画する命令であるとする。
【0083】for(1,2,4) for(4,5,6)drawCircle(7,8,9)へ変換する。
【0084】(第2実施形態)次に本発明の第2実施形態の描画命令伝送システム及び方法について説明する。本実施形態は、第1実施形態と同様のシステムにおいて、変換装置11内のバッファ内で、同一種類の命令が連続している部分を検索し、他の命令へ変換するものである。
【0085】例えば、変換前の命令列が次のような場合、drawPixel(x1,y1)drawPixel(x2,y2)drawPixel(x3,y3)これを変換すると次のようになる。
【0086】for(3)drawPixel(x1,y1)(x2,y2)(x3,y3)このようにdrawPixel命令が3つ連続している場合、for(3)drawPixel(x1,y1)(x2,y2)(x3,y3)という1つの命令に変換する。この命令は繰り返し回数が増えると命令長も増えるが、変換前の命令列と比較すれば通信路を介して送受信するデータ量が減少する。
【0087】そして、受信・描画プロセス30は変換された命令を解釈し、変換前の命令を実行した場合と同様の処理を行う。
【0088】尚、変換アルゴリズムは、上述した第1実施形態1の変換アルゴリズムとほぼ同様であり、変換可能性条件、および、変換可能条件を同じ種類の命令の列を認識するように変更すればよい。
【0089】
【発明の効果】以上のように本発明によれば、通信路を介した描画命令の送受信に伴う通信路を介して送受信されるデータサイズの総量及びパケット数を削減させることができるので、描画性能の向上が可能となると同時に通信コストを削減させることが可能な描画命令伝送システム及び方法を提供できるものである。
【出願人】 【識別番号】000003078
【氏名又は名称】株式会社東芝
【出願日】 平成12年9月27日(2000.9.27)
【代理人】 【識別番号】100058479
【弁理士】
【氏名又は名称】鈴江 武彦 (外6名)
【公開番号】 特開2002−108575(P2002−108575A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−294985(P2000−294985)