JP2006031160A - Graphic object processing method - Google Patents
Graphic object processing method Download PDFInfo
- Publication number
- JP2006031160A JP2006031160A JP2004205954A JP2004205954A JP2006031160A JP 2006031160 A JP2006031160 A JP 2006031160A JP 2004205954 A JP2004205954 A JP 2004205954A JP 2004205954 A JP2004205954 A JP 2004205954A JP 2006031160 A JP2006031160 A JP 2006031160A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- flag
- graphic object
- processing means
- display list
- 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.)
- Withdrawn
Links
Images
Abstract
Description
本発明は、オブジェクト・グラフィック要素のラスタ画素画像へのレンダリング装置に関し、具体的には、レンダリング処理の一部としての画素データのフレーム記憶装置またはライン記憶装置を使用しない、そのようなオブジェクト・グラフィック要素の画素画像データへの効率的なレンダリングを行うレンダリング装置に関する。 The present invention relates to an apparatus for rendering object graphic elements into a raster pixel image, and in particular, such object graphics that do not use frame or line storage of pixel data as part of the rendering process. The present invention relates to a rendering apparatus that performs efficient rendering on pixel image data of elements.
ほとんどのオブジェクト・ベース・グラフィックス・システムでは、ページまたは画面の画素ベース画像を保持するためにフレーム・ストアまたはページ・バッファが使用される。通常、グラフィック・オブジェクトの輪郭は、計算され、塗り潰され、フレーム・ストアに書き込まれる。二次元グラフィックスの場合、他のオブジェクトの手前にあるオブジェクトは、単純に背景オブジェクトの書込み後にフレーム・ストアに書き込まれ、これによって、画素単位で背景を置換する。これは、当技術分野では、「ペインタのアルゴリズム(Painter’s algorithm)」として一般に知られている。オブジェクトは、最も奥のオブジェクトから最も手前のオブジェクトという優先順位で検討され、通常は、各オブジェクトが、スキャン・ラインの順序でラスタ化され、画素が、各スキャン・ラインに沿ったシーケンシャルな並びでフレーム・ストアに書き込まれる。 Most object-based graphics systems use a frame store or page buffer to hold a pixel-based image of the page or screen. Typically, the outline of a graphic object is calculated, filled and written to the frame store. In the case of two-dimensional graphics, the object in front of other objects is simply written to the frame store after the background object is written, thereby replacing the background on a pixel-by-pixel basis. This is commonly known in the art as “Paint's algorithm”. Objects are considered in order of priority, from the deepest object to the foremost object, usually with each object rasterized in scan line order, with pixels in a sequential sequence along each scan line. Written to the frame store.
この技法には、基本的に2つの問題がある。第1の問題は、フレーム・ストア内のすべての画素への高速なランダム・アクセスが必要であることである。これは、新たに検討されるオブジェクトのそれぞれが、フレーム・ストア内のどの画素にも影響する可能性があるからである。このため、フレーム・ストアは、通常は半導体のランダム・アクセス・メモリ(RAM)内に保持される。高解像度カラー・プリンタの場合、必要なRAMの量は非常に多くなり、通常は100Mバイトを超えるが、これは、コストがかかり、高速での動作が困難である。第2の問題は、多数の画素がペイント(レンダリング)され、時間的に後のオブジェクトによって上塗り(再レンダリング)されることである。時間的に前のオブジェクトによる画素のペイントは、時間の浪費になる。 There are basically two problems with this technique. The first problem is that fast random access to all pixels in the frame store is required. This is because each newly considered object can affect any pixel in the frame store. For this reason, the frame store is usually held in a semiconductor random access memory (RAM). For high resolution color printers, the amount of RAM required is very large, typically over 100 Mbytes, which is costly and difficult to operate at high speed. The second problem is that many pixels are painted (rendered) and overpainted (re-rendered) by objects later in time. Painting pixels with the previous object in time is time consuming.
大量のフレーム・ストアの問題を克服するための方法の1つが、「バンディング(banding)」の使用である。バンディングを使用する時には、一時にフレーム・ストアの一部だけがメモリ内に存在する。描画されるオブジェクトのすべてが、「表示リスト・ストア」に保存される。画像全体は上記と同様にレンダリングされるが、存在するフレーム・ストアの部分の外側をペイント(レンダリング)しようとする画素ペイント(レンダリング)動作は、「クリップ」アウトされる。オブジェクトのすべてが描画された後に、フレーム・ストアの部分を、プリンタ(または他の位置)に送り、フレーム・ストアの別の部分を選択し、この処理を繰り返す。この技法には、ペナルティが伴う。たとえば、描画されるオブジェクトは検討され、何度も(バンドごとに1回)再検討されなければならない。バンドの数が増えるにつれて、レンダリングが必要なオブジェクトの検査が繰り返されるし回数も増える。バンディングの技法は、上塗りのコストという問題を解決しない。 One way to overcome the large frame store problem is the use of “banding”. When using banding, only a portion of the frame store is in memory at a time. All of the objects to be drawn are saved in the “display list store”. The entire image is rendered in the same manner as above, but pixel painting (rendering) operations that attempt to paint (render) outside the existing portion of the frame store are “clipped” out. After all of the objects have been drawn, the portion of the frame store is sent to the printer (or other location), another portion of the frame store is selected, and this process is repeated. This technique comes with a penalty. For example, the object being drawn must be reviewed and re-examined many times (once per band). As the number of bands increases, the inspection of objects that need to be rendered is repeated and the number of times increases. Banding techniques do not solve the problem of overcoating costs.
いくつかの他のグラフィック・システムでは、スキャン・ラインの順で画像が検討される。やはり、描画されるオブジェクトのすべてが、表示リスト・ストアに保存される。各スキャン・ライン上で、そのスキャン・ラインと交差するオブジェクトが優先順位の順でオブジェクトごとに検討され、オブジェクトの辺の交差点の間の画素のスパンが、ライン・ストアにセットされる。この技法も、大量のフレーム・ストアの問題を克服するが、やはり上塗りの問題をこうむる。 In some other graphics systems, the images are examined in scan line order. Again, all of the drawn objects are saved in the display list store. On each scan line, the objects that intersect that scan line are considered for each object in order of priority, and the span of pixels between the intersections of the object's sides is set in the line store. This technique also overcomes the problem of large frame stores, but still suffers from overcoating problems.
これらのほかに、大きいフレーム・ストアの問題と上塗りの問題の両方を解決する技法がある。そのような技法の1つでは、各スキャン・ラインが順番に作られる。やはり、描画されるオブジェクトのすべてが、表示リスト・ストアに保存される。各スキャン・ラインでは、そのスキャン・ラインと交差するオブジェクトの辺が、スキャン・ラインとの交差の座標の昇順で保持される。これらの交差の点または辺の交点が、順番に検討され、アクティブ・フラグの配列のトグルに使用される。そのスキャン・ライン上での対象となるオブジェクト優先順位ごとに1つのアクティブ・フラグがある。検討される辺の対のそれぞれの間で、最初の辺と次の辺の間にある各画素の色データが、アクティブ・フラグに対する優先順位エンコーダを使用して、どの優先順位が最も上にあるかを判定すること、および2つの辺の間のスパンの画素に関するその優先順位に関連する色を使用することによって生成される。次のスキャン・ラインに備えて、各辺の交差の座標が、各辺の性質に応じて更新される。この更新の結果として誤ってソートされた状態になった隣接する辺は、交換される。新しい辺も、辺のリストに合併される。 Other than these, there are techniques that solve both the large frame store problem and the overcoat problem. In one such technique, each scan line is created in turn. Again, all of the drawn objects are saved in the display list store. In each scan line, the side of the object that intersects the scan line is held in ascending order of the coordinates of the intersection with the scan line. These intersection points or edge intersections are considered in turn and used to toggle the array of active flags. There is one active flag for each object priority of interest on that scan line. Between each of the edge pairs considered, the color data for each pixel between the first edge and the next edge is at the highest priority, using the priority encoder for the active flag And using the color associated with that priority for the pixels of the span between the two sides. In preparation for the next scan line, the coordinates of the intersection of each side are updated according to the nature of each side. Adjacent edges that are missorted as a result of this update are swapped. New sides are also merged into the list of sides.
この技法は、フレーム・ストアまたはライン・ストアがなく、上塗りがなく、位数N倍(このNは優先順位の数)ではなく定数位数の時間でオブジェクト優先順位が処理されるという大きい長所を有する。ただし、この技法は既存のグラフィック記述言語が必要とする多数の機能を実施できないので、その使用が極度に制限されている。 This technique has the great advantage that there is no frame store or line store, no overcoat, and object priority is processed in constant order times rather than N times the order (where N is the number of priorities). Have. However, this technique is extremely limited in its use because it cannot perform the many functions required by existing graphic description languages.
この技法に伴う1つ又は複数の欠陥を、実質的に克服するか、少なくとも改善する技法が提案されている(例えば、特許文献1参照)。 Techniques have been proposed that substantially overcome or at least improve one or more deficiencies associated with this technique (see, for example, US Pat.
この技法においても各スキャン・ラインが順番に作られる。まず描画される全てのオブジェクトが、それぞれのオブジェクトの描画が開始されるスキャン・ライン順にソートされて表示リスト・ストアに保存される。各スキャン・ラインでは、そのスキャン・ラインと交差するオブジェクトの辺が交差座標の昇順に保持され、これら辺交差の隣接する対のそれぞれについて、対応するオブジェクトに関連する情報を検査して、辺交差の対応する対の間の画素位置のスパンに関するアクティブ・オブジェクトの組を決定し、画素位置のスパンのそれぞれについて、アクティブ・オブジェクトの対応する組を使用して、スパン内の位置のそれぞれの値を決定する。
しかしながら、前述の技術を実施するにあたっては辺処理、アクティブ・オブジェクトの決定、スパン内の画素値の決定および複数アクティブ・オブジェクトの画素値から唯一の画素値の決定のそれぞれを専用ハードウェアによって実現し、それらのハードウェア接続してパイプラインを構成することによって実現するか、または全処理をソフトウェアによってホスト上に実現していた。この場合、ハードウェアによる実装においては、与えられた画素シーケンシャル・レンダリング装置のハードウェアによってある画像を描画する場合に、画像の特徴によっては任意のモジュールまたは機能に処理が集中し、パイプラインストールが発生し、処理速度が律速する可能性があった。 However, in implementing the above technique, edge processing, active object determination, determination of pixel values within a span, and determination of a single pixel value from the pixel values of multiple active objects are realized by dedicated hardware. It is realized by connecting the hardware to form a pipeline, or the entire processing is realized on the host by software. In this case, in hardware implementation, when a certain image is rendered by the hardware of a given pixel sequential rendering device, processing is concentrated on an arbitrary module or function depending on the characteristics of the image, and pipeline installation occurs. However, the processing speed may be limited.
本発明は前述のような問題点を解決するためになされたものであり、その目的は描画処理において負荷が集中する機能の処理をハードウェアとソフトウェアとで並列に処理することによりストールを回避または軽減し、より高速な画素シーケンシャル・レンダリング装置を提供することである。 The present invention has been made in order to solve the above-described problems, and its purpose is to avoid stalls by processing in parallel processing between hardware and software for functions that are heavily loaded in rendering processing. It is to provide a pixel sequential rendering device that is reduced and faster.
上記課題を解決するために、請求項1記載の発明に係るグラフィックオブジェクト処理方法では、ラスター画素イメージを形成するべくグラフィックオブジェクトの表示リストを処理する方法において、前記表示リストを解析し前記表示リストにフラグを付加する手段と、表示リストに付加されたフラグを判定する手段と、前記判定の結果フラグが立っていない場合に前記表ジリスとに対する処理を実行する第一の処理手段と、前記判定の結果フラグが立っている場合は前記第一の処理手段と同等の手段を実行する第二の処理手段とを有することを特徴とする。 In order to solve the above problem, in the graphic object processing method according to the first aspect of the present invention, in the method of processing a display list of graphic objects to form a raster pixel image, the display list is analyzed and the display list is displayed. Means for adding a flag; means for determining a flag added to the display list; first processing means for executing processing for the table dilith when the determination result flag is not set; and And a second processing means for executing means equivalent to the first processing means when the result flag is set.
請求項2記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップがソフトウェアによって実行されることを特徴とする。 In the graphic object processing method according to the second aspect of the present invention, the step of analyzing the display list and adding a flag to the graphic object is further executed by software.
請求項3記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段はハードウェアであり、第二の処理手段はプロセッサと前記プロセッサで実行可能なソフトウェアであることを特徴とする。 In the graphic object processing method according to the third aspect of the invention, the first processing means is hardware, and the second processing means is a processor and software executable by the processor.
請求項4記載の発明に係るグラフィックオブジェクト処理方法では、さらに、フラグを付加する手段は特に表示リストと第一の処理手段の構成を解析してフラグを付加することを特徴とする。 In the graphic object processing method according to the fourth aspect of the present invention, the means for adding a flag particularly adds the flag by analyzing the configuration of the display list and the first processing means.
請求項5記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストはグラフィックオブジェクトのプロパティ情報と前記グラフィックオブジェクトのプロパティ情報に対する処理を規定する命令ストリームとから構成されることを特徴とする。 In the graphic object processing method according to the fifth aspect of the present invention, the display list is further composed of graphic object property information and an instruction stream defining processing for the graphic object property information.
請求項6記載の発明に係るグラフィックオブジェクト処理方法では、さらに、フラグを付加する手段は特にグラフィックオブジェクトのプロパティ情報を解析することを特徴とする。 In the graphic object processing method according to the sixth aspect of the invention, the means for adding a flag particularly analyzes the property information of the graphic object.
請求項7記載の発明に係るグラフィックオブジェクト処理方法では、さらに、フラグを付加する手段は特に命令ストリームを解析することを特徴とする。 In the graphic object processing method according to the seventh aspect of the present invention, the means for adding a flag particularly analyzes the instruction stream.
請求項8記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップにおいて、任意の命令に対してフラグを設定することを特徴とする。 In the graphic object processing method according to the eighth aspect of the present invention, in the step of analyzing the display list and adding a flag to the graphic object, a flag is set for an arbitrary command.
請求項9記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップにおいて、任意のグラフィックオブジェクトのプロパティ情報に対してフラグを設定することを特徴とする。 In the graphic object processing method according to the ninth aspect of the present invention, in the step of analyzing the display list and adding a flag to the graphic object, a flag is set for property information of an arbitrary graphic object. .
請求項10記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段は表示リストを読み込む手段と、表示リストに設定されたフラグのon/offを判定する手段と、第二の処理手段に前記フラグに関連する表示リストのレコードを転送する手段とを有しており、第二の処理手段は第一の処理手段から前記表示リストのレコードを受信する手段を有することを特徴とする。
In the graphic object processing method according to the invention of
請求項11記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段はさらに複数の処理手段によって構成されることを特徴とする。 In the graphic object processing method according to the eleventh aspect of the present invention, the first processing means further includes a plurality of processing means.
請求項12記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段は複数の処理手段がパイプライン接続されることにより構成されることを特徴とする。 In the graphic object processing method according to the twelfth aspect of the present invention, the first processing means is configured by connecting a plurality of processing means in a pipeline.
請求項13記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段は表示リストを読み込み第一の処理手段内の動作を規定する内部コマンドを生成する処理手段を含むことを特徴とする。 In the graphic object processing method according to the thirteenth aspect of the present invention, the first processing means further includes processing means for reading the display list and generating an internal command for defining an operation in the first processing means. To do.
請求項14記載の発明に係るグラフィックオブジェクト処理方法では、さらに、内部コマンドはフラグのために予約されたフィールドを有することを特徴とする。 The graphic object processing method according to the fourteenth aspect of the present invention is further characterized in that the internal command has a field reserved for a flag.
請求項15記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを読み込み第一の処理手段内の動作を規定する内部コマンドを生成する処理手段は表示リストに含まれるレコードのうち前記フラグが設定されたレコードに関連する内部コマンドに対してフラグを設定することを特徴とする。 In the graphic object processing method according to the fifteenth aspect of the present invention, the processing means for reading the display list and generating an internal command for defining an operation in the first processing means is configured such that the flag is included in the records included in the display list. A flag is set for an internal command related to the set record.
請求項16記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段を構成する複数の処理手段のうちの少なくとも一つは内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて処理手段自身に処理を割当てる手段と、前記フラグに応じて第二の処理手段に処理を割当てる手段と、第二の処理手段に前記内部コマンドを転送する手段とを有しており、第二の処理手段は第一の処理手段から内部コマンドを受信する手段と、第一の処理手段から受信したコマンドに対する処理を実行する手段を有することを特徴とする。 In the graphic object processing method according to the sixteenth aspect of the present invention, further, at least one of the plurality of processing means constituting the first processing means reads the field reserved for the flag of the internal command Means for determining the flag, means for assigning processing to the processing means itself according to the flag, means for assigning processing to the second processing means according to the flag, and And a second processing means having means for receiving an internal command from the first processing means and means for executing processing for the command received from the first processing means. It is characterized by.
請求項17記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段を構成する複数の処理手段のうち内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて処理手段自身に処理を割当てる手段と、前記フラグに応じて第二の処理手段に処理を割当てる手段と、第二の処理手段に前記内部コマンドを転送する手段とを有する処理手段は、さらに第二の処理手段から前記内部コマンドに対する応答を受信する手段を有しており、第二の処理手段は前記内部コマンドに対する処理実行後に前記処理に対する応答を発行する手段を有することを特徴とする。 The graphic object processing method according to claim 17 further includes means for reading a field reserved for a flag of an internal command among a plurality of processing means constituting the first processing means, and the flag. Means for determining, means for assigning processing to the processing means itself according to the flag, means for assigning processing to the second processing means according to the flag, means for transferring the internal command to the second processing means The processing means further includes means for receiving a response to the internal command from the second processing means, and the second processing means is a means for issuing a response to the process after executing the process for the internal command. It is characterized by having.
請求項18記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第二の処理手段は表示リストを読み込み第一の処理手段および第二の処理手段の動作を規定する内部コマンドを生成する処理手段を含むことを特徴とする。 In the graphic object processing method according to the eighteenth aspect of the present invention, the second processing means further includes processing means for reading the display list and generating internal commands for defining operations of the first processing means and the second processing means. It is characterized by including.
請求項19記載の発明に係るグラフィックオブジェクト処理方法では、さらに、内部コマンドはフラグのために予約されたフィールドを有することを特徴とする。 The graphic object processing method according to the present invention is further characterized in that the internal command has a field reserved for a flag.
請求項20記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを読み込み第一の処理手段および第二の処理手段内の動作を規定する内部コマンドを生成する処理手段は表示リストに含まれるレコードのうち前記フラグが設定されたレコードに関連する内部コマンドに対してフラグを設定することを特徴とする。 In the graphic object processing method according to the twentieth aspect of the present invention, the display list further includes processing means for reading the display list and generating internal commands for defining operations in the first processing means and the second processing means. A flag is set for an internal command related to a record in which the flag is set among the records.
請求項21記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第二の処理手段は内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて第二の処理手段自身に処理を割当てる手段と、内部コマンドの種類に応じて第一の処理手段を構成する処理手段のうちの任意の処理手段を選択する手段と、前記フラグに応じて第一の処理手段の前記選択された処理手段に処理を割当てる手段と、第一の処理手段の前記選択された処理手段に前記内部コマンドを転送する手段とを有しており、第一の処理手段を構成する複数の処理手段は第二の処理手段から内部コマンドを受信する手段を有することを特徴とする。
In the graphic object processing method according to
請求項22記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第二の処理手段は自身に割当てた内部コマンドに対する処理を実行後に第一の処理手段の前記選択された処理手段に内部コマンドに対する処理終了通知を発行する手段を有しており、第一の処理手段を構成する複数の処理手段は第二の処理手段から前記内部コマンドに対する処理終了通知を受信する手段を有することを特徴とする。 In the graphic object processing method according to the twenty-second aspect of the present invention, the second processing means further executes processing for the internal command in the selected processing means of the first processing means after executing processing for the internal command assigned to itself. It has means for issuing an end notice, and the plurality of processing means constituting the first processing means have means for receiving a process end notice for the internal command from the second processing means.
請求項23記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストにフラグを付加する手段は表示リスト内の順序を入れ替えることを特徴とする。 In the graphic object processing method according to the twenty-third aspect, the means for adding a flag to the display list changes the order in the display list.
請求項24記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストにフラグを付加する手段は命令の順序を入れ替えることを特徴とする。 In the graphic object processing method according to a twenty-fourth aspect of the present invention, the means for adding a flag to the display list changes the order of the instructions.
以上説明したように本発明に寄れば、表示リスト・ストアをプリスキャンしてハードウェア構成と処理対象の画像の特徴とからボトルネックとなる処理機能を推定して表示リスト・ストア中の任意の命令に対して付加情報を追加し、付加情報付命令に対応する処理をソフトウェア実行することにより、描画処理におけるボトルネック処理をハードウェアとソフトウェアとで並列に実行して描画処理時間を短縮することが可能な画素シーケンシャル・レンダリング装置を提供する。 As described above, according to the present invention, the display list store is pre-scanned to estimate the processing function that becomes a bottleneck from the hardware configuration and the characteristics of the image to be processed, and an arbitrary one in the display list store. By adding additional information to the instruction and executing the process corresponding to the instruction with the additional information in software, the bottleneck process in the drawing process is executed in parallel between the hardware and software, thereby reducing the drawing process time. Provided is a pixel sequential rendering apparatus capable of
以下で本発明の装置及びその動作について詳細に説明する。 The apparatus of the present invention and its operation will be described in detail below.
図1は、コンピュータ・グラフィック・オブジェクト画像のレンダリングおよびプレゼンテーションのために構成されたコンピュータ・システム10を概略的に示す図である。このシステムには、システム・ランダム・アクセス・メモリ(RAM)12に関連するホスト・プロセッサ11が含まれ、システムRAM12には、不揮発性のハード・ディスク・ドライブまたは類似の装置と、揮発性の半導体RAMを含めることができる。システム10には、システム読取専用メモリ(ROM)13も含まれ、システムROM13は、通常は半導体ROMを基礎とし、多くの場合に、コンパクト・ディスク装置(CD−ROM)によって補足することができる。システム10には、ラスタ式に動作するビデオ表示装置(VDU)またはプリンタなどの、画像を表示するための手段14も組み込むことができる。
FIG. 1 schematically illustrates a
システム10に関して上で説明した構成要素は、バス・システム15を介して相互接続され、IBM PC/ATタイプのパーソナル・コンピュータおよびそれから発展した構成、Sun Sparcstationsおよび類似物など、当技術分野で周知のコンピュータ・システムの通常動作モードで動作可能である。
The components described above with respect to
やはり図1に図示されているように、画素シーケンシャル・レンダリング装置16は、バス15に接続され、システム10からバス15を介して命令およびデータを供給されるグラフィック・オブジェクト・ベースの記述から導出される画素ベースの画像のシーケンシャル・レンダリングのために構成される。画素シーケンシャル・レンダリング装置16は、オブジェクト記述のレンダリングのためにシステムRAM12を使用することができるが、専用のローカルメモリを実装・使用してもよい。
As also illustrated in FIG. 1, the pixel
図2は基本的な機能データ流れを示す図である。図2の機能流れ図は、オブジェクト・グラフィック記述21から始まる。このオブジェクト・グラフィック記述21は、ホスト・プロセッサ11によって生成されるか、システムRAM12内に記憶されるかシステムROM13によって提供され、グラフィック・オブジェクトのパラメータを記述するのに使用され、そこから画素ベース画像をレンダリングするために、画素シーケンシャル・レンダリング装置16によって解釈され得る。たとえば、オブジェクト・グラフィック記述21には、ディスプレイ上の1点から別の点まで横断する直線の辺(単純ベクトル)または、直交する線を含む複数の辺によって二次元オブジェクトが定義される直交辺フォーマットを含むいくつかのフォーマットで辺を有するオブジェクトを組み込むことができる。これ以外に、連続曲線によってオブジェクトが定義されるフォーマットも、適当であり、これらには、乗算を実行する必要なしに二次曲線を単一の出力空間内でレンダリングできるようにするいくつかのパラメータによって単一の曲線を記述できる二次多項式の線分を含めることができる。三次スプラインや類似物などのそれ以外のデータ・フォーマットを使用することもできる。オブジェクトには、多数の異なる辺タイプの混合物を含めることができる。通常、すべてのフォーマットに共通するのは、それぞれの線(直線であれ曲線であれ)の始点と終点の識別子であり、通常は、これらは、スキャン・ライン番号によって識別され、したがって、その曲線をレンダリングすることのできる特定の出力空間が定義される。
FIG. 2 is a diagram showing a basic function data flow. The functional flow diagram of FIG. 2 begins with an object
レンダリングされるグラフィック・オブジェクトの記述に必要なデータを識別したので、グラフィック・システム10は、表示リスト生成ステップ22を実行する。
Having identified the data necessary to describe the graphic object to be rendered, the
表示リスト生成22は、取り付けられたROM13およびRAM12を有するホスト・プロセッサ11上で実行されるソフトウェア・モジュールとして実施されることが好ましい。表示リスト生成22では、周知のグラフィック記述言語、グラフィック・ライブラリ呼出しまたは他のアプリケーション固有フォーマットのうちの1つまたは複数で表現されたオブジェクト・グラフィック記述を表示リストに変換する。表示リストは、通常は、表示リスト・ストア23に書き込まれる。表示リスト・ストア23は、一般にRAM12内で形成されるが、その代わりに画素シーケンシャル・レンダリング装置16がローカルに有するメモリ内で形成することもできる。表示リスト・ストア23には、複数の構成要素を含めることができ、その1つは命令ストリームであり、もう1つは辺情報であり、ラスタ画像画素データを含めることができる。
The
命令ストリームには、特定の画像内で所望される特定のグラフィック・オブジェクトをレンダリングするために画素シーケンシャル・レンダリング装置16によって読み取られる、命令として解釈可能なコードが含まれる。
The instruction stream includes code that can be interpreted as instructions that are read by the pixel
表示リスト・ストア23は、画素シーケンシャル・レンダリング装置16によって読み取られる。画素シーケンシャル・レンダリング装置16は、表示リストをラスタ画素のストリームに変換し、このストリームは、たとえばプリンタ、ディスプレイまたはメモリ・ストアなどの別の装置に転送することができる。
The
図3はオブジェクト・グラフィック記述21から得られた表示リストを処理して画素を生成する画素シーケンシャル・レンダリング装置の構成図である。
FIG. 3 is a configuration diagram of a pixel sequential rendering apparatus that processes a display list obtained from the object
図3の画素シーケンシャル・レンダリング装置は基本構成に対して複数のハードウェアモジュールの追加を選択することによって複数通りの構成をとり得ると共に、基本構成と追加拡張をしたハードウェア構成との機能互換性および異なる追加拡張をしたハードウェア構成相互の機能互換性を保証する仕組を有する。より具体的には、ハードウェア構成の差分を自律的にソフトウェア実行するための仕組を有する。図3においては301〜308が基本構成モジュールであり、310〜313が追加拡張モジュールである。 The pixel sequential rendering apparatus of FIG. 3 can take a plurality of configurations by selecting the addition of a plurality of hardware modules to the basic configuration, and the functional compatibility between the basic configuration and the hardware configuration with additional expansion. And a mechanism for guaranteeing functional compatibility between hardware configurations with different additional extensions. More specifically, it has a mechanism for autonomously executing software on the difference in hardware configuration. In FIG. 3, 301 to 308 are basic configuration modules, and 310 to 313 are additional expansion modules.
表示リストにはオリジナルのオブジェクト・グラフィック記述に含まれる描画オブジェクトが副走査線方向(y座標)の昇順にソートされて記録されており、その他に各オブジェクトの辺情報は辺テーブルとして、各辺と対応づけられたレベル情報と他のレベルの同一座標の画素との関係(演算方法)がレベルテーブルとして、さらにオブジェクト内部の色を決定するための情報がフィルテーブルとして含まれる。また、オブジェクトの色を決定するための情報としては、色を生成するためのデータや処理が指定されており、ビットマップの読込みや圧縮画像を伸張し、その結果から任意の画素を取り込むことを指定している場合もある。 In the display list, the drawing objects included in the original object / graphic description are sorted and recorded in ascending order of the sub-scanning line direction (y-coordinate). In addition, the side information of each object is stored as a side table. The relationship (calculation method) between the correlated level information and pixels at the same coordinates on other levels is included as a level table, and information for determining the color inside the object is included as a fill table. In addition, as data for determining the color of an object, data and processing for generating a color are specified, and reading a bitmap or decompressing a compressed image, and capturing an arbitrary pixel from the result. It may be specified.
図3において300は画素シーケンシャル・レンダリング装置であり後述する301〜308および310〜313のモジュールから構成されており(そのうち301〜306をパイプラインモジュールと呼ぶものとする)、301はシステムバスにアクセスして該表示リストを読み込み、命令ストリームを解釈して、後述の302〜305からなる後段のパイプラインモジュールに対する内部コマンドを発行する命令実行部であり、302は命令実行部301によって発行された内部コマンドに従って該表示リストに含まれる辺情報を読み取り、走査線単位で描画オブジェクトの辺情報を抽出し、該辺情報を走査線方向(x座標)の昇順にソートした後、後述するパイプライン後段に位置する303のレベル優先度決定部に該辺情報をメッセージとして転送する辺処理部であり、303は命令実行部301によって発行された命令に従って該表示リストに含まれるレベルテーブルと辺処理部302によって生成された該辺情報とを読み込み、各走査線毎に各レベルの優先度と活性化された(描画に影響する)画素範囲を決定し、各走査線の該活性化された画素範囲の情報を優先度順にソートして他のレベルの画素との関係情報とともに画素範囲情報とし、後述するパイプライン後段に位置する304の塗りつぶしデータ決定部に該画素範囲情報を転送するレベル優先度決定部であり、304は命令実行部301によって発行された内部コマンドに従って該表示リストに含まれるフィルテーブルとレベル優先度決定部303によって生成された該画素範囲情報とを読み込み、レベル毎に活性化された画素の色を決定し、後述するパイプライン後段に位置する305の色合成部に該活性化された画素の色情報を303から転送されてきた画素範囲情報とともに転送する塗りつぶしデータ決定部であり、305は命令実行部301によって発行された内部コマンドに従ってレベル優先度決定部303によって生成された各レベルの画素範囲情報と塗りつぶしデータ決定部304によって決定された画素の色情報をもとに画素単位に色を決定する演算を実行し、画素の最終的な色を生成する色合成部であり、
306は色合成部305によって生成された最終画素を接続された外部機器に送出する画素出力部であり、307は該表示リストに前述の辺処理部302、レベル優先度決定部303、塗りつぶしデータ決定部304および色合成部305に実装されていない機能を要する内部コマンドが命令実行部301によって発行されたときに、該内部コマンドをソフトウェアの介在によって処理する互換性保証部であり、308は辺処理部302、レベル優先度決定部303、塗りつぶしデータ決定部304、色合成部305および互換性保証部307によるシステムバスへのアクセスに対する調停、順序付けを行いシステムバスへアクセスを中継するバスアクセス調停部である。
In FIG. 3,
辺処理部302、レベル優先度決定部303、塗りつぶしデータ決定部304および色合成部305それぞれに対して拡張部品を追加することが可能であり、かつ塗りつぶしデータ決定部304に対しては画像伸張部310を追加することもでき、画像伸張部310はさらに拡張部品を追加することが可能である。以上のような拡張はシステムに要求される性能およびコストに応じてなされる。
An extension component can be added to each of the side processing unit 302, the level
310は画素色決定の際に圧縮画像を扱うことを可能にする例えばJPEGをサポートする拡張モジュールであるところの画像伸張部であり、311はPostScriptに対応する拡張モジュールであるところの辺処理拡張部であり、312はGDIに対応する拡張モジュールであるところの辺処理拡張部であり、313はJBIGに対応する拡張モジュールであるところの画像伸張拡張部である。
Reference numeral 310 denotes an image expansion unit that is an extension module that supports, for example, JPEG, which makes it possible to handle a compressed image when determining a pixel color, and reference numeral 311 denotes an edge processing extension unit that is an extension module corresponding to PostScript. Reference numeral 312 denotes an edge processing extension unit that is an extension module corresponding to GDI, and
さらに画像伸張部310は自身が対応している伸張処理であれば自ら処理を行い、対応していない処理であれば互換性保証部307へコマンドを発行し、発行したコマンドに対する終了コマンドを受信し、最後に処理の終了通知を塗りつぶしデータ決定部304に発行する。
Further, the image decompression unit 310 performs its own processing if it is compatible with the image decompression unit 310, issues a command to the
以下、図4のような画像に対応するオブジェクト・グラフィック記述を処理する場合を例に取り、図3の画素シーケンシャル・レンダリング装置の動作の概要を説明する。図4は先ず三角形のオブジェクト41が描かれ(レベル1)、その上に重ねて楕円のオブジェクト42が描かれている(レベル2)描画画面を示している。また、レベル0は例えば画像を印刷する場合の紙に相当する最も視点から遠いデフォルトのレベルを表しており、白などのデフォルトのバックグラウンド色を有するものとする。
In the following, an outline of the operation of the pixel sequential rendering apparatus of FIG. 3 will be described by taking an example of processing an object graphic description corresponding to an image as shown in FIG. FIG. 4 shows a drawing screen in which a
図3の画素シーケンシャル・レンダリング装置による処理に先立ってオブジェクト・グラフィック記述はソフトウェアによって表示リストに変換される。表示リストは少なくとも以下に示す情報を含む。
(1)y=30からy=140の描画を行う。
(2)y=30からy=140までオブジェクト41の領域開始を示す直線の辺がある。傾きも含む。
(3)y=30からy=140までオブジェクト41の領域終端を示す直線の辺がある。傾きも含む。
(4)y=70からy=115までオブジェクト42の領域開始を示す楕円弧の辺がある。正確には楕円弧は短い直線セグメントに分割され、各セグメントの開始位置と傾きの情報とともに含まれる。
(5)y=70からy=115までオブジェクト42の領域終端を示す楕円弧の辺がある。正確には楕円弧は短い直線セグメントに分割され、各セグメントの開始位置と傾きの情報とともに含まれる。
(6)オブジェクト41のレベル(z座標)情報および他のレベルの同一座標の画素との関係(演算)、下位レベル(視点を基準にして遠い側)のオブジェクトの色情報が必要か(即ち透過か不透過か)、レベル内でどのように色が決定されるか(フィルタイプ)。
(7)オブジェクト42のレベル(z座標)情報および他のレベルの同一座標の画素との関係(演算)、下位レベル(視点を基準にして遠い側)のオブジェクトの色情報が必要か(即ち透過か不透過か)、レベル内でどのように色が決定されるか(フィルタイプ)。
(8)(2)から(6)へのポインタ情報。
(9)(3)から(6)へのポインタ情報。
(10)(4)から(7)へのポインタ情報。
(11)(5)から(7)へのポインタ情報。
(12)オブジェクト41の色を決定する(フィル)ための情報。
(13)オブジェクト42の色を決定する(フィル)ための情報。
(14)(6)から(12)へのポインタ情報
(15)(7)から(13)へのポインタ情報
(16)辺テーブルアドレス
(17)レベルテーブルアドレス
(18)フィルテーブルアドレス
Prior to processing by the pixel sequential rendering device of FIG. 3, the object graphic description is converted into a display list by software. The display list includes at least the following information.
(1) Draw from y = 30 to y = 140.
(2) From y = 30 to y = 140, there are straight sides indicating the start of the area of the
(3) From y = 30 to y = 140, there are straight sides indicating the end of the area of the
(4) From y = 70 to y = 115, there is an elliptical arc side indicating the start of the area of the
(5) From y = 70 to y = 115, there is an elliptic arc side indicating the end of the area of the
(6) The level (z coordinate) information of the
(7) The level (z coordinate) information of the
(8) Pointer information from (2) to (6).
(9) Pointer information from (3) to (6).
(10) Pointer information from (4) to (7).
(11) Pointer information from (5) to (7).
(12) Information for determining (filling) the color of the
(13) Information for determining (filling) the color of the
(14) Pointer information from (6) to (12) (15) Pointer information from (7) to (13) (16) Side table address (17) Level table address (18) Fill table address
以上のうち(2)、(3)、(4)、(5)、(8)、(9)、(10)および(11)は辺テーブルに含まれ、(6)、(7)、(12)および(13)はレベルテーブルに含まれ、(14)および(15)はフィルテーブルに含まれる。表示リスト・ストアは所定のアドレスを先頭とするメモリ領域に格納される。 Of these, (2), (3), (4), (5), (8), (9), (10) and (11) are included in the side table, and (6), (7), ( 12) and (13) are included in the level table, and (14) and (15) are included in the fill table. The display list store is stored in a memory area starting from a predetermined address.
画素シーケンシャル・レンダリング装置300が起動指示を受け付けると、命令実行部301は所定のアドレスから表示リストを読み込む。処理開始および描画領域がパイプライン下流の各モジュールに内部コマンドによって通知され、さらに辺処理部302には辺テーブルアドレス(16)が内部コマンドによって通知され、レベル優先度決定部303にはレベルテーブルアドレス(17)が内部コマンドによって通知され、塗りつぶしデータ決定部304にはフィルテーブルアドレス(18)が内部コマンドによって通知される。この時点でパイプラインの各モジュール、即ち辺処理部302、レベル優先度決定部303、塗りつぶしデータ決定部304および色合成部305はパイプライン上流に位置するモジュールから所定の内部コマンドが転送されてくるまで待機状態となる。次に命令実行部301は辺処理部302、レベル優先度決定部303、塗りつぶしデータ決定部304および色合成部305に対して描画開始コマンドを発行する。
When the pixel
辺処理部302、レベル優先度決定部303、塗りつぶしデータ決定部304および色合成部305ではy=0からy=30までは必要であればデフォルト(バックグラウンド色)画素を生成する。この間辺処理部302およびレベル優先度決定部303ではy=30からの処理を開始しており、塗りつぶしデータ決定部304ではy=0からy=30の領域の処理として、デフォルト即ちバックグラウンドのレベルに対して走査線方向の全画素にバックグラウンド色を生成し、該バックグラウンド色を有する画素が色合成部305を通り(画素間演算処理されずに)最終画素として画素出力部306を介して出力される。
The edge processing unit 302, the level
辺処理部302ではy=30までスキップし、y=30からオブジェクト41に属する2つの辺が発生することを検出し、辺テーブルに該2つの辺を登録して追跡を開始する。該2つの辺は同一オブジェクトに属するため既にxオーダーでソートされた状態であり、そのままレベル優先度決定部303に内部コマンドで通知される。
The edge processing unit 302 skips to y = 30, detects the occurrence of two edges belonging to the
レベル優先度決定部303は該2つの辺間でレベル1を活性状態にして、レベルテーブルからレベル1の属性を読み込み、内部コマンドを発行して2つの辺のx座標とレベル1の属性を塗りつぶしデータ決定部304に通知する。
The level
塗りつぶしデータ決定部304はレベル1の属性に従ってフィルテーブルを検索し、フィルテーブルの情報とレベル属性に従って該2つの辺間の画素の色を決定し、各画素を色合成部305に通知する。また該2つの辺間にない領域に対してはy=0からy=30までと同様にデフォルト色を生成して色合成部305に通知する。
The fill data determination unit 304 searches the fill table according to the level 1 attribute, determines the color of the pixel between the two sides according to the fill table information and the level attribute, and notifies the
色合成部305では複数レベル間の画素の演算処理が必要ないため、塗りつぶしデータ決定部304から受信した画素をそのまま最終画素として出力する。
Since the
辺処理部302はy=70から楕円のオブジェクトに属する2つの辺の追跡を開始する。ここでは後から加わった2つの辺は三角形オブジェクト41の辺よりもxが大きな座標に位置しているため、辺のソートを行う必要はない。また2つのオブジェクト41と42は重なっていないため、レベル優先度決定部303、塗りつぶしデータ決定部304および色合成部305はy=30からy=69までとほぼ同様に動作する。
The edge processing unit 302 starts tracking two edges belonging to an elliptical object from y = 70. Here, since the two sides added later are located at coordinates where x is larger than the side of the
三角形オブジェクト41の辺と楕円オブジェクト42の辺が交差したあとの走査線では辺情報のソートが必要となる。またオブジェクトが重なりを持つため、同一画素に対して複数のレベルが活性状態になり、画素を決定するための演算が行われるようになる。この様子をy=85の走査線に対する処理を例に挙げて説明する。
The side information needs to be sorted in the scanning line after the side of the
辺処理部302は辺を追跡していく過程で、辺の交差を監視しており、一度交差するとそれ以降は交差した後の順序に従って追跡を続けるものとする。従ってy=85では既に三角形オブジェクト41の辺と楕円オブジェクト42の辺は交差しており、辺のx座標はx0、x1、x2およびx3の順に更新され、レベル優先度決定部303に通知される。
The edge processing unit 302 monitors the intersection of the edges in the process of tracking the edges, and once the intersection occurs, the tracking is continued according to the order after the intersection. Therefore, at y = 85, the side of the
レベル優先度決定部303は楕円オブジェクト42の透過率が0でなければ、x0からx1ではレベル1のみを活性状態にし、x1からx2ではレベル1とレベル2を活性状態にし、x2からx3ではレベル2のみを活性状態にする。また、楕円オブジェクト42の透過率が0であれば、x0からx1ではレベル1のみを活性状態にし、x1からx3ではレベル2のみを活性状態にする。以降は楕円オブジェクト42の透過率が0でない場合について説明を続ける。活性状態となっているレベルと両端の辺情報は塗りつぶしデータ決定部304に通知される。
The level
塗りつぶしデータ決定部304はx=0からx=x0まではデフォルトレベルのデフォルト色を生成し、x0からx1まではレベル1の属性に従ってレベル1の画素の色を生成し、x1からx2まではレベル1の属性に従ってレベル1の画素の色を生成すると共に、レベル2の属性に従ってレベル2の画素の色を生成し、x2からx3まではレベル2の属性に従ってレベル2の画素の色を生成し、x3から描画サイズの右端までの画素に対してはデフォルトレベルのデフォルト色を生成し、画素オーダーで色合成部305に転送する。
The fill data determination unit 304 generates a default color of a default level from x = 0 to x = x0, generates a color of a level 1 pixel from x0 to x1 according to a level 1 attribute, and levels from x1 to x2 A level 1 pixel color according to the 1 attribute, a level 2 pixel color according to the level 2 attribute, and a level 2 pixel color according to the level 2 attribute from x2 to x3, For the pixels from x3 to the right end of the drawing size, a default color of a default level is generated and transferred to the
色合成部305はx=0からx1の間は塗りつぶしデータ決定部304より受け取った画素色をそのまま出力し、x1からx2に対してはレベル1の色に対してレベル2の色をレベルテーブルに記された所定のオペレーションを適用して重ねあわせることにより最終的な画素の色を出力し、x2から描画サイズ右端までの画素に対しては再び塗りつぶしデータ決定部304より受け取った画素色をそのまま出力する。ただし、以上の処理においてデフォルト色に対しては何もしない場合もあり得る。
The
以上のような処理がパイプライン的に実行される。即ち、命令実行部301、辺処理部302、レベル優先度決定部303、塗りつぶしデータ決定部304および色合成部305の各モジュールは、自分の処理が終了すると次の処理を実行するモジュールに内部コマンドを発行して処理を依頼し、次の処理が可能になると前の処理を実行するモジュールからの内部コマンドを受け付ける状態になる。内部で処理を実行しているか、バッファがフルとなり新たな処理を受け付けられない場合は、前の処理を実行するモジュールとのパスを通じてビジー状態を通知し、処理を受け付けないことを通知する。ビジー状態を通知されたモジュールは内部コマンドを後の処理を実行するモジュールに転送することはできず、ストールが発生する。
The above processing is executed in a pipeline manner. That is, each module of the
以上の説明では、図3に示す基本構成のハードウェアが対応している機能のみが要求される画像を処理する場合について述べてきた。例えば、辺処理部302がOpenPageにのみ対応しているとすれば、OpenPageの描画情報に基づいて生成された表示リスト・ストアが処理されていた。ここで、例えばPostScriptの描画情報に基いて生成された表示リスト・ストアが指定された場合には、ハードウェア即ち辺処理部302では正しく処理することができないため、互換性保証部307に内部コマンドが転送される。互換性保証部307はシステムバスを介して接続されている図示されていないシステムメモリに格納されているハードウェアが対応していない内部コマンドの処理ルーチンのセットから適切なルーチンを読み出して該内部コマンドに対する処理を実行し、実行結果をシステムメモリか内部コマンド転送元のモジュールに転送し、処理の終了を内部コマンド転送元モジュールに通知する。内部コマンド転送元のモジュールは該処理の終了の通知を受けると、あたかも自分が処理したように後の処理を実行するモジュールに対して内部コマンドを発行して処理を継続させる。以上のように必ずしもハードウェアが全ての描画機能をサポートしていなくても、任意の表示リスト・ストアを処理することが可能となっている。
In the above description, a case has been described in which an image that requires only functions supported by the hardware with the basic configuration shown in FIG. 3 is processed. For example, if the side processing unit 302 is compatible only with OpenPage, the display list store generated based on the OpenPage drawing information has been processed. Here, for example, when a display list / store generated based on the PostScript drawing information is specified, the hardware, that is, the side processing unit 302 cannot correctly process, so the
ここで、図5に示すように、同一走査線を始点として描かれた複数のオブジェクト51〜55が描かれており、かつ各オブジェクトのフィルがJPEG画像で行われる場合、該走査線(図5において点線で示される)の処理において、各オブジェクトの画素毎のフィル情報を決定するために伸張処理が行われなければならない。しかしながらJPEG伸張処理はハードウェアを用いても数クロックサイクルで処理することは難しいため、図5のような画像を扱う場合には、塗りつぶしデータ決定部304の入力がビジーとなりパイプラインがストールする可能性が高い。51〜55の全画像に対する伸張を同一ハードウェアで逐次実行するよりも、例えば55の伸張処理だけはソフトウェアで並列に実行した方が高速に処理できる場合もある。このような判断は画素シーケンシャル・レンダリング装置のハードウェア構成情報と入力画像データとからある程度解析または推測可能である。
Here, as shown in FIG. 5, when a plurality of
このときの機能の流れを図6に示す。さらにプリスキャンの流れの詳細を図7に示し、命令実行部301の処理の流れを図8に示し、画像伸張部310の処理の流れを図9に示し、表示リスト、コマンド、メモリ間の参照関係を図10に示す。また、表示リストの命令ストリームの各命令および画素シーケンシャル・レンダリング装置の内部コマンドには少なくとも1−bitのフラグフィールドが予約され、かつフラグは立っていない状態に初期化されるよう拡張されているものとする。
The function flow at this time is shown in FIG. 7 shows the details of the pre-scan flow, FIG. 8 shows the processing flow of the
ハードウェアとソフトウェアによる並列実行に対応するために、コンピュータシステム10はさらに、表示リストをプリスキャンし同一走査線上で開始され、かつ伸張処理を要するオブジェクトを抽出し、該オブジェクトのフィル情報の伸張命令に対してソフトウェアで伸張することを指示するフラグを付加する手段と(図6の61および図7)、命令実行部301においては、該フラグが付加された伸張命令を読み取った場合に同等の意味のフラグを付加した画像伸張のための内部コマンドをパイプラインモジュールに出力する手段と(図8)、画像伸張部310においては、該フラグが付加された画像伸張コマンドを互換性保証部307に転送する手段および該画像伸張コマンドに対する応答を互換性保証部307から受け取る手段と(図9)、互換性保証部307においては、該画像伸張コマンドを処理し応答を画像伸張部310に発行する手段とをさらに有する。
In order to support parallel execution by hardware and software, the
表示リストにソフトウェア処理フラグを付加する手順を図7を用いて説明する。先ず画素シーケンシャル・レンダリング装置300のハードウェア構成を記したファイルをシステムRAM12またはシステムROM13からバス15を介して読み込み(71)、表示リスト23をシステムRAM12またはローカルメモリから読み込み(72)、オブジェクトの数や位置関係を抽出し(73)、71および73をもとに負荷が集中しそうな機能を推定し(74)、負荷が集中する機能が発生する場合(75)対象となるオブジェクトとその処理を特定する命令ストリーム中の命令を決定して(76)、ソフトウェア処理フラグを付加し(77)、付加が集中する機能が発生しない場合(75)そのまま終了する。
A procedure for adding a software processing flag to the display list will be described with reference to FIG. First, a file describing the hardware configuration of the pixel
このときの表示リスト23、内部コマンドおよびシステムRAM12の参照関係を図10に示す。表示リスト23には命令ストリーム101と辺情報102と塗りつぶし情報103とを有しているものとする。命令ストリーム中の各命令は処理種別と、処理種別によって辺レコードであるか塗りつぶしレコードであるところの処理対象と、処理のためのパラメータと、ソフトウェア処理フラグとを有する。辺情報は複数のレコードでひとつのグラフィック・オブジェクトを表現するセグメントレコードから構成され、各セグメントレコードは辺情報を生成するために必要な開始(x,y)座標と終端y座標とセグメントの傾きdxと、そのセグメントが属するレベルと、終端座標から連続しかつ同一グラフィック・オブジェクトを表現するセグメントへのポインタと、その他の色、座標を決定するためのアルゴリズムで使用するパラメータとを含む。塗りつぶし情報の各レコードは塗りつぶしタイプと、同一色による塗りつぶしの場合はその色情報と、ビットマップの場合前記ビットマップが格納されているアドレスと、圧縮された画像の場合前記圧縮画像が格納されているアドレスと、伸張後のデータを格納するためのバッファのアドレスと、伸張パラメータなどのプロパティから構成される。例えば図10におけるシステムRAM12にマッピングされた圧縮画像で塗りつぶしを行う場合には、表示リスト23には塗りつぶし情報のレコードとして前記圧縮画像が格納されたアドレスをソースとして与えられており、かつ伸張データ格納アドレスを与えられた塗りつぶしレコードと、前記塗りつぶしレコードと関連付けられたセグメントレコードと、前記塗りつぶしレコードを処理対象とする伸張命令と塗りつぶし命令とが含まれる。これらのデータを元に前記圧縮画像が格納されているアドレスをソースアドレスとして与えられ、前記伸張データを格納するためのバッファの先頭アドレスをデスティネーションアドレスとして与えられた伸張コマンドと、前記伸張データを格納するためのバッファの先頭アドレスをソースアドレスとして与えられた塗りぶつしコマンドを生成することにより、処理対象となるグラフィック・オブジェクトを所望の色で塗りつぶすことが可能となる。伸張命令にソフトウェア処理フラグが設定されている場合には、伸張コマンドのソフトウェア処理フラグ・フィールドにフラグが設定され、前記伸張処理は互換性保証部107に転送され処理される。
FIG. 10 shows the reference relationship between the
命令実行部301における処理のソフトウェア処理フラグに関わる動作の流れを図8を用いて説明する。まず、表示リスト23から命令ストリームを読み込み(81)、読み込んだ命令にソフトウェア処理フラグがついていれば(82)ソフトウェア処理フラグ付コマンドを生成し(83)、読み込んだ命令にソフトウェア処理フラグがついていなければ(82)通常コマンドを生成する(84)。
The flow of operations related to the software processing flag of processing in the
画像伸張部310における処理のソフトウェア処理フラグに関わる動作の流れを図9を用いて説明する。ただし受信したコマンドの内容が画像伸張部310がサポートする機能で実現可能なものである場合について述べる。まず画素データ決定部304からコマンドを受信し(91)、通常コマンドであれば(92)自身で処理を行い(93)、ソフトウェア処理フラグ付コマンドであれば(92)互換性保証部307に該コマンドを転送し(94)、互換性保証部からの応答コマンドを受信し(95)、最後に画素データ決定部304に応答コマンドを返す(96)。
The flow of operations related to the software processing flag of processing in the image expansion unit 310 will be described with reference to FIG. However, a case where the content of the received command can be realized by a function supported by the image expansion unit 310 will be described. First, a command is received from the pixel data determination unit 304 (91), and if it is a normal command (92), the processing is performed by itself (93), and if it is a command with a software processing flag (92), the
以上のような機能を追加することにより、該フラグなしの画像伸張コマンドは塗りぶつしデータ決定部304から画像伸張部310に転送されハードウェア処理されると共に、該フラグ付の画像伸張コマンドはさらに互換性保証部307に転送されソフトウェア処理される。該フラグが適当に付加されることにより画像伸張処理がハードウェアとソフトウェアとで並列に実行され、全体の処理時間が短縮される。
By adding the functions as described above, the image decompression command without the flag is transferred from the paint data determination unit 304 to the image decompression unit 310 and subjected to hardware processing. The data is transferred to the
さらに、プリスキャンにおいて、ソフトウェア処理をするようにスケジュールした命令に関しては、ハードウェアによる処理に比べて時間を要することを考慮し、可能な限り早期にコマンドが発行されるように命令の順序を入れ替えることによって、性能を向上させることが可能な場合もあり得る。 Furthermore, in the pre-scan, for instructions scheduled to be processed by software, the order of instructions is changed so that commands are issued as early as possible in consideration of the time required for processing by hardware. Depending on the situation, it may be possible to improve the performance.
表示リストに対しソフトウェアによる画像伸張を指示するフラグを付加する手段は、表示リスト生成時に同時に実行することも可能であるが、実質的にはオブジェクトの数および相互の位置関係を抽出可能なレベルにまで処理しなければならないため、このような場合もプリスキャンに含むものとする。 The means for adding a flag for instructing the image expansion by the software to the display list can be executed at the same time when the display list is generated. However, the number of objects and the mutual positional relationship can be substantially extracted. Such a case is also included in the pre-scan.
画像伸張は他のパイプライン処理と非同期に、ページ描画処理の開始と共に開始してもよい。この場合JPEG画像のオブジェクトが同一走査線で開始されるものでなくてもソフトウェアによる伸張を混在させることも有り得る。 Image decompression may be started simultaneously with the start of the page drawing process, asynchronously with other pipeline processes. In this case, even if the JPEG image object does not start on the same scanning line, it is possible to mix expansion by software.
10 レンダリング・システム
11 CPU
12 RAM
13 ROM
14 画像出力装置
15 バス
16 画素シーケンシャル・レンダリング装置
21 オブジェクト・グラフィック記述
22 表示リスト生成
23 表示リスト・ストア
24 −
25 画素出力
300 画素シーケンシャル・レンダリング装置
301 命令実行部
302 辺処理部
303 優先度決定部
304 画素データ決定部
305 色合成部
306 画素出力部
307 互換性保証部
308 バスアクセス調停部
309 −
310 画像伸張部
311 PostScript対応辺処理拡張部
312 GDI対応辺処理拡張部
313 JBIG対応画像伸張拡張部
41 描画オブジェクト
42 描画オブジェクト
51 JPEG描画オブジェクト
52 JPEG描画オブジェクト
53 JPEG描画オブジェクト
54 JPEG描画オブジェクト
55 JPEG描画オブジェクト
61 プリスキャン
71 ハードウェア構成読込みステップ
72 表示リスト・ストア読込みステップ
73 オブジェクト情報解析ステップ
74 高負荷機能推定ステップ
75 高負荷機能有無判定ステップ
76 高負荷機能・オブジェクト決定ステップ
77 ソフトウェア処理フラグ付加ステップ
81 命令読込みステップ
82 ソフトウェア処理フラグ判定ステップ
83 ソフトウェア処理フラグ付コマンド生成ステップ
84 通常コマンド生成ステップ
91 コマンド受信ステップ
92 ソフトウェア処理フラグ判定ステップ
93 画像伸張処理ステップ
94 互換性保証部へのコマンド転送ステップ
95 補完性保証部からの応答コマンド受信ステップ
96 画像伸張コマンドに対する応答コマンド発行ステップ
101 命令ストリーム
102 辺情報
103 塗りつぶし情報
104 伸張コマンド
105 塗りつぶしコマンド
10 Rendering system
11 CPU
12 RAM
13 ROM
14 Image output device
15 bus
16 pixel sequential rendering device
21 Object graphic description
22 Display list generation
23 Display List Store
24 −
25 pixel output
300 pixel sequential rendering device
301 Instruction execution part
302 Side processing part
303 Priority determination unit
304 Pixel data decision unit
305 Color composition part
306 Pixel output section
307 Compatibility Assurance Department
308 Bus Access Mediation Department
309 −
310 Image expansion
311 PostScript compatible edge processing extension
312 GDI compatible edge processing extension
313 JBIG compatible image expansion and extension
41 drawing objects
42 drawing objects
51 JPEG drawing objects
52 JPEG drawing objects
53 JPEG drawing objects
54 JPEG drawing objects
55 JPEG drawing objects
61 Prescan
71 Hardware configuration reading step
72 Display list / store read step
73 Object information analysis step
74 High load function estimation step
75 High load function presence / absence judgment step
76 High-load function / object determination step
77 Software processing flag addition step
81 Instruction reading step
82 Software processing flag judgment step
83 Command generation step with software processing flag
84 Normal command generation step
91 Command reception step
92 Software processing flag judgment step
93 Image expansion processing steps
94 Command Transfer Step to Compatibility Assurance Department
95 Response command reception step from complementarity assurance
96 Response command issue step for image expansion command
101 instruction stream
102 Edge information
103 Fill information
104 Decompress command
105 Fill command
Claims (24)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004205954A JP2006031160A (en) | 2004-07-13 | 2004-07-13 | Graphic object processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004205954A JP2006031160A (en) | 2004-07-13 | 2004-07-13 | Graphic object processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006031160A true JP2006031160A (en) | 2006-02-02 |
Family
ID=35897469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004205954A Withdrawn JP2006031160A (en) | 2004-07-13 | 2004-07-13 | Graphic object processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006031160A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008140323A (en) * | 2006-12-05 | 2008-06-19 | Canon Inc | Image forming apparatus, and control method and computer program for the same |
JP2009282964A (en) * | 2008-03-31 | 2009-12-03 | Konica Minolta Systems Lab Inc | System and method for rendering print data, and computer readable medium |
JP2014182594A (en) * | 2013-03-19 | 2014-09-29 | Mitsubishi Electric Corp | Parallel rendering device |
-
2004
- 2004-07-13 JP JP2004205954A patent/JP2006031160A/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008140323A (en) * | 2006-12-05 | 2008-06-19 | Canon Inc | Image forming apparatus, and control method and computer program for the same |
JP2009282964A (en) * | 2008-03-31 | 2009-12-03 | Konica Minolta Systems Lab Inc | System and method for rendering print data, and computer readable medium |
JP2014182594A (en) * | 2013-03-19 | 2014-09-29 | Mitsubishi Electric Corp | Parallel rendering device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10885607B2 (en) | Storage for foveated rendering | |
US5959867A (en) | Computer system and process for efficient processing of a page description using a display list | |
JP6352546B2 (en) | Handling unaligned block transfer operations | |
JP5596938B2 (en) | Image processing apparatus, image processing method, and program | |
JPH11147335A (en) | Plot process apparatus | |
JP2004318832A (en) | Reducing method of number of compositing operations performed in pixel sequential rendering system | |
US5966136A (en) | Efficient method for clipping numerous objects against an arbitrary clipping path | |
US6894695B2 (en) | Apparatus and method for acceleration of 2D vector graphics using 3D graphics hardware | |
US10762401B2 (en) | Image processing apparatus controlling the order of storing decompressed data, and method thereof | |
KR20080023724A (en) | Magnification engine and interface for computers | |
US6421063B1 (en) | Pixel zoom system and method for a computer graphics system | |
US9600747B2 (en) | Image forming apparatus and control method that execute a plurality of rendering processing units in parallel | |
JP4646436B2 (en) | Digital image processing device | |
US9122977B2 (en) | Image processing apparatus and image processing method | |
EP0928459B1 (en) | Computer system and process for page description processing | |
JP2006031160A (en) | Graphic object processing method | |
JP2008107970A (en) | Image forming device | |
JP6904717B2 (en) | Image processing equipment, its control method, and programs | |
JP4533019B2 (en) | Graphic object processing apparatus and graphic object processing method | |
US8064073B2 (en) | Adaptive rasterizer buffer | |
US11341383B2 (en) | Methods and apparatus to detect effective tiling area and fill tiles efficiently | |
JP2009075805A (en) | Image forming apparatus | |
JPH11224331A (en) | Raster image generation device and raster image generation method | |
CN115904570A (en) | Software and hardware combined point 9 picture display method, system, device and storage medium | |
JP2013091222A (en) | Image formation processing apparatus and image processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071002 |