ISO/IEC 9636-1:1991 情報技術—コンピューターグラフィックス—グラフィカルデバイス(CGI)との対話のためのインターフェース技術—機能仕様—パート1:概要、プロファイル、および適合性 | ページ 3

※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。

序章

目的

コンピュータ グラフィックス インターフェイス (CGI) は、グラフィックス システムのデバイスに依存しない部分とデバイスに依存する部分の間の標準インターフェイスを指定します. ISO/IEC 9636 は、このインターフェイスを介した制御とデータ交換のための一連の関数を指定します.このインターフェイスは、ソフトウェアからソフトウェアへのインターフェイス (ネットワーク環境で使用されるデータ ストリーム エンコーディングとして、または 1 つまたは複数のソフトウェア パッケージへの手続き型バインディングとして)、またはソフトウェアからハードウェアへのインターフェイス (データとして) として実装できます。デバイス プロトコルとして標準化されたコンピュータ グラフィックス インターフェイスを提示する 1 つまたは複数のデバイスへのストリーム エンコーディング)関連する標準では、データ ストリーム エンコーディング (ソフトウェアからソフトウェアへのケース、ネットワーク経由、およびソフトウェアからハードウェアへのケースで使用) と手続き型バインディング (ソフトウェアからソフトウェアへのケースで使用) が指定されています。

ISO/IEC 9636 には、参照モデルと、CGI と他の標準との関係の説明が含まれています。

ISO/IEC 9636 は、グラフィックス関数、グラフィックス制御関数、およびデータ表現とデータ ストリーム エンコーディングの遅延を制御する関数のみを定義しています。 ISO/IEC 9636 は、(潜在的に分散された) システムの部分間でこれらの機能を伝達するために使用されるプロトコルを定義していません。

利点

固有のCGI は、グラフィックス システムの開発と実装を簡素化したいと考えています。 ISO/IEC 9636 は、インストール内のグラフィックス デバイスへの均一なアクセスを促進します。新しいデバイスが利用可能になると、このインターフェイスに準拠したグラフィックス デバイス ドライバーをインストールして、既存のプログラムで使用することができます。
交換ISO/IEC 9636 は、インストール間でのソフトウェアの交換を促進します。グラフィックス システムのデバイス依存の側面を分離することで、モジュール性が促進され、移植性が向上します。機能、アクセス メカニズム、および用語の標準セットにより、開発者とユーザーは最小限の再トレーニングでインストール間を移動できます。
教育的関数の標準セットでは、標準的な用語が使用されます。これにより、学術界と産業界の両方が、これらの標準機能に基づくプログラミング技術と方法論に重点を置いた教育プログラムを開発することができます。
経済ハードウェアのコストが低くなり、ソフトウェアのコストが高くなるという傾向を考慮すると、ISO/IEC 9636 には次の利点があります。
  • これにより、インストール間でのソフトウェアの移動が促進されるため、「再発明」に関連するコストが削減されます。
  • 新しいデバイスの導入によってソフトウェアが時代遅れにならないため、ユーザーとベンダーの両方が行った大規模なソフトウェア投資が保護されます。
  • これにより、新しいソフトウェアの開発者は、デバイスレベルの機能ではなく、より高レベルのグラフィックス機能とアプリケーションに集中できます。
  • 標準はモジュール性を促進するため、ソフトウェア システムのメンテナンスが軽減されます。
  • 特定のデバイスを使用するように設計されたシステムは、他のデバイスを使用するように簡単に変更できるため、ユーザーのベンダーの独立性が高まります。
  • これにより、ベンダーは、顧客のシステムに簡単に接続できるデバイスを開発および販売できます。
  • これにより、ユーザー、メーカー、およびベンダーは、新しい低コストのグラフィックス ハードウェア設計を利用できるようになります。システムの再設計が不要な場合があるため、システム全体のハードウェア コストが削減される可能性があります。

設計要件

上記の利点を実現するために、多くの設計原則が採用されています。

  • a)コンピュータ グラフィックス インターフェイスは、広範囲の画像情報を記述するための適切な関数セットを提供する必要があります。
  • b)コンピュータ グラフィックス インターフェイスは、広範囲のグラフィックス デバイスの必要な CGI セッション制御に適した一連の機能を提供する必要があります。
  • c)コンピュータ グラフィックス インターフェイスは、グラフィック デバイスに見られるより一般的で不可欠な機能に直接対処し、あまり一般的でない機能へのアクセスを提供する必要があります。
  • d)コンピュータ グラフィックス インターフェースの設計は、現在標準化されていない機能をカバーするために後の段階で ISO/IEC 9636 を拡張することを排除すべきではありません。
  • e)コンピュータ グラフィックス インターフェイスは、GKS (Graphical Kernel System - ISO 7942) から使用できる必要があります。特に、CGI には、効率的かつ簡潔な方法で非 GKS システムをサポートするインターフェイスの機能を損なうことなく、GKS ワークステーションのさまざまなレベルを効率的かつ簡潔な方法でサポートする機能が含まれている必要があります。
  • f)コンピュータ グラフィックス インターフェイスは、コンピュータ グラフィックス メタファイル - ISO 8632 と互換性がある必要があります。
  • g) ISO/IEC 9636 は、相反する要件を持つさまざまなアプリケーションのニーズに対処する必要があります。
    • ホストとデバイス間の処理負荷の割り当て。
    • 関数の生成と解釈の速度。
    • さまざまなトランスポート メカニズムによる転送の容易さ。

設計基準

上記の要件は、次の設計基準を策定するために使用されました。

  • a)完全性ISO/IEC 9636 のどの分野においても、ISO/IEC 9636 で指定された機能はそれ自体で完全でなければなりません。
  • b)簡潔さ冗長な関数またはパラメーターは避ける必要があります。
  • c)一貫性矛盾する機能は避けるべきです。
  • d)拡張性ISO/IEC 9636 に新しい機能と一般性を追加する機能を排除すべきではありません。
  • e)忠実度関数の結果と動作は明確に定義する必要があります。
  • f)実装可能性関数は、ほとんどのホスト システムやグラフィック ハードウェアで効率的にサポートできる必要があります。
  • g)直交性独立した非相互作用の活動のための独立した機能を提供する必要があります。
  • h)予測可能性標準関数の推奨または適切な使用は、その特定の関数を使用した結果を保証する必要があります。
  • i)標準的な慣行既存の慣行を反映する機能、既存の慣行をサポートするために必要な機能、または同時に開発されている標準をサポートするために必要な機能のみを標準化する必要があります。
  • j)有用性関数は、有用なタスクを実行するのに十分強力でなければなりません。
  • k)よく構造化された関数が相互に行う仮定の数は最小限に抑える必要があります。関数には、明確に定義されたインターフェイスと、単純に述べられた無条件の目的が必要です。多目的機能と副作用は避けるべきです。

CGI 機能仕様の一部

コンピュータ グラフィックス インターフェイスの機能仕様である ISO/IEC 9636 は、ISO/IEC 9636 のこの部分の概要を含め、CGI 機能の一部を示すいくつかの部分で構成されています。

表 1 — CGI 機能仕様の部分

Part題名
ISO/IEC 9636-1概要、プロファイル、および適合性
ISO/IEC 9636-2コントロール
ISO/IEC 9636-3出力
ISO/IEC 9636-4セグメント
ISO/IEC 9636-5入力とエコー
ISO/IEC 9636-6グリッド

ISO/IEC 9636 のこの部分では、ISO/IEC 9636 の基本的な概念と原則の概要と紹介を提供します。参照モデル、他の規格との関係、およびプロファイルが含まれています。さらに、後続の各パートの概要も含まれています。したがって、ISO/IEC 9636 のこのパートは、ISO/IEC 9636 のすべてのパートのフレームワークを確立します。機能の説明は含まれていません。

CGI によって提供される機能は、特定のエンコード形式または言語バインディングの仕様とは別のものです。

Introduction

Purpose

The Computer Graphics Interface (CGI) specifies a standard interface between device-independent and device-dependent parts of a graphics system. ISO/IEC 9636 specifies sets of functions for control and data exchange over this interface. This interface may be implemented as a software-to-software interface (as a data stream encoding used in a network environment or as a procedural binding to one or more software packages), or as a software-to-hardware interface (as a data stream encoding to one or more devices presenting a standardized Computer Graphics Interface as their device protocol). Related standards specify data stream encodings (for use in the software-to-software case, over a network, and in the software-to-hardware case), and procedural bindings (for use in the software to software case).

ISO/IEC 9636 includes a reference model and a description of the CGI's relationship to other standards.

ISO/IEC 9636 only defines graphics functions, graphics control functions, and functions to control data representations and deferral in data stream encodings. ISO/IEC 9636 does not define the protocols to be used to convey these functions between the parts of a (potentially distributed) system.

Benefits

IntrinsicThe CGI will simplify the development and implementation of graphics systems. ISO/IEC 9636 will encourage a uniform access to the graphics devices within an installation. As new devices are made available, graphics device drivers adhering to this interface can be installed for use by existing programs.
InterchangeISO/IEC 9636 promotes the exchange of software between installations. By isolating the device-dependent aspects of any graphics system, modularity is encouraged, which promotes increased portability. The standard set of functions, access mechanisms, and terminology will allow developers and users to move between installations with minimal retraining.
EducationalThe standard set of functions uses a standard terminology. This allows both the academic and industrial communities to develop instructional programs concentrating on programming techniques and methodologies based on these standard functions.
EconomicIn view of the trend towards lower hardware and higher software costs, the following benefits accrue from ISO/IEC 9636:
  • It encourages transporting of software between installations, thereby reducing costs associated with “reinvention”;
  • It protects the large software investment made by both users and vendors because the software will not be rendered obsolete by the introduction of new devices;
  • It allows developers of new software to focus on higher-level graphics functions and applications instead of device-level functions;
  • It reduces maintenance of software systems because the standard encourages modularity;
  • It increases vendor independence for the user because any system designed to use a particular device can more easily be changed to use some other device;
  • It allows vendors to develop and market devices that will easily interface to the customer's system;
  • It enables users, manufacturers and vendors to take advantage of new, lower-cost graphics hardware designs. The total system's hardware cost may be reduced because system redesign may not be necessary.

Design requirements

To realize the benefits described above, a number of design principles have been adopted:

  • a) The Computer Graphics Interface should provide a suitable set of functions for the description of a wide range of pictorial information;
  • b) The Computer Graphics Interface should provide a suitable set of functions for the necessary CGI session control of a wide range of graphics devices;
  • c) The Computer Graphics Interface should address the more usual and essential features found on graphical devices directly and should provide access to less common facilities;
  • d) The design of the Computer Graphics Interface should not preclude extension of ISO/IEC 9636 at a later stage to cover facilities currently not standardized;
  • e) The Computer Graphics Interface should be usable from GKS (Graphical Kernel System - ISO 7942). In particular, the CGI should include functional capability to support the various levels of a GKS workstation in an efficient and concise manner, without compromising the ability of the interface to support non-GKS systems in an efficient and concise manner;
  • f) The Computer Graphics Interface should be compatible with the Computer Graphics Metafile - ISO 8632. In particular, those CGM elements not associated with the file-oriented aspects of the CGM shall have corresponding CGI functions which have identical abstract names and parameterization;
  • g) ISO/IEC 9636 should address the needs of different applications that have conflicting requirements for
    • allocation of processing burden between host and device;
    • speed of generation and interpretation of functions;
    • ease of transfer through different transport mechanisms.

Design criteria

The above requirements were used to formulate the following design criteria:

  • a) CompletenessIn any area of ISO/IEC 9636, the functionality specified by ISO/IEC 9636 should be complete in itself.
  • b) ConcisenessRedundant functions or parameters should be avoided.
  • c) ConsistencyContradictory functions should be avoided.
  • d) ExtensibilityThe ability to add new functions and generality to ISO/IEC 9636 should not be precluded.
  • e) FidelityThe results and behaviour of functions should be well defined.
  • f) ImplementabilityA function should be able to be efficiently supported on most host systems andor graphics hardware.
  • g) OrthogonalityIndependent functions for separate and noninteracting activities should be provided.
  • h) PredictabilityThe recommended or proper use of a standard function should guarantee the results of using that particular function.
  • i) Standard practiceOnly those functions that reflect existing practice, that are necessary to support existing practice, or that are necessary to support standards being developed concurrently should be standardized.
  • j) UsefulnessFunctions should be powerful enough to perform useful tasks.
  • k) Well-structuredThe number of assumptions that functions make about each other should be minimized. A function should have a well-defined interface and a simply stated unconditional purpose. Multi-purpose functions and side effects should be avoided.

Parts of the CGI functional specification

ISO/IEC 9636, the functional specification of the Computer Graphics Interface, consists of a number of parts presenting portions of the CGI functionality, including an overview in this part of ISO/IEC 9636.

Table 1—Parts of the CGI Functional Specification

Part No.Title
ISO/IEC 9636-1Overview, profiles, and conformance
ISO/IEC 9636-2Control
ISO/IEC 9636-3Output
ISO/IEC 9636-4Segments
ISO/IEC 9636-5Input and echoing
ISO/IEC 9636-6Raster

This part of ISO/IEC 9636 gives a general overview and introduction to the basic concepts and principles of ISO/IEC 9636. It includes a reference model, the relationship to other standards, and profiles. In addition, it contains overviews of each of the subsequent parts. This part of ISO/IEC 9636 thus establishes the framework for all the parts of ISO/IEC 9636; it does not contain functional descriptions.

The functional capability provided by the CGI is separate from the specification of any particular encoding format or language binding.