(57)【要約】  インターフェースを介してコンピュータとビデオクライアント間のデータ伝送を制御する方法において、コンピュータがインターフェースに１回目のポーリングを行い、インターフェース上のバッファのサイズを測定するステップと、インターフェースから第１のバッファサイズ値を受信するステップと、インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにするステップと、コンピュータがインターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定するステップと、インターフェースから第２のバッファサイズ値を受信するステップと、フレームの伝送間の時間の量を修正するステップとを有している。
2007501985.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ、ビデオクライアント、およびコンピュータとビデオクライアント間のデータ伝送を容易にするコンピュータとビデオクライアント間のインターフェースを有するシステム内で、前記インターフェースは、コンピュータから受信してビデオクライアントに送信されるべきデータフレームを格納するためのバッファを有していて、前記バッファは、それが格納するデータの量によって変化するサイズを有していて、前記インターフェースは、最適バッファサイズを有していて、データ伝送フロー制御を実行する方法は、
コンピュータがインターフェースに１回目のポーリングを行い、インターフェース上のバッファのサイズを測定するステップと、
インターフェースから第１のバッファサイズ値を受信するステップと、
インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにするステップと、
コンピュータがインターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定するステップと、
インターフェースから第２のバッファサイズ値を受信するステップと、
もし第２のバッファサイズ値が最適サイズより大きく、かつ第１のバッファサイズ値より大きいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間を増加させるステップとを有していることを特徴とする方法。
【請求項２】
バッファサイズは、固定サイズのバッファ内の意味があるデータの充満を指すことを特徴とする請求項１に記載の方法。
【請求項３】
コンピュータ、ビデオクライアント、およびコンピュータとビデオクライアント間のデータ伝送を容易にするコンピュータとビデオクライアント間のインターフェースを有するシステム内で、前記インターフェースは、コンピュータから受信してビデオクライアントに送信されるべきデータフレームを格納するためのバッファを有していて、前記バッファは、それが格納するデータの量によって変化するサイズを有していて、前記インターフェースは、最適バッファサイズを有していて、データ伝送フロー制御を実行する方法は、
コンピュータがインターフェースに１回目のポーリングを行い、インターフェース上のバッファのサイズを測定するステップと、
インターフェースから第１のバッファサイズ値を受信するステップと、
インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにするステップと、
コンピュータがインターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定するステップと、
インターフェースから第２のバッファサイズ値を受信するステップと、
もし第２のバッファサイズ値が最適サイズより小さく、かつ第１のバッファサイズ値より小さいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間を減少させるステップとを有していることを特徴とする方法。
【請求項４】
バッファサイズは、固定サイズのバッファ内の意味があるデータの充満を指すことを特徴とする請求項３に記載の方法。
【請求項５】
コンピュータによって実行されるときに、
最初の間コンピュータと通信するインターフェースをポーリングするステップであって、前記インターフェースは、コンピュータから受信するデータフレームを格納するためのバッファを有していて、前記フレームは、ビデオクライアントに送信されるべきものであり、前記バッファは、バッファに含まれているデータの量によって変化するサイズを有していて、前記バッファは、最適サイズを有している、ステップと、
インターフェースから第１のバッファサイズ値を受信するステップと、
インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにするステップと、
インターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定するステップと、
インターフェースから第２のバッファサイズ値を受信するステップと、
もし第２のバッファサイズ値が最適サイズより大きく、かつ第１のバッファサイズ値より大きいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間を増加させるステップとを実行することによってデータ伝送フロー制御を実行するインストラクションを含んでいることを特徴とするコンピュータプログラム製品。
【請求項６】
バッファサイズは、固定サイズのバッファ内の意味があるデータの充満を指すことを特徴とする請求項５に記載のコンピュータプログラム製品。
【請求項７】
コンピュータによって実行されるときに、
最初の間コンピュータと通信するインターフェースをポーリングするステップであって、前記インターフェースは、コンピュータから受信するデータフレームを格納するためのバッファを有していて、前記フレームは、ビデオクライアントに送信されるべきものであり、前記バッファは、バッファに含まれているデータの量によって変化するサイズを有していて、前記バッファは、最適サイズを有している、ステップと、
インターフェースから第１のバッファサイズ値を受信するステップと、
インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにするステップと、
インターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定するステップと、
インターフェースから第２のバッファサイズ値を受信するステップと、
もし第２のバッファサイズ値が最適サイズより小さく、かつ第１のバッファサイズ値より小さいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間を減少させるステップとを実行することによってデータ伝送フロー制御を実行するインストラクションを含んでいることを特徴とするコンピュータプログラム製品。
【請求項８】
バッファサイズは、固定サイズのバッファ内の意味があるデータの充満を指すことを特徴とする請求項７に記載のコンピュータプログラム製品。
【請求項９】
コンピュータ、ビデオクライアント、およびコンピュータとビデオクライアント間のデータ伝送を容易にするコンピュータとビデオクライアント間のインターフェースを有するシステム内で、前記インターフェースは、コンピュータから受信してビデオクライアントに送信されるべきデータフレームを格納するためのバッファを有していて、前記バッファは、それが格納するデータの量によって変化するサイズを有していて、前記インターフェースは、最適バッファサイズを有していて、データ伝送フロー制御を実行する装置は、
インターフェースに１回目のポーリングを行い、インターフェース上のバッファのサイズを測定する手段と、
インターフェースから第１のバッファサイズ値を受信する手段と、
インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにする手段と、
インターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定する手段と、
インターフェースから第２のバッファサイズ値を受信する手段と、
もし第２のバッファサイズ値が最適サイズより大きく、かつ第１のバッファサイズ値より大きいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間を増加させる手段とを有していることを特徴とする装置。
【請求項１０】
バッファサイズは、固定サイズのバッファ内の意味があるデータの充満を指すことを特徴とする請求項９に記載の装置。
【請求項１１】
コンピュータ、ビデオクライアント、およびコンピュータとビデオクライアント間のデータ伝送を容易にするコンピュータとビデオクライアント間のインターフェースを有するシステム内で、前記インターフェースは、コンピュータから受信してビデオクライアントに送信されるべきデータフレームを格納するためのバッファを有していて、前記バッファは、それが格納するデータの量によって変化するサイズを有していて、前記インターフェースは、最適バッファサイズを有していて、データ伝送フロー制御を実行する装置は、
インターフェースに１回目のポーリングを行い、インターフェース上のバッファのサイズを測定する手段と、
インターフェースから第１のバッファサイズ値を受信する手段と、
インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにする手段と、
インターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定する手段と、
インターフェースから第２のバッファサイズ値を受信する手段と、
もし第２のバッファサイズ値が最適サイズより小さく、かつ第１のバッファサイズ値より小さいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間を減少させる手段とを有していることを特徴とする装置。
【請求項１２】
バッファサイズは、固定サイズのバッファ内の意味があるデータの充満を指すことを特徴とする請求項１１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大まかには、ネットワークを通じて通信する装置に関する。特に、本発明は、異なる通信速度でデータを送受信する装置間のデータフロー管理に関する。より詳しくは、本発明は、バッファを監視して、バッファの状態に基づいてデータ伝送を調節することによって、バッファを通じたデータフローを制御することに関する。
【背景技術】
【０００２】
「バス」は、少なくとも２つの電気装置を相互接続している一まとまりの信号であり、それによって、１つの装置が情報を一つ以上の他の装置に伝送することができる。コンピュータおよびコンピューター関連の製品において用いられるバスには、多くの異なるタイプがある。少し例を挙げれば、Peripheral Component Interconnect（ＰＣＩ）バス、Industry Standard Architecture（ＩＳＡ）バスおよびUniversal Serial Bus（ＵＳＢ）がある。バスの動作は、通常、規格によって定められ、これは、さまざまな事柄を規定している。例えば、バスの電気的特性、データがどのようにバスを通じて伝送されるべきか、データ要求を受け取った事をどのように知らせるか等である。バスを用いて作業を実行すること、例えばデータ送信、データ要求等は、一般に「サイクル」の実行と呼ばれる。バスプロトコルの標準化は、バスに接続された装置が異なる製造業者によって製造された場合であっても、このような装置間の効果的な通信を確実にするのを助ける。特定のバス上で用いられるべき装置を製造販売することを望んでいるいかなる会社も、装置が接続されるバスに特有のインターフェースと共にその装置を提供する。特定のバス規格に合わせて装置を設計することは、同じバスに接続された全ての他の装置が異なる製造業者によって製造された場合であっても、装置がこのような他の装置と適切に通信することができることを確実にする。従って、例えば、ＰＣＩバス上で動作させるために設計された内蔵ファックス／モデム（すなわち、パーソナルコンピュータに内蔵）は、ＰＣＩバス上の各装置が異なる製造業者によって製造された場合であっても、ＰＣＩバス上の他の装置にデータを送信し、他の装置からデータを受信することができる。
【０００３】
現在、バスインターフェースを有する様々な形の消費者向け電子装置を受け入れる市場の要求があり、それは、このような装置を、対応するバスインターフェースを有する他の装置に接続させることを可能にする。例えば、デジタルカメラ、デジタルビデオレコーダ、デジタルビデオディスク（ＤＶＤ）、プリンタが、ＩＥＥＥ  １３９４バスインターフェースを用いて利用可能になっている。ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４バスは、例えば、デジタルカメラをプリンタまたはコンピュータに接続させることを可能にし、これにより、カメラによって取得された画像は、プリンタ上で印刷され、またはコンピュータ内に電子的に格納され得る。更に、デジタルテレビも、ＩＥＥＥ  １３９４バスを介してコンピュータまたはコンピュータネットワークに接続することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、いかなる種類のＩＥＥＥ  １３９４インターフェースも有していない多くの装置が存在する。これは、このような装置は、上記のように他の装置と接続することができないという問題を提示する。この問題を克服して、装置に接続性を提供する、切実な必要性がある。さもなければ、ＩＥＥＥ  １３９４バスに接続することができない。
【課題を解決するための手段】
【０００５】
本発明は、インターフェース装置を介してコンピュータからビデオクライアントへのデータの伝送を制御する。インターフェース装置は、送信されたデータフレームをバッファリングし、異なるプロトコルを用いてコンピュータおよびビデオクライアントに伝達する。一実施形態において、本発明は、インターフェースに１回目のポーリングを行い、インターフェース上のバッファのサイズを測定し、インターフェースから第１のバッファサイズ値を受信し、インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにし、インターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定し、インターフェースから第２のバッファサイズ値を受信することによってデータ伝送フロー制御を実行する方法を提供する。もし第２のバッファサイズ値が最適サイズより大きく、かつ第１のバッファサイズ値より大きいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間は増加される。
【０００６】
別の実施形態において、本発明は、インターフェースに１回目のポーリングを行い、インターフェース上のバッファのサイズを測定し、インターフェースから第１のバッファサイズ値を受信し、インターフェース上のバッファにビデオおよびオーディオデータの複数のフレームを送信して、遅延期間が各フレームの送信間に存在するようにし、インターフェースに２回目のポーリングを行い、フレームがインターフェースに送信された後のバッファサイズを測定し、インターフェースから第２のバッファサイズ値を受信することによってデータ伝送フロー制御を実行する方法を提供する。
【０００７】
もし第２のバッファサイズ値が最適サイズより小さく、かつ第１のバッファサイズ値より小さいならば、コンピュータからインターフェースへのフレームの伝送間の遅延期間は減少される。
【０００８】
多くの他の本発明の特徴および効果は、添付の図面を参照しつつ以下の詳細な説明を読むことによって理解されるであろう。
【発明を実施するための最良の形態】
【０００９】
図１を見ると、ブロック図形式で、コンピュータ１００とクライアント１０２間でオーディオおよびビデオデータを伝送するために接続され、バス１０４によってインターフェース１０６に接続された構成要素が示されている。好ましい実施形態におけるコンピュータ１００は、ビデオおよびオーディオデータを処理して、それをユーザーに認識できる形式で表示することができるコンピューティング装置である。このような装置は、デスクトップ、ラップトップ、およびパームトップコンピュータを含んでいる。ここで言及されたクライアント１０２は、ビデオコンシューマー（consumer）またはビデオプロデューサー（producer）であり、デジタルカメラおよびビデオ記憶装置、例えばリニアおよびランダムアクセス装置のような装置を含んでいる。ここで言及されたバス１０４は、バス１０４上で通信する装置が準拠しているシリアルプロトコルに加えて、コンピュータ１００とインターフェース１０６間の物理的な接続を含んでいる。好ましい実施形態において、バス１０４は、Ｆｉｒｅｗｉｒｅとして知られているＩＥＥＥ  １３９４シリアルバスプロトコルを用いている。インターフェース１０６は、クライアント１０２からアナログおよびデジタルの両方の入力を受け入れ、この入力を走査線（scanned lines）に変換するが、これは、コンピュータ１００上で実行されるオーディオ／ビデオプレーヤーによって用いられ得る。別の実施形態において、インターフェース１０６は、クライアント１０２からデジタル圧縮された／圧縮されていない信号を受け入れ、その信号の全信号またはサブセットを伝送する。一実施形態において、インターフェース１０６は、入力をコンピュータ１００へのバス１０４上でのフレーム１０８に分割する。
【００１０】
フレーム１０８のフォーマットが、図２に示されている。フレーム１０８は、フレームヘッダ１１０、ビデオブロック１１２、オーディオブロック１１４、およびオプションとしてオーディオヘッダ１１６を含んでいる。オーディオブロック１１４内のオーディオデータは、ビデオブロック１１２内のビデオデータを基準にしてサンプリングされる。フレーム当たりのオーディオサンプルカウントは、ＡＮＳＩ／ＳＭＰＴＥ  ２７２Ｍ仕様の中で定められた数によって変化するが、この仕様は、ここでの引用により、そっくりそのまま本願明細書に組み込まれるものとする。オーディオサンプルカウントの歩調（cadence）は、ＮＴＳＣフレーム速度（２９．９７ｆｐｓ）にわたって、秒当たり整数個のサンプルを分割する必要がある。同様に、フレーム１０８のサイズは、さまざまなビデオフォーマット、例えばＰＡＬまたはＮＴＳＣ、および８または１０ビットビデオデータ、およびオーディオフォーマット、例えば４８Ｋｈｚおよび９６Ｋｈｚ、１６および２４ビット等に適応させるために変化させることができる。同様に、圧縮されたデータのフレームサイズは、圧縮されたフォーマットに適応させるために変化させることができる。一実施形態において、ビデオブロック１１２およびオーディオブロックまたは圧縮されたブロックは、予め決められたサイズであり、単純なパース（parsing）フレーム１０８を作り、アプリケーション、例えばダイレクトメモリアクセスプログラムによる、わずかな処理オーバーヘッドしか要求しない。ビデオブロック１１２またはオーディオブロック１１４の全てが、完全にデータでいっぱいではない場合には、ブロック１１２、１１４の残りの部分は、ゼロで満たされ得る。一実施形態において、ビデオブロック１１２およびオーディオブロック１１４に含まれているデータは、圧縮されておらず、これにより、コンピュータ１００上で動作している解凍プログラムによって要求される処理オーバーヘッドはむろんのこと、インターフェース１０６上での処理オーバーヘッドも更に縮小される。
【００１１】
インターフェース１０６は、クライアント１０２から受信した入力を変換して、それを走査線（scan lines）に変換して、それをフレーム１０８に編成した上で、各垂直ブランキング期間（interval）にフレームを送信して、コンピュータ１００との同期を提供する。コンピュータ１００は、受信したフレームの周波数から垂直ブランキング期間を導き出して、それ自体を、インターフェース１０６から受信した着信フレーム１０８のオーディオおよびビデオデータと同期させることができる。このように、受信時に各フレーム上で同期化を実行する必要がないとき、処理資源（processing resources）は保存され、これによりコンピュータ１００上でのオーディオおよびビデオ表示のより高品質な性能が提供される。
【００１２】
図３Ａおよび３Ｂは、それぞれ最初のデータパケットおよび次のデータパケットのフォーマットを示している。
【００１３】
図４Ａおよび４Ｂは、データパケット内でのビデオデータの構成を示している。図５Ａおよび５Ｂは、データパケット内でのオーディオデータの構成を示している。
【００１４】
図６は、フレームヘッダ１１０の内容を示している。含まれているのは、サンプル当たりで何ビットかを示すフォーマットフラグ１３０、ＳＭＰＴＥタイムコード１３２、増加（incrementing）フレームカウンタ１３４、オーディオサイクルカウント１３６、オーディオサンプルカウント１３８、チャネルカウント１４０、ブロックサイズバイトカウント１４２、オーディオフォーマットフラグ１４４、およびビデオフォーマットフラグ１４６である。オーディオサンプルカウント１３８は、サンプル数を示しており、それは歩調（cadence）による。オーディオサイクルカウント１３６における値は、この歩調の範囲内での位置を示している。フレームの歩調は、サイクリングパターンを形成している。別の実施形態において、フレームヘッダ１１０の内容のいくつかは、オプションのオーディオヘッダ１１６に移動またはコピーすることができる。フレームヘッダ１１０の代替の図が、図７に示されていて、バイトカウント、データ長、およびフレームビットが示されている。
【００１５】
図８に示すように、フレーム１０８は、予め決められたサイズの複数のパケット１５０から構成されている。各パケットと関連しているのは、１３９４等時性（isochronous）パケットヘッダである。本発明によるデータ伝送は、同期ビットを利用して、フレームの始めを見つける。フレーム１０８内の最初のパケットは、同期ビットに関するマークを付けられている。これは、データのストリームが、受信時にコンピュータ１００によって識別されることを可能にし、コンピュータ１００がインターフェース１０６から受信したフレームのフローに同期することを可能にすることによって、処理オーバーヘッドを更に縮小する。
【００１６】
本発明の別の実施形態において、シリアルデジタルインターフェース（ＳＤＩ）規格に準拠しているフレームは、図９Ａから９Ｅに示すように用いられ得る。これらの実施形態において、バス１０４は、ＩＥＥＥ  １３９４Ｂシリアルバスプロトコルに準拠していて、ＳＤＩ規格によって示されたデータ速度制限に適応する。上記のように、インターフェース１０６は、受信された入力から、走査線を作り、デインターレーシング（deinterlacing）、パケタイジング（packetizing）を実行し、オーディオおよびビデオデータの固定サイズのＳＤＴＩフレームを作ることによって、フレームを形成する。コンピュータ１００、インターフェース１０６、クライアント１０２、または他の装置上で利用可能な処理資源に応じて、さまざまな修正がＳＤＴＩフレームに対して成され得る。上記のように、バス１０４を通じて送信されたＳＤＴＩフレームの伝送は、受け入れられた信号の垂直ブランキング期間に同期させられる。
【００１７】
図９Ａに示すように、ＳＤＴＩフレーム１６０は、一般に、２つの構成要素、垂直ブランキング部１６２および水平帰線（retrace）１６４を有している。代わりに、別の実施形態（図９Ｂ）においては、ＳＤＩフレームヘッダ１６６、同期ビットおよびフレームカウントを有するヘッダが、更なる同期および誤り検出目的、例えば伝送中に失われたデータからの回復またはバスリセットの発生のために、ＳＤＴＩフレーム１６０に加えられる。この実施形態においては、フレームカウント同期ビットが、ＳＤＴＩフレームヘッダ１６６内に含まれていて、ＳＤＴＩフレームヘッダ１６６が、垂直ブランキング部１６２と同期させられる。例えば、インターフェース１０６が圧縮されたデータを読み出すことができないアプリケーション、またはインターフェース１０６に対する過度のアップグレードが要求されるアプリケーションにおいて、ＳＤＴＩフレーム１６０は、コンピュータ１００に伝送され得る。ここで、ＳＤＴＩストリーム上での処理は、非リアルタイム法におけるソフトウェアによって実行される。代わりに、図９Ｃに示すように、ＳＤＴＩフレーム１６０は、水平帰線１６４なしで構成することもでき、処理オーバーヘッドが更に縮小される。水平帰線はないが、ヘッダ１６６を有する構成のＳＤＴＩフレームもまた、図９Ｄに示すように、一実施形態において用いられ得る。更に別の実施形態において、図９Ｅに示すように、ＳＤＴＩフレームを複数のチャネル間で分割して、ＳＤＴＩフレームヘッダ１６６も含ませることもできる。この実施形態において、送信器は、ＳＤＴＩストリームを半分に分割し、線（lines）の半分をチャネルＡを通して送信し、他の半分をチャネルＢを通して送信する。各部分フレームに付けられるヘッダは、フレームデータを再結合する助けとして用いられ得る。
【００１８】
本発明の別の態様において、コンピュータ１００、インターフェース１０６およびクライアント１０２間のデータ伝送を同期させるために、外部計時（clocking）を用いることができる。一実施形態において、クライアント１０２は、高品質の基準クロック１８０（図１）を有していて、それは、インターフェース１０６上のクロック１８２を同期させ、かつインターフェース１０６上のバッファ１８４のオーバーフローを防ぐために用いられ得る。この実施形態において、クライアント１０２上の基準クロック１８０の値は、インターフェース１０６上で、データがコンピュータ１０２からインターフェース１０６に送信される際の周波数から導き出される。フロー制御を実行するために、サイクルがフレームの伝送間でスキップされる。スキップされるサイクルは、フレームの伝送間の時間の量を増加させ、フレーム伝送のデータ速度を遅くするものである。図１０を見ると、参照番号２００で、コンピュータは、インターフェース１０６をポーリングし、バッファ１８４のサイズを読み出す。例示目的のため、バッファは、例えば「より大きい」および「より小さい」のような用語で称されるが、固定サイズのバッファの場合、より大きい、および、より小さいは、バッファの充満に関することであることは理解されるべきである。次に、参照番号２０２で、コンピュータ１００は、複数のフレームをインターフェース１０６に送信する。参照番号２０４で、コンピュータ１００は、再びインターフェース１０６をポーリングし、バッファ１８４のサイズを測定する。もしバッファ１８４のサイズが最後のポーリングのそのサイズより増大していたならば（参照番号２０６における判断）、制御は参照番号２０８へ進み、ここで、コンピュータ１００は、インターフェース１０６に送信しているフレーム間の遅延を増加させる。一実施形態において、送信されるフレーム間の遅延は、１２５ミリ秒である。別の実施形態では、分数の遅延が、多数のフレームにわたる遅延を調節することによって達成される。例えば、もし２．５×１．２５マイクロ秒のフレーム間遅延が必要であれば、（１２５マイクロ秒の）２および３サイクルの交互のフレーム遅延を散在させる。次に、制御は参照番号２０２に戻り、ここで、フレームは、フレーム間の追加の遅延を用いて、インターフェース１０６に送信される。しかし、参照番号２０６における判断に戻って、もしバッファ１８４のサイズが最後のポーリングのそのサイズより増大していなかったならば、制御は参照番号２１０における判断に移行する。参照番号２１０における判断で、もしバッファ２０６のサイズが縮小していたならば、制御は参照番号２１２に移行し、ここで、コンピュータ１００からインターフェース１０６に送信されるフレーム間の遅延が減少される。一実施形態において、この減少の量もまた、１２５Ｍｓである。次に、制御は参照番号２０２に移行し、ここで、フレームは、フレーム間の減少された遅延を用いて、コンピュータ１００からインターフェース１０６に送信される。参照番号２１０における判断に戻って、バッファ１８４のサイズが最後のポーリングのバッファ１８４のサイズより縮小していなかったならば、フレーム間の遅延に対する調節は��要なく、制御は参照番号２０２に移行する。
【００１９】
インターフェース１０６は、バス１０４全体の通信を使用可能にするためのシリアルユニット３００を有している。シリアルユニット３００は、表１に示すようなユニットディレクトリ３０２を含んでいる。
【００２０】
【表１】
2007501985.tif 000003
【００２１】
Unit_Spec_ID値は、シリアルユニット３００の構造的な定義を担っている構成を規定している。Unit_Spec_ID値と協働する、Unit_SW_Version値は、ユニットのソフトウェアインターフェースを規定している。Unit_Register_location値は、シリアルユニットレジスタのターゲット装置の初期アドレス空間におけるオフセットを規定している。Unit_Signals_Supported値は、表２に示すように、どのＲＳ−２３２信号がサポートされているかを規定している。もしこの記入がシリアルユニットディレクトリ３０２から省かれていれば、これらの信号のどれもサポートされない。
【００２２】
【表２】
2007501985.tif 000004
【００２３】
シリアルユニット３００には、シリアルユニットレジスタマップ３０４も含まれていて、シリアルユニット３００に含まれているレジスタを参照しやすくしている。シリアルユニットレジスタマップ３０４の構成は、表３に示されている。
【００２４】
【表３】
2007501985.tif 000005
【００２５】
シリアルユニットレジスタマップ３０４は、ログインレジスタを参照しやすくしている。シリアルユニット３００と通信することを試みている装置を、ここではイニシエーター（initiator）と呼ぶ。例えば、イニシエーターは、コンピュータ１００、または高速シリアルバスを介してネットワークに接続されていて、インターフェース１０６と通信する他のノードであってもよい。イニシエーターは、そのシリアルレジスタマップのベース（base）の６４ビットアドレスをログインレジスタに書き込み、シリアルユニット３００にログインする。もし別のイニシエーターが既にログインしていれば、シリアルユニット３００は競合（conflict）エラー応答メッセージを返す。アドレスの上位３２ビットはログインアドレスに書き込まれ、下位３２ビットはログイン＋４に書き込まれる。シリアルユニットレジスタマップは、ログアウトレジスタも参照しやすくする。イニシエーターは、任意の値をこのレジスタに書き込み、シリアルユニットからログアウトする。全てのバスリセット後に、イニシエーターは、その（おそらくは変更された）ノードＩＤを再接続レジスタに書き込まなければならない。もしイニシエーターが、バスリセット後、１秒以内に、そうすることに失敗したならば、自動的にログアウトされる。１６ビットのノードＩＤは、このレジスタの最下位１６ビットに書き込まれ、最上位１６ビットには、ゼロが書き込まれる。ＴｘＦＩＦＯサイズレジスタの読み出しは、シリアルユニットの送信ＦＩＦＯのバイト単位でのサイズを返す。ＲｘＦＩＦＯサイズレジスタの読み出しは、シリアルユニット３００の受信ＦＩＦＯのバイト単位でのサイズを返す。ステータスレジスタの読み出しは、（もしサポートされていれば）CTS/DSR/RI/CARの現在の状態を返す。ステータスレジスタは、表４に示すように構成されている。
【００２６】
【表４】
2007501985.tif 000006
【００２７】
制御レジスタへの書き込みは、（もしサポートされていれば）ＤＴＲおよびＲＴＳの状態をセットする。制御レジスタの構成は、表５に示されている。
【００２８】
【表５】
2007501985.tif 000007
【００２９】
フラッシュ（Flush）TxFIFOレジスタへの任意の値の書き込みは、シリアルユニット３００に、その送信ＦＩＦＯをフラッシュさせ、現在その中にある全てのバイトが捨てられる。フラッシュRxFIFOレジスタへの任意の値の書き込みは、シリアルユニットに、その受信ＦＩＦＯをフラッシュさせ、現在その中にある全てのバイトが捨てられる。ブレーク（break）送信レジスタへの任意の値の書き込みは、TxFIFOの現在の内容を送信した後に、シリアルユニット３００に、そのシリアルポート上でのブレーク状態をセットさせる。セットボーレートレジスタへの書き込みは、シリアルユニット３００のシリアルポートのボーレートをセットする。セットボーレートレジスタは、表６に示すように構成されている。
【００３０】
【表６】
2007501985.tif 000008
【００３１】
セットCharサイズレジスタは、送受信される文字（characters）のビットサイズをセットする。セットCharサイズレジスタの構成は、表７に示されている。７ビット文字は、最上位ビットとしてパッドビットを追加することによって、８ビットまで埋められる。
【００３２】
【表７】
2007501985.tif 000009
【００３３】
セットストップサイズレジスタは、ストップビットの数を示している。セットストップサイズレジスタは、表８に示すように構成されている。
【００３４】
【表８】
2007501985.tif 000010
【００３５】
セットパリティレジスタは、シリアルポートのパリティをセットする。セットパリティレジスタの構成は、表９に示されている。
【００３６】
【表９】
2007501985.tif 000011
【００３７】
セットフロー制御レジスタは、シリアルポートによって用いられるフロー制御のタイプをセットする。セットフローレジスタの構成は、表１０に示されている。
【００３８】
【表１０】
2007501985.tif 000012
【００３９】
データ送信レジスタは、イニシエーターがこのレジスタにブロック書き込み要求を送信して、送信ＦＩＦＯ内に文字を書き込むとき、用いられる。ブロック書き込みは、TxFIFOサイズレジスタによって規定される送信ＦＩＦＯサイズより大きくてはならない。もしTx FIFOに全部のブロック書き込みのための十分な余裕がないのであれば、競合エラー応答メッセージが返され、文字はＦＩＦＯにコピーされない。
【００４０】
また、シリアルユニット３００には、複数のレジスタを有するイニシエーターレジスタマップも含まれていて、表１１に示すように構成されている。
【００４１】
【表１１】
2007501985.tif 000013
【００４２】
シリアルユニット３００が、そのシリアルポート上でブレーク状態を検出したとき、それは、このレジスタに任意の値を書き込む。シリアルユニット３００が、そのシリアルポート上でフレーミング（framing）エラーを検出したとき、それは、フレーミングレジスタに受信した文字を書き込む。シリアルユニット３００が、そのシリアルポート上でパリティエラーを検出したとき、それは、パリティエラーレジスタに受信した文字を書き込む。シリアルユニット３００の受信ＦＩＦＯがオーバーフローしたとき、シリアルユニット３００は、RxFIFOオーバーフローレジスタに任意の値を書き込む。シリアルユニット３００が、CTS/DSR/RI/CARのうちのいくつかの状態の変更を検出したとき、それは、ステータス変更レジスタへの書き込みを行い、新しいシリアルポート信号状態を示す。ステータスレジスタの構成は、表１２に示されている。
【００４３】
【表１２】
2007501985.tif 000014
【００４４】
シリアルユニット３００が、そのシリアルポートから文字を受信したとき、それは、受信した文字をブロック書き込みトランザクションを有する受信データレジスタに書き込む。それは、RxFIFOサイズレジスタによって規定される受信ＦＩＦＯサイズより多くのバイトを書き込むことはない。もしイニシエーターが送信された全ての文字を受信することができなかったら、それは、競合エラー応答メッセージで応答し、送信された文字のどれも受信しない。
【００４５】
図１１は、本発明の実施形態によるインターフェース装置のためのレジスタメモリマップを示している。図１２は、本発明のインターフェース内に含まれているＡ/Ｖグローバルレジスタの構成を示している。図１３は、本発明のインターフェース装置内に含まれているグローバルステータスレジスタの構成を示している。図１４は、本発明のインターフェース装置内に含まれている等時性制御レジスタを示している。図１５は、本発明のインターフェース装置内に含まれているフロー制御レジスタの構成を示している。図１６は、本発明のインターフェース装置内に含まれている等時性チャネルレジスタの構成を示している。
【００４６】
本発明の別の実施形態において、合成（synthesized）垂直ブランキング信号は、インターフェース１０６上の垂直ブランキングレジスタをポーリングすることによって導き出される。垂直ブランキング信号は、コンピュータ１００上で動作しているプログラムに対するコードを呼び出す。一実施形態において、タイミング情報もまた、呼び出されたコードと組み合わせて、または呼び出されたコードの代わりに、コンピュータ１００上で動作しているプログラムに対して提供されてもよい。本発明の一実施形態において、インターフェース１０６は、カウンタを、フレームにおける現在の進捗（progress）を示している状態に保つレジスタを含んでいて、そこから次の垂直帰線を推定するか、またはさもなければ導き出すことができる。フレーム伝送上の境界を導き出すことによって、例えばサンプリング動作のために、フレーム内にあって、かつ垂直ブランキング期間の発生に同期している他のデータの位置を特定してアクセスすることができる。加えて、本発明の一実施形態は、垂直ブランキング期間と一致しているが、垂直ブランキングに関する情報を含んでいないデータの位置を特定するために、フレームの境界を導き出す。一実施形態において、本発明は、ビデオブランキング期間の発生後の期間、有効であるデータ、例えばフレーム内に含まれているタイムコードを得るために用いられ、様々な処理アプリケーションの中で読み出し、かつ用いることができる。一実施形態において、コンピュータ１００は、この推定された時間に始動するために割り込みを予定して、これによりフレームを送出することができる。
【図面の簡単な説明】
【００４７】
【図１】ブロック図形式で、本発明の実施形態と関連して用いられる主要な構成要素を示している。
【図２】本発明の実施形態によるフレームのフォーマットを示している。
【図３Ａ】最初のデータパケットのフォーマットを示している。
【図３Ｂ】次のデータパケットのフォーマットを示している。
【図４Ａ】本発明の実施形態によるデータパケット内でのビデオデータの構成を示している。
【図４Ｂ】本発明の実施形態によるデータパケット内でのビデオデータの構成を示している。
【図５Ａ】本発明の実施形態によるデータパケット内でのオーディオデータの構成を示している。
【図５Ｂ】本発明の実施形態によるデータパケット内でのオーディオデータの構成を示している。
【図６】本発明の実施形態によるフレーム内に含まれているヘッダの要素を示している。
【図７】本発明の実施形態によるフレーム内に含まれているヘッダの要素を示している。
【図８】本発明の実施形態によるフレームを形成するために結合された一まとまりのパケットを示している。
【図９Ａ】本発明の実施形態によるＳＤＴＩフレームの変形が用いられている、本発明の別の実施形態を示している。
【図９Ｂ】本発明の実施形態によるＳＤＴＩフレームの変形が用いられている、本発明の別の実施形態を示している。
【図９Ｃ】本発明の実施形態によるＳＤＴＩフレームの変形が用いられている、本発明の別の実施形態を示している。
【図９Ｄ】本発明の実施形態によるＳＤＴＩフレームの変形が用いられている、本発明の別の実施形態を示している。
【図９Ｅ】送信器が複数のチャンネル間でＳＤＴＩストリームを分割する、別の実施形態を示している。
【図１０】フローチャート形式で、本発明の実施形態によるコンピュータとハードウェアインターフェース間での外部計時を提供するために実行される動作を示している。
【図１１】本発明の実施形態によるインターフェース装置のためのレジスタメモリマップを示している。
【図１２】本発明のインターフェース内に含まれているＡ/Ｖグローバルレジスタの構成を示している。
【図１３】本発明のインターフェース装置内に含まれているグローバルステータスレジスタの構成を示している。
【図１４】本発明のインターフェース装置内に含まれている等時性制御レジスタを示している。
【図１５】本発明のインターフェース装置内に含まれているフロー制御レジスタの構成を示している。
【図１６】本発明のインターフェース装置内に含まれている等時性チャネルレジスタの構成を示している。
【符号の説明】
【００４８】
１００  コンピュータ
１０２  クライアント
１０４  バス
１０６  インターフェース
１０８  フレーム
【図１】
2007501985.tif 000015
【図２】
2007501985.tif 000016
【図３Ａ】
2007501985.tif 000017
【図３Ｂ】
2007501985.tif 000018
【図４Ａ】
2007501985.tif 000019
【図４Ｂ】
2007501985.tif 000020
【図５Ａ】
2007501985.tif 000021
【図５Ｂ】
2007501985.tif 000022
【図６】
2007501985.tif 000023
【図７】
2007501985.tif 000024
【図８】
2007501985.tif 000025
【図９Ａ】
2007501985.tif 000026
【図９Ｂ】
2007501985.tif 000027
【図９Ｃ】
2007501985.tif 000028
【図９Ｄ】
2007501985.tif 000029
【図９Ｅ】
2007501985.tif 000030
【図１０】
2007501985.tif 000031
【図１１】
2007501985.tif 000032
【図１２】
2007501985.tif 000033
【図１３】
2007501985.tif 000034
【図１４】
2007501985.tif 000035
【図１５】
2007501985.tif 000036
【図１６】
2007501985.tif 000037
【国際調査報告】
2007501985.tif 000038