トゥルービジョンTGA

トゥルービジョンTGA
ファイル名拡張子
.tga、.icb、.vda、.vst
インターネットメディアの種類
イメージ/x-targa [1]
イメージ/x-tga
タイプコード「TPIC」
統一型識別子(UTI)com.truevision.tga-image
開発者トゥルービジョン
フォーマットの種類ラスター 画像ファイル

Truevision TGA ( TARGAとも呼ばれる)は、 Truevision (現在はAvid Technology傘下)によって開発されたラスター グラフィックファイル形式です。TARGAおよびVISTAボードのネイティブ形式であり、 IBM PC互換機ハイカラーまたはトゥルーカラー表示に対応した最初のグラフィックカードでした。このグラフィックカードシリーズは、プロフェッショナルなコンピュータ画像合成を目的として設計されており、TGA画像ファイルの一般的な解像度は、NTSCおよびPALビデオ形式と一致しています。[2]

TARGA は、 T ruevision A dvanced Raster G raphics A dapterの略語です。TGAT ruevision G raphics A dapter頭文字です

TGAファイルは、MS-DOSWindowsmacOS(旧型のMacintoshシステムでは「TPIC」タイプコードを使用)で一般的に拡張子「.tga」を持ちます。このフォーマット自体は最大255ビットのピクセル深度を許可し、そのうち最大15ビットをアルファチャンネルに使用できます。[3]しかし、実際にサポートされているビット深度は8、15、16、24、32のみで、16ビットと32ビットのフォーマットではそれぞれ1ビットと8ビットがアルファチャンネルに使用されていました。カラーデータはカラーマップダイレクトカラー、またはトゥルーカラー形式で保存できます。画像データは生の状態で保存することも、オプションでPackBitsに似たロスレスRLE圧縮を使用することもできます。このタイプの圧縮は、一般的な写真画像には適していませんが、アイコン、漫画、線画などの単純な画像には十分に機能します。

歴史

TGAファイル形式は、 1984年にIsland Graphics Inc.からのフィードバックを受けてAT&T EPICenterによって定義・仕様化されました。AT&T EPICenterは、AT&Tがカラーフレームバッファ用に開発した新技術を販売するために設立された社内スピンオフ企業です。後にTruevisionとなった企業は、1987年にAT&Tからレバレッジド・バイアウト(従業員による買収)によって誕生しました。

EPICenterの最初の2枚のカード、VDA(ビデオディスプレイアダプタ)とICB(イメージキャプチャボード)は、TGAファイル形式の最初の形態を採用していました。ファイル拡張子「.vda」と「.icb」は、ボード固有のデータに関する情報を示していました。

その後、アラン・ウラサック(当時EPICenterの責任者)、ブラッド・ピロー(EPICenter)、そしてスティーブン・ドンピア(Islandの社長)は、より体系化されたファイル形式が必要であると判断しました。このファイル形式は、ブラッド・ピロー(EPICenter)とブライアン・ハント(EPICenter)によって作成・実装され、ボードに依存しないファイル形式を求める声に応えて開発されました。既存の形式に非常にシンプルな拡張が加えられ、幅、高さ、ピクセル深度、関連するカラーマップ、画像の原点に関する情報が含まれていました。ラベルフィールド(最大255文字)も初期仕様に含まれていましたが、ほとんど使用されませんでした。

当時、技術的に優れたTIFFというファイル形式も登場しましたが、TIFF仕様をサポートするアプリケーション間でのファイル実装やファイル共有がかなり難しく、複雑なため、トゥルーカラー画像への利用は非常に限られていました。TGAファイル形式のシンプルさとプラットフォーム間の移植性は、今日に至るまで世界中で広く採用され、様々なアプリケーションで成功を収めている主な理由です。

当初、TGA ファイル形式は ICB-PAINT および TARGA-PAINT プログラム (後に TIPS として知られるようになった) で使用され、オンライン不動産ブラウジングや静止画ビデオ会議のいくつかのプロジェクトでも使用されました。

現在のバージョン (2.0) には、「切手」(サムネイルとしてよく知られています)、アルファ チャネル、ガンマ値、テキストメタデータなどのいくつかの機能強化が含まれており、1989 年に Kevin Friedly と David Spoelstra の指導を受けて Truevision Inc. の Shawn Steiner によって作成されました。

発売当時、TGAはデジタル画像処理の最先端技術を象徴していました。現在でも、その最大色深度はハイエンドのプリプレスや高負荷画像処理システムには適していませんが、TGAの主な出力対象がカラー印刷ではなく標準的なテレビ画面であるため、アニメーションビデオ業界では広く使用されています。[4]

非圧縮の24ビットTGA画像は、他の主要な24ビット保存形式と比較して比較的シンプルです。24ビットTGAには、18バイトのヘッダーと、それに続くパックされたRGBデータとして画像データが含まれます。一方、BMPでは行を4バイト境界にパディングする必要がありますが、TIFFとPNGはメタデータコンテナであり、画像データや属性をファイル内の固定位置に配置する必要がありません。

32 ビット TGA 画像にはアルファ チャネルまたはキー信号が含まれており、Avid Deko などの文字生成プログラムでよく使用されます。

技術的な詳細

すべての値はリトルエンディアンです。フィールドとサブフィールドの番号は仕様のバージョン 2.0 に準拠しています。

バージョン2.0では拡張領域とフッターが追加されました。開発者領域はアプリケーション固有の情報を保存するために存在します。

フィールド番号長さフィールド名説明
11バイトIDの長さ画像IDフィールドの長さ
21バイトカラーマップタイプカラーマップが含まれているかどうか
31バイト画像タイプ圧縮とカラータイプ
45バイトカラーマップの仕様カラーマップを説明します
510バイト画像仕様画像のサイズと形式

画像IDの長さ(フィールド1)

0~255 イメージIDフィールドのバイト数。イメージIDフィールドには任意の情報を含めることができますが、通常はイメージの作成日時またはシリアル番号が含まれます。

TGA 仕様のバージョン 2.0 では、画像が作成された日時が拡張領域で処理されるようになりました。

カラーマップタイプ(フィールド2)

値は次のとおりです:

  • 画像ファイルにカラーマップが含まれていない場合は0
  • 存在する場合1
  • 2~127はTruevisionによって予約されています
  • 開発者向けに128~255が利用可能

画像タイプ(フィールド3)

下位3ビットで列挙され、4ビット目はRLEのフラグとして使用されます。可能な値には以下のようなものがあります。

  • 0 画像データが存在しない
  • 1枚の非圧縮カラーマップ画像
  • 2 非圧縮トゥルーカラー画像
  • 3 非圧縮グレースケール画像
  • 9 ランレングス符号化されたカラーマップ画像
  • 10ランレングス符号化されたトゥルーカラー画像
  • 11 ランレングス符号化されたグレースケール画像
  • 32ハフマンデルタランレングス符号化カラーマップ画像
  • 33ハフマンデルタランレングス4パス四分木型プロセス符号化されたカラーマップ画像

画像タイプ 1 および 9: ピクセル深度の値に応じて、画像データ表現は、ピクセルの色を定義するカラーマップの 8 ビット、15 ビット、または 16 ビットのインデックスになります。画像タイプ 2 および 10: 画像データはピクセル色の直接表現です。ピクセル深度が 15 ビットおよび 16 ビットの場合、各ピクセルは色ごとに 5 ビットで保存されます。ピクセル深度が 16 ビットの場合、最上位ビットは透明度用に予約されます。ピクセル深度が 24 ビットの場合、各ピクセルは色ごとに 8 ビットで保存されます。32 ビットのピクセル深度は、追加の 8 ビットのアルファ チャネルを定義します。画像タイプ 3 および 11: 画像データは、グレースケール データの直接表現です。このタイプの画像のピクセル深度は 8 ビットです。

カラーマップの指定(フィールド4)

3 つのサブフィールドがあります。

  • 最初のエントリインデックス(2バイト):ファイルに含まれる最初のカラーマップエントリのインデックス
  • カラーマップの長さ(2バイト):ファイルに含まれるカラーマップのエントリ数
  • カラーマップエントリサイズ(1バイト):カラーマップエントリあたりのビット数

画像によって実際にカラーマップ全体が使用されない場合は、最初のエントリ インデックスをゼロ以外にすることで、ファイル内のカラーマップの必要な部分のみを保存できます。

画像仕様(フィールド5)

6 つのサブフィールドがあります。

  • X原点(2バイト):原点が左下にあるディスプレイの左下隅の絶対座標
  • Y原点(2バイト): X原点と同じ
  • 画像の幅(2バイト): ピクセル単位の幅
  • 画像の高さ(2バイト):ピクセル単位の高さ
  • ピクセル深度(1バイト):ピクセルあたりのビット数
  • 画像記述子(1バイト):ビット3~0はアルファチャンネルの深度、ビット5~4はピクセルの順序、ビット7~6はデータストレージのインターリーブを示す[3]

画像記述子:

  • ビット3-0はアルファチャンネルの深度を指定します
  • 画像記述子バイトのビット 4 は、設定されている場合、右から左へのピクセル順序を示します。
  • ビット5は上から下の順序を示します。それ以外の場合、ピクセルは下から上、左から右の順序で格納されます。
  • イメージ記述子バイトのビット 7 ~ 6 は、データ ストレージのインターリーブ モードを示します。

データ保存インターリーブモード:

  • 0 なし
  • 1 双方向(偶数/奇数)インターリーブ
  • 2 4ウェイインターリーブ
  • 3 8ウェイインターリーブ/予約済み

画像とカラーマップデータ

フィールド番号長さ分野説明
6画像IDの長さフィールドから画像ID識別情報を含むオプションのフィールド
7カラーマップ指定フィールドからカラーマップデータカラーマップデータを含むルックアップテーブル
8画像指定フィールドから画像データ画像記述子に従って保存される

開発者エリア(オプション)

TGA 仕様のバージョン 1.0 は非常に基本的なものであり、多くの開発者はより多くの情報を保存する必要があり、そのため、アプリケーションに固有の追加セクションをファイルに追加することを選択しました。[引用が必要]

仕様バージョン2.0では、これらのアプリケーション固有の拡張機能/追加機能は開発者領域でサポートされます。仕様に関係するのは開発者領域のオフセットとサイズのみで、開発者は自由に開発者領域に任意の機能を追加できます。

TGAデコーダが開発者エリア内の情報を解釈できない場合、通常はその情報は別のアプリケーションによって作成されたものとみなされるため、無視されます。開発者エリア内のデータがアプリケーションと互換性があるかどうかを判断するロジックをアプリケーションに組み込むことが推奨されます。そのための1つの方法として、ファイルフッターのソフトウェアIDを確認することが挙げられます。

拡張エリア(オプション)

フィールド番号長さ分野説明
102バイト拡張サイズ拡張領域のサイズ(バイト単位、常に495)
1141バイト著者名著者名。使用しない場合は、バイトはNULL(\0)またはスペースに設定する必要があります。
12324バイト著者コメントコメントは4行で構成され、各行は80文字とNULL文字で構成されます。
1312バイト日付/時刻スタンプ画像が作成された日時
1441バイトジョブID
156バイト仕事時間ファイルの作成に費やした時間、分、秒(請求用など)
1641バイトソフトウェアIDファイルを作成したアプリケーション。
173バイトソフトウェアバージョン
184バイトキーカラー
194バイトピクセルアスペクト比
204バイトガンマ値
214バイト色補正オフセットファイルの先頭から色補正テーブルまでのバイト数(存在する場合)
224バイト切手オフセットファイルの先頭から切手画像までのバイト数(存在する場合)
234バイトスキャンラインオフセットファイルの先頭からスキャンラインテーブルまでのバイト数(存在する場合)
241バイト属性タイプアルファチャンネルを指定します

TGAファイルにフッターが含まれている場合、それはTGAバージョン2のファイルである可能性が高いです。フッターはファイルの最後の26バイトで、そのうち最後の18バイトは定数です。

フィールド番号長さ分野説明
284バイト拡張オフセットファイルの先頭からのオフセット(バイト単位)
294バイト開発者エリアオフセットファイルの先頭からのオフセット(バイト単位)
3016バイトサイン「TRUEVISION-XFILE」が含まれています
311バイト「.」が含まれています。
321バイトNULを含む

仕様の不一致

Truevision テクニカル ガイドの付録 C から抜粋した TGA ファイル形式仕様の古いバージョンでは、ランレングス エンコード (RLE) パケットが走査線をまたぐ可能性があることが次のように説明されています。「ランレングス パケットの場合、ヘッダーの後に単一のカラー値が続き、この値はヘッダーで指定された回数だけ繰り返されると想定されます。パケットは走査線をまたぐ場合があります(1 つの行で始まり、次の行で終了する)。」

しかし、TGA v2.0 仕様の 24 ページには、正反対のことが述べられています。「ランレングス パケットは、複数のスキャン ラインのピクセルをエンコードしてはなりません。1 つのスキャン ラインの末尾と次のスキャン ラインの先頭に同じ値のピクセルが含まれている場合でも、これら 2 つは別々のパケットとしてエンコードする必要があります。言い換えると、ランレングス パケットは、1 つのラインから別のラインに折り返してはなりません。」

そのため、TGAリーダーは、走査線をまたぐRLEデータパケットを処理できる必要があります。これは元の仕様の一部であるためです。ただし、TGAファイルを保存(作成)する際には、新しいv2.0 TGA仕様に準拠するために、RLEデータパケットを走査線境界に制限する必要があります。

参考文献

  1. ^ .tga MIMEタイプはIANAに登録されていません
  2. ^ James D. Murray、 William vanRyper(1996年4月)。『Encyclopedia of Graphics File Formats, Second EditionO'Reilly。ISBN 1-56592-161-5. 2014年3月7日閲覧
  3. ^ ab "Truevision TGAª — ファイルフォーマット仕様 — バージョン 2.0" (PDF) .
  4. ^ 「Truevision TGA バージョン 2.0」。デジタル保存米国議会図書館。2005年2月24日。 2021年6月8日閲覧
  • TGA仕様 – Truevisionテクニカルガイドから引用したファイル形式の以前のバージョン
  • TrueVision TGA 2.0 適合スイート – 例
  • TGA フォーマット仕様 - 拡張画像タイプ/記述フラグを含む
「https://en.wikipedia.org/w/index.php?title=Truevision_TGA&oldid=1319925263」から取得