【実施例】
【0013】
プログラマブル・パラメトリック(パラメータ)発生器エンジンは、テスト・パターンの変換場所(ロケーション)及び振幅をプログラム可能にすることにより、固定ステート・マシンのアルゴリズム・ベースのFPGA発生器の概念を拡張している。この方法において、順応性のある1つのエンジンは、多くの固定エンジンに置き換わる。現在及び将来に必要となるパターンの観点から、いくつかの異なる形式が普及しているので、発生器内の特定のエンジンを異なる必要性に合うように設計する。
【0014】
図1は、本発明の実施例によりテキスト定義テスト・パターンを発生する装置のブロック図である。プログラマブル・テスト・パターン発生器100は、1つ以上のテキスト・ベースのパターン定義ファイルを含んでいる。単一のかかるファイル(入力手段)110が
図1に示されており、いくつかの実施例において、これらはXMLファイルでもよいが、他のマークアップ言語も使用できる。更に他の実施例では、任意のテキスト・ベースのファイルを定義ファイル110に使用できる。XMLファイルの如きマークアップ言語を用いるのが便利である。その理由は、かかるファイルの全体フォーマットがパターン定義用のファイルに用いるのに適するためである。さらに、いくつかの無料又は安価なXMLエディタをシステム・プログラマが利用でき、定義ファイル110の作成及び編集が容易になる。定義ファイル110は、操作者が読み取り可能な文字テキスト及び数値を含んでいる。
【0015】
テスト・パターン・プログラム120が定義ファイル110を分解しデコードする。このテスト・パターン・プログラム120は、ASIC又はプログラマブルFPGAなどのハードウェア、又は、適切なプロセッサで動作するソフトウェアにより実現できる。スキーマ・ファイルの規格により定義ファイル110を構成する。このスキーマ・ファイルは、詳細に後述するように、テスト・パターンを記述するのに用いるXML
のタグ
及びアトリビュート
(attribute=属性)の特定の組合せを定義して、テスト・パターンを記述する。
【0016】
テスト・パターン・プログラム120は、スキーマに組み込まれた同じ規則により定義ファイル110を開き、分解し、解釈して、パラメトリック発生器130内のメモリ蓄積場所又はレジスタにデータを書き込む。パラメトリック発生器130は、プログラムされたFPGA、若しくは、プログラムされた汎用プロセッサ又は特定用途プロセッサにより同様に実行できる。ほとんどの場合、テスト・パターン発生器100は、ラック又は「デスクトップ」に挿入されるが、携帯型又はポータブル型としても同様に実現できる。
図1において、パラメトリック発生器130内のメモリ132を単一のメモリとして示すが、実際には、メモリ132は、テスト・パターン発生器の複数の領域に分布させてもよい。
【0017】
実際には多数の独立したエンジンを含んだ出力エンジン134は、テスト・パターン発生器100で動作して、表示器150に特定のテスト・パターンを発生する。この表示器150は、テスト・パターン発生器100からのテスト・パターン信号を受けて、表示器の表示部分154内にテスト・パターンのイメージ152を発生する。この説明は、表示器150にテスト信号を供給するとしているが、上述のビデオ装置の任意の形式に対して本発明の概念を用いて、テスト信号を発生できる。さらに、この記述は、一般に、表示器150用のテスト・パターン信号の「アクティブ」部分、即ち、表示部分154に見えるテスト・パターン信号の部分を発生することを述べているが、本発明の実施例は、テスト・パターン信号の他の部分を発生してもよい。例えば、テスト・パターン信号は、信号のアクティブ部分外のブランキング領域内の同期及びデータの情報を追加的に含んでもよい。本発明の実施例を用いて、ここで開示した概念により、同期又は他のデータを発生することもできる。
【0018】
テスト・パターン発生器100は、任意形式で実現できるユーザ・インタフェース140も含んでいる。図示の実施例において、2行のテキスト表示142は、テスト・パターン発生器100で動作するメニュー・プログラムからの情報を表す。制御ボタン144により、ユーザは、テスト・パターン発生器が表示器150に送る最終的なテスト・パターン信号を含むテスト・パターン発生器100の動作を制御できる。ユーザ・インタフェース140により、ユーザは、例えば、現在のテスト・パターン、サイズ、色(カラー)空間、ラスタ構造(プログレシブ、飛び越し走査)及び動作モードを設定できる。いくつかの実施例において、専用機能を特定するボタンがユーザ・インタフェース140の一部でもよい。例えば、テスト・パターン・ボタン(図示せず)は、カラー・バー、線形性、フラット・フィールドなどの種々の標準テスト・パターンを循環して選択するものでもよい。
【0019】
ユーザにより選択されると、テスト・パターン発生器100の所望動作パラメータをテスト・パターン・プログラム120に提供するので、適切なデータをパラメトリック発生器130のメモリ132にロードして、最終的に、要求されたビデオ・フォーマットで所望テスト・パターンが表示器150に現れる。
【0020】
図2は、本発明の実施例によりパラメトリック発生器130内に組み込まれるパターン・エンジンの例のブロック図である。
図2には、3個の個別のパターン・エンジンを示すが、数個以上のエンジンを設けてもよい。ゾーン・プレート・エンジンを別個に示し、いくつかの実施例において、その機能が他の図示したエンジンと異なっている。図示したエンジンは、レベル・エンジン210、パルス・エンジン220及び傾斜エンジン230を含んでいる。ゾーン・プレート・エンジンは、符号240で示す。これら3個のメイン・エンジンの各々は、個別の垂直及び水平のメモリを有し、パラメトリック・エンジン・メモリと呼ぶ。さらに、エンジン210、220及び230の各々は、セグメント・プロセッサ及びフィルタを含み、これらの機能は、
図1及び
図2を参照して説明する。
【0021】
エンジン210、220、230及び240からの出力は、コンバイナ260にて組合される。実際には、これらエンジン210、220、230及び240の各々からの出力は、詳細に後述するように、互いに単に加算される1組の値である。リミッタ270は、エンジン210、220、230及び240の全ての出力の組合せが、選択されたパターン及びモードに対して表示器150が受け入れ可能な最小値又は最大値を確実に超えないようにする。
【0022】
図2に示すテスト・パターン発生器の個別のエンジンを調整して、レベル・エンジン210は、表示器150の表示部分154の異なる複数の平面領域の間で遷移を有する信号を形成する。カラー・バーは、一般的な例である。標準カラー・バーのパターンは、8個の垂直バーを有し、各バー領域内は均一な信号である。よって、パターン発生器100の出力は、スクリーンの幅の8分の1で一定であり、新たなカラー(色)に遷移し、8分の1の幅にわたって保持し、変化したりする。従来装置においては、複数のカラーを定義するレベルと、これらの間の遷移点の水平位置は、所定標準に対して、FPGA内でハードコード化される必要がある。本発明の実施例において、水平ラインの個別のセグメントと8個のバーをみなす。各セグメントをプログラムして、所定場所にて開始し、あるレベルにする。カラー・バーを作成するために、テスト・パターン・プログラム120は、パラメトリック発生器130をプログラムして、白のセグメントを発生し、次に、黄色のセグメントを発生し、シアンのセグメントを発生し、以下同様にして、ビデオの1ラインを形成する。この設計特徴の直接的な利点は、任意のフォーマット、モード又はラスタ・サイズに対して、又は、ビデオのサイズ又はフォーマットに係わらず、定義ファイル110内の単一のテスト・パターンを用いることができる。例えば、高分解能及び標準定義フレーム・サイズの両方に同じカラー・バー・テスト・パターンを用いることができる。これは、絶対サイズ(例えば、80ピクセル)ではなく、相対サイズ幅(例えば、スクリーンの1/8)に基づいて、カラー・バー用のカラー遷移が発生するためである。
【0023】
レベル・エンジン210の第1ブロックからの遷移がステップとして実現される。このステップをレベル・エンジン・フィルタ218によって濾波して、近似形状のエッジを作って、現在選択されているビデオ・フォーマットに合わせる。これらフィルタは、テスト・パターン・プログラム120によりプログラム可能であり、その形状を各アプリケーション用に調整できる。いくつかの実施例おいて、エッジを濾波しないで、オプションとするのが望ましい。
図3A及び3Bに示す値は、濾波を行う前の値の例である。
【0024】
標準カラー・バーを作成するために、わずか8セグメントが必要である。いくつかのカラー・バー信号は、ラスタの異なるラインでいくつかのパターンを必要であるので、いくつかの個別のライン定義を用いる。合理的に複雑なパターンを可能にするために、本発明の実施例を導入すると、レベル・エンジン210は、各々が32セグメントまでの32個の独自のラインをサポートする。勿論、他の導入も、本発明の要旨の範囲内で可能である。これらセグメントは、レベル・エンジン210の水平メモリ・ブロック214内に蓄積される。テスト・パターン・プログラム120(
図1)は、例えば、レベル・エンジンである出力エンジンのメモリ・ブロック212、214内にデータを蓄積する処理でもよく、又は、データを蓄積する他の処理でもよい。いくつかの実施例において、エンジンの垂直及び水平の両方のメモリは、二重バンク・メモリとして実現でき、これにより、前のテスト・パターンを表示器150に示すことができる一方、テスト・パターン発生器100は、新たに選択したパターンをプログラムする。単一バンクの実施例は、代わりに黒又は他のディフォルト信号を表示器150に示すことができる一方、新たなパターンをプログラムする。新たなパターンがメモリ212、214にプログラムされる期間中、二重バンク・メモリがない実施では、テスト・パターン信号が中断する。
【0025】
ビデオ・ラインの数を定義した後、本発明の実施例は、テスト・パターン信号のどの単一ライン又は複数ラインでこれらが表示されるかを特定する。この機能に対して、実施例では、レベル・エンジン210(及び他のエンジン)は、垂直ルックアップ・テーブルを用いる。この例において、このエンジンには32個の独自の可能なラインがあるので、テスト・パターン信号の各ラインは、32個の定義済み信号ラインの任意のものを指示できる。1080個のライン・テスト・パターン信号では、各ラインは、定義された32個のラインの任意のものを指示できる。垂直メモリ212及び水平メモリ214が非常に小容量で、パラメトリック発生器130を実現するためにFPGAを用いる本発明の実施例は、FPGAの内部のメモリ・ブロックとして経済的に実現できる。
【0026】
上述の実施例では、水平メモリ及び垂直メモリ内にコンパクトなセグメント及びライン記述を作成するようにXML入力を解釈する処理として説明したが、同じ又は類似のXML記述を解釈して、メモリを一杯にして、所望出力のピクセル値による実際のピクセルの1ライン以上を含むようにすることも可能である。すなわち、パラメトリック発生器130(
図1)は、メモリ(図示せず)内の個別ピクセルを発生して、順次出力し、テスト・パターンを生成する。
【0027】
本発明の実施例において、エンジン210では、セグメント・プロセッサ・ブロック216は、ライン・カウント及びピクセル・カウントを用いて、垂直メモリ212及び水平メモリ214から読み出し、エンジンの出力の未濾波又は事前濾波されたバージョンを生成する。例えば、水平ブランキング期間中、レベル・エンジン210のセグメント・プロセッサ216は、垂直メモリ212を読み出し、どのライン定義を次のラインに用いるかを決める。次に、セグメント・プロセッサ216は、そのライン用の最初の3つのセグメントを内部バッファ(図示せず)に読み出す。アクティブ・ラインの開始が生じるとき、セグメント・プロセッサ216は、現在のピクセル・カウントを第1セグメント開始値と比較する。値が一致すると、セグメント・プロセッサ216は、第1セグメント用のレベルを出力(又はフィールド218)に供給し、バッファから他のセグメントを読取る。次のピクセルにて、セグメント・プロセッサ216は、現在のピクセル・カウンタと第2セグメントの開始値との比較を開始する。これら値が一致すると、第2セグメント用のレベルを出力に供給する。最後のセグメントが現在のラインの終点で終わるまで、この処理を繰り返す。この方法において、各ラインの各セグメントは、任意の長さ及び振幅のレベルを定義できる。特定実施例において、バッファのサイズを調整し、3つのセグメントを蓄積する。これにより、追加のメモリ読出しをすることなく、短いセグメントを処理できる。
【0028】
レベル・エンジン210の1つのカラー・チャネルの出力例を
図3A及び3Bに示す。これら図を参照すると、セグメント0がピクセル番号0で開始し、
図3Bが開始サンプル場所を示す。
図3Bのレベルの列は、セグメント0の出力レベルが一定のゼロ値に留まることを示し、これを
図3Aにも示す。セグメント1は、ピクセル番号100で開始し、レベルが4000にジャンプするが、このレベルを400個のピクセルに対して維持する。各セグメントは、3つの異なるレベルに対して値を定義するが、各レベルが各カラー・チャネル用である。テスト・パターン信号の効果は、この例で発生した水平ラインの最初の100個のピクセルが第1の静的な色であり、同じラインの次の400個のピクセルが他の色に変化し、これも静的である。この色発生処理は、最終セグメント及びラインの終わりを通じて継続する。この例において、4個のセグメントのみを示したが、上述の実施例においては、32個の異なるセグメントまでを各ラインに対して定義できる。
【0029】
図2を参照する。パルス・エンジン220からの出力を独立して用いるか、レベル・エンジン210の出力に加算して、レベル・エンジンが発生したカラー出力からその変形、特に、パルスとしてのテスト・パターン信号に現れる変更を形成する。パルスは、典型的な形状であり対称であるが、装置内にて所望に変更できる。パルス・エンジン220は、上述のレベル・エンジン210と同じ原理に従うが、例外は、各セグメントが、ステップからレベルの代わりにパルスに対して場所及び振幅を定義することである。このエンジン220を用いて、コンバージェンスのようなテスト・パターンでの信号を生成する。なお、コンバージェンス・パターンは、水平ライン及び垂直ラインの格子である。コンバージェンス・パターンにおいて、水平ラインは、レベル・エンジン210から作成するが、垂直ラインは、各ラインにおける一連のパルスである。
【0030】
実施例において、パルス・エンジン220は、8個までの独自のラインを生成し、各ラインが32個までのパルスであるが、当然、他の実施も可能である。レベル・エンジン210と同様に、パルス・エンジン220の出力には、プログラマブル・フィルタ228があり、その独自の出力信号を成形する。これにより、ビデオ・システム・テスト条件に合うのに必要な種々の成形を実現できる。
【0031】
パルス・エンジン220のセグメント・プロセッサ226は、レベル・エンジン210のセグメント・プロセッサ216と同様に動作する。しかし、違いは、パルス・エンジン220の特定のセグメントが単一のピクセル幅パルスを定義し、振幅パラメータがパルスの長さを記述する。各ラインにて、パルス・セグメント・プロセッサ226は、現在のピクセル・カウントを、水平メモリ24から読み出したセグメント開始値と比較する。ピクセル・カウンタが規定セグメント開始値に達すると、セグメント・プロセッサ226は、規定された振幅にて、1ピクセル幅のパルスを出力する。さらに、全てのセグメントが完了するまで、セグメントを処理して、ラインが完了する。
【0032】
図4A及び4Bは、パルス・エンジン220の1つのカラー・チャネルの出力例を示す。
図4Bから判るように、出力は、セグメント0でゼロから始まる。ピクセル・カウントが100にて、セグメント1は、単一ピクセル幅のパルスの振幅が3000であると記述している。そして、ピクセル・カウントが500にて、セグメント2は、
図4Aにも示すように、振幅が3000の負のパルスを記述している。
図4Bに示す値は、事前濾波済みの値である。テスト・パターンに対するパルスの終了効果は、色を迅速に変化する非常に狭い領域を有することである。多数のパルスが垂直に又は斜めに整列すると、テスト・パターンがラインとして現れる。各ラインにパルスが生じる位置を指定することにより、テスト・パターン設計者は、テスト・パターンの何処にラインが現れるかを定義できる。
【0033】
再び
図2を参照する。傾斜
エンジン230は、他とわずかに異なっている。レベルの代わりに、このエンジンを増分値又は減分値によりプログラムする。よって、各セグメントは、開始場所、典型的にはピクセルで測定された開始場所を有し、その量は、
図5A又は5Bに示すように、連続する各ピクセルで増分又は減分する。次のセグメントにて、傾斜が変化できる。よって、プログラムするには、平坦なスポット(即ち、一定の色出力)は、ゼロの傾斜を単にプログラムする。傾斜エンジン230を用いて、システムの分解能、レンジ及び線形性をテストする線形傾斜の如き信号を作る。非常に大きな傾斜により、長く遅い昇り傾斜の後に元に戻るように、レベルを迅速にステップ・アップ又はダウンするようにプログラムできる。他のエンジンのように、プログラマブル・フィルタ238により傾斜エンジン230の出力を処理する。これを行って、特に大きな増分を用いた場合に、信号の帯域を適切に制限できる。
【0034】
傾斜エンジン230のセグメント・プロセッサ236は、上述の他のセグメント・プロセッサと同じに動作するが、各セグメントは、開始ピクセル及び増分値を記述する。傾斜セグメント・プロセッサ236が現在のピクセル・カウントを第1セグメントの開始値と比較するときに、処理が開始する。それらが一致したとき、セグメント・プロセッサ236は、増分値を現在の出力値に加算する。これは、各ピクセルにて増分の加算を持続する。現在のピクセル・カウンタが次のセグメントの開始値に一致したとき、新たなセグメントが開始するまで、又はラインの終わりに達するまで、次のセグメント用の増分を各連続ピクセルにて出力に加算する。他のエンジンと同様に、新たなセグメントが開始する各時に、他のセグメント・データをバッファに読み出して、エンジンによる後での使用の準備ができる。そして、セグメント・プロセッサは、最終セグメント及びビデオ・ラインの終わりまで続く。傾斜エンジン230の出力例を
図5A及び5Bに示す。これらは、上述と類似で、傾斜エンジンの事前濾波済み値を示している。
【0035】
図2に示すテスト・パターン発生器の実施例がゼロ・プレート・エンジン240を含むと言うことは、本発明の実施例を従来のテスト・パターン発生器と合わせて使用できることを意味する。他の実施例において、所望のゾーン・プレート・パターンを生成するために上述のエンジン210、220、230の1個以上が用いる定義から、ゾーン・プレート・ビデオ・テスト・パターンを発生できる。
【0036】
上述の如く、コンバイナ260は、多数のエンジンからの出力を組合せて、共通の出力を発生する。実施例において、レベル・エンジン210からの出力は、テスト・パターン信号が解釈した信号のオフセットを含む数であり、表示器150に黒信号を発生する。よって、エンジン210の出力は、黒又は他の所望オフセットを含んでいる。他のエンジン220、230及び240の出力は、2つの相補形式、又は正及び負の数を許容する他の形式でもよく、比較的容易にコンバイナ260が複数エンジンからの出力を互いに加算できる。多くのテスト・パターンに対して、パルス・エンジン220、傾斜エンジン230及びゾーン・プレート・エンジン240の出力がゼロであり、レベル・エンジン210の出力がテスト・パターン発生器130の全体のテスト・パターン信号を発生する。いくつかの実施例において、ゾーン・プレート・エンジン240を用いるとき、レベル・エンジン210は、50%のグレー・フィールドを出力し、ゾーン・プレートのバイポーラ出力をベースと加算又は減算して完全な出力信号を生成する。
【0037】
かかる方法で、エンジン210、220、230、240の出力を組み合わせることにより、信号、マトリクス及び付加を組合せる2つの方法が可能となる。マトリクス形式において、種々のエンジンの垂直メモリは、レベル・エンジン、パルス・エンジン及び傾斜エンジンのラインをイメージの異なる部分に整列できる。よって、例えば、SMPTERP219カラー・バーにおいて、レベル・エンジン210が発生したバー信号を有するいくつかのラインがあり、傾斜エンジン230が発生した傾斜を有する他のラインもある。
【0038】
付加形式では、エンジンの出力は、同じラインにあり、互いに加算される。例えば、パルスとイメージのバー部分とで、ラインの初め近くに正のパルスが存在する。ラインの約1/2をカバーするバーが存在する。このバーの期間中、負のパルスが存在する。この信号を作るために、レベル・エンジン210にてバーを生成し、パルス・エンジン230にて2個のパルスを生成する。垂直メモリは、これら定義信号を、出力の同じラスタ・ラインに存在するレベル・エンジン210及びパルス・エンジン230の両方から選択する。
【0039】
上述の如く、また、
図1を参照すると、テスト・パターン発生器100が最終的に出力したテスト・パターン信号は、定義ファイル110にて最初に定義される。これは、次に、テスト・パターン・プログラム120が読み出す。テスト・パターン・プログラム120は、種々のデータ及びコードをパラメトリック発生器内の適切なメモリ又は蓄積場所に入れることにより、テスト・パラメトリック発生器130を「プログラム」する。パラメトリック発生器130は、その中のプログラムしたライン及びセグメントのパラメータを解釈して、パターン信号の各ラインを実時間で生成する。
【0040】
図6A及び6Bは、共にXMLファイル111の例を示し、これは、本発明の実施例でのテスト・パターン・テキスト・ファイル110として使用する。特に、XMLファイル111は、SMPTERP219テスト・パターンを記述する。上述の如く、特定ファイル・フォーマット及び構造は、本発明に無関係であるが、XMLファイルには特に有用な選択を行う特性がある。例示の定義ファイル110内の総べての文字を読むことができるが、この特定例では、全てアルファベット及び数字で示している点に留意されたい。
【0041】
図6A及び6Bを参照する。ビデオ・テスト・パターンを定義するとき、ライン及びラインに沿うピクセルの如きイメージの場所は、特定的に(例えば、ライン50)、又は、包括的に最大値に対する分数又はパーセント(例えば、1/2又は50%)のいずれかで定義できる。イメージを任意所定の分解能でレンダリングするとき、テスト・パターン発生器120が包括的な場所項目を特定のピクセルの正確な場所に変換する。
【0042】
同様に、信号の定義に用いる色は、任意の色空間(例えば、YCbCr、GBR/RGB又はXYZ)及び任意のビット分解能(例えば、8ビット、10ビット又は12ビット)にて、特定色値(例えば、gbr10=「940,64,64」は緑で、10ビットRGB値として定義される)又は小数又は最大値のパーセント(例えば、rgb=「1.0,0,0」又はrgb=「100%,0%,0%」が赤)として定義できる。
【0043】
再び、
図1を参照する。
図7及び8に示す処理の例を参照して、テスト・パターン・プログラム120の詳細について説明する。一般に、任意所定テスト・パターン定義ファイル110をユーザが選択すると、テスト・パターン・プログラム120がファイルを分解し、任意の汎用定義場所をフォーマット特定場所に変換し、必要ならば信号内で(一般的又は特定的に)定義された任意の色を選択された出力色空間に変換し、パラメトリック発生器130内の出力エンジン134をプログラムして、選択した信号を発生する。オプションとして、1組の事前定義の放送用フィルタの1個、又は定義ファイル110にて定義された1個以上のカスタム・フィルタを用いて、この信号を濾波して、リンギングを防ぐ。
【0044】
図7は、テスト・パターン・プログラム120が実行する処理の例を示す流れ
図300である。この処理の例は、図示した正確な順序で実行する必要はない。流れ
図300は、処理310で開始し、テスト・パターン定義テキスト・ファイル110を開く。次に、処理320にて、どのテスト・パターンを表示するかのユーザ選択に応じて、テスト・パターン発生器100の現在の状態を取込む。
【0045】
処理330において、定義ファイル110の定義を解釈し、適切な水平ライン用のセグメントをパラメトリック・エンジン・メモリに配置し、特定名をそのラインに関連させる。この処理の詳細は、
図8を参照して後述する。水平欄をパラメトリック・エンジン・メモリに定義した後、処理340にて、更にラインを定義する必要があるかを判断する。
【0046】
処理350は、テスト・パターン定義ファイル110の追加部分を解釈して、意図したテスト・パターンのラインを、処理330でパラメトリック・エンジン・メモリにて予め定義されたラインの1つと関連させる。上述の如く、レベル・エンジン210について説明した例では、パラメトリック・エンジン・メモリに32個の異なるラインを定義できるので、処理350は、32個の定義済みラインの1つをテスト・パターンのラインの各々に割り当てる。他の実施では、パラメトリック・エンジン・メモリに一層多くの又は少ないラインを蓄積してもよい。
【0047】
本発明の実施例の処理を更に詳細に説明する。実施例において、<pattern>タグ(
図6A)内の「lines」(ライン)又は「linesX」(ラインX)アトリビュートの1つ以上により所望テスト・パターンの垂直場所を特定する。ここで、「X」は、垂直ラスタ・サイズ(例えば、480、576又は1080)の選択である。「lines」アトリビュートのこれら変形の各々は、ライン値又はライン・レンジ(ハイフォンで分離した開始及び終了のライン値、例えば、10−20)にてコンマで分離したリストを含んでいる。「%」記号を用いたラスタ・サイズのパーセントとして、又は分数標記を用いたラスタ・サイズの分数(例えば、5/8)として、絶対ラインの単位でライン値とすることができる。
【0048】
ラインはゼロ・インデックスなので、1920×1080信号の頂部端部から底部端部までのラインは、0〜1079の番号が夫々付される。この<pattern>タグが<frame>タグ内に含まれていれば、ライン値は、アクティブ・ビデオ・ラインの完全なレンジ内に入る。<field1>又は<field2>タグのコンテキスト内でラインが定義されれば、ライン値は、これら各フィルタのアクティブ・ビデオ・ライン内に入る。例えば、以下の表1に示すように、<frame>タグのコンテキスト内で定義されたlines="2"は、アクティブなピクチャ・ライン2であり、<field1>タグのコンテキスト内で定義は、アクティブなピクチャ・ライン3であり、<field2>タグのコンテキスト内で定義は、アクティブなピクチャ・ライン4である。さらに、<signal_polarity>タグは、「line」及び「lineX」アトリビュートを用い、これらは、「lines」及び「linesX」アトリビュートと同じ規則に従うが、ラインのレンジではなく単一のラインのみを特定できる。
【0049】
表1:垂直ラインのマッピング
【表1】
【0050】
ラインをラスタ・サイズ定義の分数又はパーセントから計算すると、全ての計算は、最も近い完全ラインに端数を切り捨てる。上述の実施例において、ラインのレンジの開始を常に含める(開始ラインが影響される)が、特定のライン番号が与えられるとレンジの終わりが含まれ、分数又はパーセントが与えられるとレンジの終わりが含まれない(レンジの終わりが影響されない)。これは、<pattern>タグが一連の分数又はパーセントのスパンとして定義されると(例えば、0−50%に50%−100%が続く)、領域が重なることを避ける。特定実施例において、2個の<pattern>タグが互いに重なると、信号定義で後に現れるいずれかのタグが上位になる。
【0051】
<pattern>タグ用にラインを定義しなければならないとき、「ライン」アトリビュートの5個の変形の1つのみを定義する必要があるが、望むならば、多数のアトリビュートを定義してもよい。所定のラスタ・サイズにてテスト信号が発生するとき、「linesX」アトリビュートが定義されると、これらラインのマッピングを用いる。なお、Xは、出力ラスタの高さに正確に一致する。「linesX」アトリビュートが、要求された出力ラスタ・サイズに正確に一致するように定義されなければ、「lines」によるライン・マッピング(高さが特定されない)を代わりに用いる。それに明示的にマッピングされた所エンジンからのコンテキストを有さない任意のラインは、そのエンジン用のブランク・コンテキストがディフォルトとなる。
【0052】
図6A及び6Bに示す定義ファイル110の特定のXML例は、どのように特定テスト・パターンをコード化するかの一例である。
【0053】
図7を再び参照する。所望テスト・パターンのラインがマッピングされた後、処理360は、定義ファイル110にて定義された各ラインが割り当てたかを確認する。処理370は、パラメトリック発生器130内に適切なフィルタを配置してテスト・パターン信号の遷移を適切に定義するので、これらは、特定のテスト・パターン及び表示形式の規格内となる。最後に、処理380は、プログラムが完了したこと、及び、表示器150に表示されるテスト・パターン信号として所望テスト・パターンを出力する準備ができたことの指示を送るか、そうでなければ、テスト・パターン発生器100内の状態を設定する。
【0054】
図8は、
図7の処理330に用いる処理例を示す流れ図であり、パターン発生器130のパラメトリック・エンジン・メモリ内の1組の水平ライン定義を作る。
【0055】
流れ
図400は、処理410から開始し、所望テスト・パターン用のパラメータを取り込む。上述のように、ユーザ・インタフェース140又はユーザ入力の他の形式から所望テスト・パターンを設定できる。テスト・パターン信号のパラメータは、表示の分解能を含み、例えば、ラインの幅及び数、ビットの深さ、色空間、ラスタ構造を含んでもよい。
【0056】
実施例において、処理420は、現在のライン(セグメント0で開始する)の次のセグメントの開始位置を評価する。次のセグメントが開始したとき、又はビデオ・ラインの終わりに達したときに、各セグメントが終了する。
図6A及び6Bに示すように種々のセグメント・タグ内の1つ以上の「start」(開始)又は「startX」アトリビュートが水平場所を特定する。なお、「X」は、水平ラスタ・サイズ(例えば、720、1280、1920又は2048であり、他のサイズも可能である)の選択である。「start」アトリビュートのこれら変形の各々は、含まれるセグメントが濾波の前にアクティブである第1ピクセルを特定する。すなわち、レベル・エンジン210にとって、これは、2個のレベルの間の遷移の50%点を表し、パルス・エンジン220にとって、これは、パルスの中心を表す。いくつかの実施例において、これら開始値は、ピクセルの単位で(「px」標記を用いる)、マイクロ秒単位で(「us」標記を用いる)、ラスタ・サイズのパーセント(「%」記号を用いる)として、又はラスタ・サイズの分数(分数標記を用いる。例えば、5/8)として表すことができる。
【0057】
この実施例において、ピクセルがゼロのインデックスであるので、1920×1080信号」左端から右端までのピクセルは、番号0から1919までである。ラスタ・サイズ定義の分数また又はパーセントからピクセルを計算すると、すべての計算は、最も近い完全なピクセルに端数を切り捨てる。2つの近傍のセグメントでの一般的定義の開始アトリビュート(例えば、%又は分数標記)が同じ絶対ピクセル場所を評価すると、全体の前のセグメントに重ならないように、第2セグメントが1ピクセルだけ右にシフトする。いくつかの実施例において、セグメント・タグに対して開始場所を定義するには、「start」(開始)アトリビュートのこれら6個の変形の1個のみを定義する必要があるが、所望ならば、多数のアトリビュートを定義してもよい。所定のラスタ・サイズにてテスト信号を発生するとき、「startX」アトリビュートを定義すると、その開始場所を用いる。なお、「X」は、出力ラスタ幅に完全に一致する。要求された出力ラスタ・サイズに完全に一致する「startX」アトリビュートが定義されないと、「start」が与える開始場所(幅が特定されない)を代わりに用いる。
【0058】
上述の如く、定義ファイル110に代わりのシンタックスを用いても同様な結果を達成できる。
【0059】
処理430は、テスト・パターンのテキスト・ファイルから現在のライン・セグメントの所望色を決定し、エンジン(
図2)の1個のパラメトリック・エンジン・メモリを適切に配置する。色は、符号化した、又は符号化していないYCbCr、GBR、RGB又はXYZ色空間にて特定してもよいし、特定のビットの深さに対して特定してもよいし、認知不能なビットの深さとして記述してもよい。
【0060】
処理440は、現在のラインの現在のセグメント用の色及び開始位置を適切なメモリに配置する。処理450は、テスト・パターン定義ファイル110内に定義された全てのセグメントが配置されたかを確認する。全てのライン定義にて、定義可能な最大数のセグメントに達する必要がなく、任意の未使用のセグメントがプログラム外で残り、無視される。
【0061】
上述は、静的なテスト・パターンについて説明したが、本発明の実施例を用いて、同様に、テスト・パターンの動きと一緒に又はその中で用いてもよい。このモードにおいて、アクティブ・ピクチャは、水平、垂直又は両方に移動できる。よって、ラインの開始での特徴は、スクリーンを横切って移動し、一方のサイドから出て、他方のサイドから再び現れることである。等化の効果は、垂直の動きにも現れる。所定ラインでのアイテムは、上又は下に動き、出て、再び現れる。実際には、これは、定義済みイメージ内のライン及びフレーム周辺で開始点を回転させる。
【0062】
実施例において、垂直の動きに対してこれを達成するには、比較的単純にオフセットをライン・カウンタに加算する。水平動きに対して達成するには、エンジン(
図2)がセグメントを予め読み出して、現在の開始点を含むセグメントを見つける。これを、各ラインにて、例えば、水平ブランキング期間中に行う。これは、特に傾斜に対して課題であり、回路は、セグメントの長さだけセグメントを増分するように操作して、各セグメントが発生した出力レベルを計算しなければならない。ラインの開始出力レベルである現在の開始点に達するまで、各連続したセグメントのレベルを累積、即ち、加算する。
【0063】
信号での動きを可能にする追加的な困難さは、ラインの終わりの適切な整形を確実にすることである。パラメトリック発生器130内のエンジンは、ラスタの左端及び右端に狭いブランキング領域を強いるためにエッジ(端)マスクをプログラム可能にする。これは、動きがアクティブの時に、これら端をフィルタが適切に整形できる。以前の発生器では、望ましくないリンギングを生じる端で、信号を端整形できなかった。
【0064】
上述は、表示用にテスト・パターンを発生することについて説明したが、本発明の概念は、かかる出力に限定されるものではない。例えば、表示の代わりに、最終出力を種々の媒体にプリントするパターンにもできる。一例において、定義ファイル110(
図1)は、高品質紙プリンタに最終的にプリントする「チップ・チャート」用の定義を含むことができる。チップ・チャートは、者品及び印刷の如き分野で一般に使用され、本発明の実施例を用いて特定のニーズに適用するように容易に作成及び変更できる。他の実施例を用いてカラー・モニタ・チャートを作成できるので、コンピュータ・モニタを、モニタ・チャート上に現れる既知のカラー標準に調整できる。本発明の実施例は、スキャン技術にも使用できる。例えば、いくつかのスキャナは、現在のスキャンを基準スキャンと比較する機能を有する。スキャンは比較され、両方のスキャンに共通の要素は、現在のスキャンと一致するように分解されることである。例えば、スキャン台に既知の欠陥がある場合、その欠陥を記述する定義ファイル110を発生できる。次に、スキャンを、発生した欠陥イメージと比較するとき、スキャンを別のスキャンから減算して、その欠陥を含まない変更スキャンを発生できる。
【0065】
別の実施例では、オーディオ出力を発生する。定義ファイルは、所望オーディオの定義を含んでいる。次に、プログラムは、定義ファイルを読み出す。パラメトリック発生器は、例えば、定義ファイルで記述された種々のトーン、出力は及びサウンド期間を表すデータをメモリに配置する。再生期間中、蓄積されたメモリ・パターンをオーディオ・サウンドに変換して、オーディオ増幅器を用いるか又は用いないで、スピーカーなどによりユーザに送る。
【0066】
本発明の概念を用いて、種々の変更が可能なことが理解できよう。
【0067】
本発明のいくつかの実施例を説明し、更に、本発明を説明するためにいくつかの特定の細部を示した。しかし、本発明の要旨に応じて、多くの他の構成も可能である。さらに、本発明を不明瞭にしないために、既知の処理の細部については説明を省略した。よって、図示した特定の実施例に関連して本発明を説明したが、本発明は、これら実施例又は図に限定されるものではない。本発明の要旨を逸脱することなく、種々の変更、変形及び均等が可能である。