JPH08107542A - メディア・ストリーマ - Google Patents

メディア・ストリーマ

Info

Publication number
JPH08107542A
JPH08107542A JP7227676A JP22767695A JPH08107542A JP H08107542 A JPH08107542 A JP H08107542A JP 7227676 A JP7227676 A JP 7227676A JP 22767695 A JP22767695 A JP 22767695A JP H08107542 A JPH08107542 A JP H08107542A
Authority
JP
Japan
Prior art keywords
data
video
stream
buffer
disk
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.)
Granted
Application number
JP7227676A
Other languages
English (en)
Other versions
JP3096409B2 (ja
Inventor
Jr Lorenzo Falcon
ロレンソ・ファルコン・ジュニア
Ashok Raj Saxena
アショック・ラージ・サクセナ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08107542A publication Critical patent/JPH08107542A/ja
Application granted granted Critical
Publication of JP3096409B2 publication Critical patent/JP3096409B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

(57)【要約】 (修正有) 【課題】 「ビデオ・フレンドリー」なコンピュータ・
サブシステムを提供する。 【解決の手段】 メディア・ストリーマ(10)は、ビ
デオ表示のディジタル表現を格納するための大容量記憶
装置を含む記憶ノード(16)を含む。ビデオ表示は、
その全体を表示するのに時間Tを要し、N個のデータ・
ブロックとして格納される。各データ・ブロックはビデ
オ表示の約T/Nの期間に対応するデータを格納する。
メディア・ストリーマは、それからのビデオ表示のディ
ジタル表現を受け取るために記憶ノードの出力に結合さ
れた入力ポートをそれぞれ有する複数の通信ノード(1
4)をさらに含む。複数の通信ノードのそれぞれは、複
数の出力ポートをさらに含み、そのそれぞれがディジタ
ル表現の消費者にデータ・ストリームとしてディジタル
表現を伝送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチメディア・
データの送達用のシステムに関し、より具体的には、最
小バッファリングで複数の端末に同時にビデオを提供す
るインタラクティブ・ビデオ・サーバ・システムに関す
る。
【0002】
【従来の技術】ムービーやビデオの再生は、現在、かな
り古い技術で実施されている。主な記憶媒体は、VHS
レコーダ/プレーヤなどのアナログ・テープであり、テ
レビ・スタジオや放送局が使用する非常に高品質で高価
なD1 VTRにまで及んでいる。この技術には多くの
問題がある。このような問題としては、テープの装填に
要する人手、機械ユニット、テープ・ヘッド、テープそ
のものの磨耗や裂き傷、そして費用などがある。放送局
を悩ませている重大な制約の1つは、VTRは一度に連
続して1つの機能しか果たせないことである。しかも、
各テープ装置は75,000〜150,000ドルの費用がかかる。
【0003】テレビ局は、自局の通常番組に特別なコマ
ーシャルを挿入し、それにより個別の市場として各都市
を対象にすることにより、短編映画にすぎないコマーシ
ャルによる増収を望んでいる。これは、テープ技術では
困難な作業であり、非常に高価なディジタルD1テープ
・システムまたはテープ・ロボットでも困難である。
【0004】マルチメディア・データをエンド・ユーザ
に送達する従来の方法は、1)放送業界方式と、2)コ
ンピュータ業界方式の2つのカテゴリに分類される。放
送業界方式(映画業界、有線放送業界、テレビ放送網業
界、レコード業界を含む)では、一般に、アナログまた
はディジタル記録のテープの形で記憶装置を用意する。
このため、テープを再生すると、放送業界の機材を通し
てエンド・ユーザまで移動される等時性データ・ストリ
ームが生成される。コンピュータ業界方式では、一般
に、ディスクまたはテープが付加されたディスクの形で
記憶装置を用意し、DVI、JPEG、MPEGなどの
圧縮されたディジタル形式でデータを記録する。コンピ
ュータは、要求に応じてエンド・ユーザに非等時性デー
タ・ストリームを送達し、エンド・ユーザ側では連続視
聴を可能にするために、ハードウェアがデータ・ストリ
ームをバッファリングし、特殊なアプリケーション・コ
ードがそれを平滑化する。
【0005】従来、ビデオ・テープ・サブシステムは、
記憶媒体のコストのためにコンピュータ・ディスク・サ
ブシステムよりコスト的に有利であった。しかし、ビデ
オ・テープ・サブシステムには、テープ管理、アクセス
待ち時間、信頼性が比較的低いという欠点がある。これ
らの欠点は、リアルタイム・ディジタル圧縮/圧縮解除
技法の出現と相まって、コンピュータの記憶装置のコス
トが低下するにつれてますます重要になっている。
【0006】コンピュータ・サブシステムは、コスト/
パフォーマンスの点で複合的な改良が行われてきたが、
一般に「ビデオ・フレンドリー」とは見なされていな
い。コンピュータは、「非等時性」と呼ばれるインタフ
ェースおよびプロトコルによって、主にワークステーシ
ョンおよびその他のコンピュータ端末とのインタフェー
スをとる。マルチメディア・データをエンド・ユーザに
円滑に(等時的に)送達するには、従来の通信方法に固
有の弱点を克服するためにコンピュータ・システムは特
殊なアプリケーション・コードと大型バッファを必要と
する。また、コンピュータには、等時性データ・ストリ
ームを処理し、高度の正確さでそれらを切り替えるため
の、マルチメディア業界の機器との互換性のあるインタ
フェースが欠けているので、コンピュータはビデオ・フ
レンドリーではない。
【0007】ビデオ・データをディジタル形式で圧縮し
て格納するためにコンピュータの使用を導入することに
より、テレビ放送、映画製作、電話回線による「ビデオ
・オン・デマンド」、ホテルでの番組有料視聴制などの
いくつかの主要産業で変革が始まった。圧縮技術は、圧
縮率100x〜180xでも良好な結果が達成できるほ
どまで進歩している。このような圧縮率によって、ラン
ダム・アクセス・ディスク技術が先行技術のテープ・シ
ステムに代わる魅力的なものになっている。
【0008】ディジタル・ディスク・データにランダム
・アクセスする能力とディスク・システムの非常に高い
帯域幅により、システムの必要な機能およびパフォーマ
ンスがディスク技術のパフォーマンス、ハードウェア・
コスト、拡張性の範囲内になっている。これまでは、記
憶装置のコストのために、ビデオまたはムービーを格納
するためにディスク・ファイルを使用することが実際に
考慮されることはなかった。そのコストについては、最
近、大幅な削減が行われている。
【0009】MPEG規格を使用した圧縮ビデオ・デー
タを使用する多くの新たに出現した市場では、費用効果
の高い方法でビデオ・データを格納できる方法がいくつ
かある。
【0010】
【発明が解決しようとする課題】本発明は、数多くの様
々なパフォーマンス要件のパフォーマンス要件に対する
階層的解決策を提供し、その結果、市場の要件を満たす
ようカストマイズ可能なモジュール・システムによる手
法を提供する。
【0011】本発明は、その業界用の従来のインタフェ
ースを介してマルチメディア環境での等時性データ・ス
トリームの送達を可能にする、「ビデオ・フレンドリ
ー」なコンピュータ・サブシステムを提供する。本発明
によるメディア・ストリーマは、等時性データ・ストリ
ームの送達用に最適化されており、ATM(非同期転送
モード)技術により新しいコンピュータ・ネットワーク
にデータをストリーミングすることができる。本発明
は、システム制御にVTR(ビデオ・テープ・レコー
ダ)メタフォを提供しながら、ビデオ・テープの欠点を
解消するものである。本発明のシステムは、1〜100
0の独立制御のデータ・ストリームをエンド・ユーザに
送達するためのスケーラビリティ、単一のデータ・コピ
ーから多くの等時性データ・ストリームを送達できる能
力、混合データ転送速度、単純な「オープン・システ
ム」制御インタフェース、自動化制御サポート、記憶階
層サポート、送達されたストリーム当たりの低コストな
どの特徴を提供する。
【0012】
【課題を解決するための手段】本発明によるメディア・
ストリーマは、少なくとも1つのビデオ表示のディジタ
ル表現を格納するための大容量記憶装置を含む少なくと
も1つの記憶ノードを含む。この大容量記憶装置は、複
数の大容量記憶ユニットから構成される。少なくとも1
つのビデオ表示は、その全体を表示するのに時間Tを要
し、N個のデータ・ブロックとして格納される。各デー
タ・ブロックはビデオ表示の約T/Nの期間に対応する
データを格納する。メディア・ストリーマは、それから
のビデオ表示のディジタル表現を受け取るために少なく
とも1つの記憶ノードの出力に結合された少なくとも1
つの入力ポートをそれぞれ有する複数の通信ノードをさ
らに含む。複数の通信ノードのそれぞれは、複数の出力
ポートをさらに含み、そのそれぞれがディジタル表現の
消費者にデータ・ストリームとしてディジタル表現を伝
送する。
【0013】本発明の一態様によれば、ディジタル表現
のN個のデータ・ブロックはX個のストライプに区分さ
れ、データ・ブロック1、X+1、2*X+1、・・・
などがX個のストライプの第1のストライプに関連づけ
られ、データ・ブロック2、X+2、2*X+2、・・
・などがX個のストライプの第2のストライプに関連づ
けられ、以下同様に関連づけられ、X個のストライプの
それぞれが複数の大容量記憶ユニットのそれぞれに格納
される。
【0014】複数の大容量記憶ユニットは、ビデオ表示
のディジタル表現の単一コピーを格納することが好まし
い。X個のストライプは、複数のデータ・ストリームが
N個のデータ・ブロックのうちの同一ブロックを同期伝
達できるように読み出されるか、または複数のデータ・
ストリームがN個のデータ・ブロックのうちの異なるブ
ロックを同期伝達できるように読み出される。
【0015】Xの値は、以下の式によって求められる。 X=最大(r*n/d,r*m/d) ただし、rはデータ・ストリーム用の公称データ転送速
度、nは公称データ転送速度で同期出力されるデータ・
ストリームの最大数、dは大容量記憶ユニットの1つの
有効出力データ転送速度、mはN個のデータ・ユニット
のうちの少なくとも1つに格納するすべての大容量記憶
ユニットから公称データ転送速度で同期出力されるデー
タ・ストリームの最大数である。
【0016】
【発明の実施の形態】見出し集 以下の説明は、次の見出しA.〜K2.6.に続く説明に従
う。 A. 一般アーキテクチャ B. 等時性送達用のディジタル圧縮ビデオ・データの階
層管理 B1. テープ記憶装置 B2. ディスク記憶システム B3. キャッシュからのムービー C. メディア・ストリーマ・データ・フロー・アーキテ
クチャ C1. 制御ノード18の機能 C2. 通信ノード14 C3. 記憶ノード16 C4. 適時スケジューリング C5. 再生アクションの詳細 D. メディア・ストリーマへのユーザ・インタフェース
とアプリケーション・インタフェース D1. ユーザ通信 D1.1. コマンド行インタフェース D1.2. グラフィカル・ユーザ・インタフェース D2. ユーザ機能 D2.1. インポート/エクスポート D2.2. VCR状の再生制御 D2.3. 拡張ユーザ制御 D3. アプリケーション・プログラム・インタフェース D4. クライアント/メディア・ストリーマ間通信 D4.1. クライアント制御システム11 D4.2. メディア・ストリーマ10 E. ビデオ送達用のメディア・ストリーマのメモリ構成
と最適化 E1. 先行技術のキャッシュ管理 E2. ビデオ最適化キャッシュ管理 E2.1. ストリーム間でのセグメント・サイズ・キャッ
シュ・バッファの共用 E2.2. 予測キャッシュ E2.3. キャッシュを最適化するためのストリームの同
期化 F. ビデオ最適化ディジタル・メモリ割振り F1. メモリ割振り用のコマンド F2. アプリケーション・プログラム・インタフェース G. ビデオ・アプリケーション用に最適化したディスク
・ドライブ H. ビデオ・データ用のデータ・ストライプ I. メディア・ストリーマのデータ転送と変換手順 I1. スイッチ18へのビデオ送達用の動的帯域幅割振
り J. 通信アダプタによる等時性ビデオ・データ送達 J1. 圧縮済みのMPEG−1、1+、MPEG−2デ
ィジタル・データ形式から業界標準テレビ形式(NTS
CまたはPAL)へのビデオ・イメージとムービーの変
換 K. SCSI装置へのディジタル・ビデオの伝送 K1. SCSIレベルのコマンドの説明 K2. バッファ管理 K2.1. バッファ選択および位置 K2.2. 自動モード K2.3. 手動モード K2.4. エラー管理 K2.5. エラー回復 K2.6. 自動再試行
【0017】用語集 以下の説明では、ここに示す複数の用語を使用する。 AAL−5 ATM適応層−5: データ伝送に適し
たATMサービスのクラスを意味する。 ATM 非同期転送モード: ローカル・エリア・ネ
ットワークまたは広域ネットワークあるいはその両方で
使用可能な高速切替え転送技術。データとビデオ/オー
ディオの両方を伝達するように設計されている。 Betacam 専門家向け品質のアナログ・ビデオ形式。 CCIR 601 ディジタル・テレビ用の標準解像
度。輝度が720×840(NTSC用)または720
×576(PAL用)で、クロミナンスの水平サブサン
プリング比が2:1。 CPU 中央演算処理装置: コンピュータ・アーキ
テクチャでは、コンピュータ命令を処理する主エンティ
ティ。 CRC 巡回冗長検査。データ・エラー検出方式。 D1 CCIR 601に適合するビデオ記録形式。
19mmのビデオ・テープ上に記録する。 D2 SMPTE 244Mに適合するディジタル・
ビデオ記録形式。19mmのビデオ・テープ上に記録す
る。 D3 SMPTE 244Mに適合するディジタル・
ビデオ記録形式。1/2インチ・ビデオ・テープ上に記
録する。 DASD 直接アクセス記憶装置: オンライン・デ
ータ記憶装置またはCD−ROMプレーヤのうち、アド
レス指定可能なものはすべてDASDである。磁気ディ
スク・ドライブと同義に使用する。 DMA 直接メモリ・アクセス: コンピュータ・ア
ーキテクチャ内でデータを移動させる方法の1つで、C
PUがデータを移動させる必要がないもの。 DVI 比較的低品質のディジタル・ビデオ圧縮形式
で、通常、CD−ROMディスクからのビデオをコンピ
ュータ画面に再生する場合に使用するもの。 E1 ヨーロッパでT1に相当するもの。 FIFO 先入れ先出し法: 先着順サービスで動作
する待ち行列処理方法。 GenLock 別のビデオ信号への同期化の処理を意味す
る。ビデオをコンピュータで取り込む場合、ディジタル
化処理をビデオ信号の走査パラメータと同期させること
が必要である。 I/O入出力 入力/出力。 Isochronous等時性 時間に敏感で、(好
ましくは)割込みなしで送信される情報を記述するのに
使用する用語。リアルタイムで送信されるビデオ・デー
タとオーディオ・データは等時性である。 JPEG 国際標準化機構の後援を受ける作業委員会
の1つで、コンピュータ・システムで使用する静止画像
のディジタル圧縮の国際標準案を定義しているもの。 KB キロバイト: 1024バイト。 LAN ローカル・エリア・ネットワーク: 約1マ
イル以下の間隔を置いた端末、コンピュータ、周辺装置
を相互接続する対撚り線、同軸ケーブル、光ファイバ・
ケーブルによる高速伝送。 LRU 最低使用頻度。 MPEG 国際標準化機構の後援を受ける作業委員会
の1つで、動画/オーディオのディジタル圧縮/圧縮解
除の標準を定義しているもの。MPEG−1は、初期標
準で現在使用されている。MPEG−2は、次の標準に
なるもので、ディジタルでフレキシブルのスケーラブル
・ビデオ転送をサポートする。これは、複数の解像度、
ビット転送速度、送達機構に及ぶ。 MPEG−1、MPEG−2 MPEGを参照。 MRU 最高使用頻度。 MTNU 次の使用までの最大時間。 NTSC形式 米国テレビ放送規格審議会: 米国お
よび日本で標準のカラー・テレビ形式。 PAL形式 走査線ごと位相反転: フランス以外の
ヨーロッパで標準のカラー・テレビ形式。 PC パーソナル・コンピュータ: 家庭または業務
用に使用できる比較的低コストのコンピュータ。 RAID 低価格ディスクの冗長アレイ: 帯域幅出
力を増し、冗長パックアップを行うためにタンデム形式
で機能する複数の磁気ディスクまたは光ディスクを使用
する、記憶装置構成。 SCSI 小型計算機システム・インタフェース:
周辺装置とその制御装置をコンピュータに接続するため
の業界標準。 SIF ソース入力形式: CCIR 601の解像
度の1/4。 SMPTE 全米映画テレビ技術者協会。 SSA 直列記憶アーキテクチャ: 周辺装置とその
制御装置をコンピュータに接続するための標準。SCS
Iに代わる可能性のあるもの。 T1 1.544Mb/秒のビット転送速度を持つ、
電話網へのディジタル・インタフェース。 TCP/IP 伝送制御プロトコル/インターネット
・プロトコル: ネットワーク間で異なるコンピュータ
をリンクするために米国国防総省が開発した1組のプロ
トコル。 VHS 垂直ヘリカル走査: 磁気テープにアナログ
・ビデオを記録するための一般的な形式。 VTR ビデオ・テープ・レコーダ: 磁気テープに
ビデオを記録するための装置。 VCR ビデオ・カセット・レコーダ: VTRと同
じ。
【0018】A. 一般アーキテクチャ ビデオ最適化ストリーム・サーバ・システム10(以
下、メディア・ストリーマと呼ぶ)を図1に示すが、こ
れは、スケーラビリティ、高可用性、構成のフレキシビ
リティを提供するために4つのアーキテクチャ上個別の
構成要素を含む。主な構成要素は以下の通りである。 1) 低待ち時間スイッチ12: 通信ノード14、1
つまたは複数の記憶ノード16および17、1つまたは
複数の制御ノード18間でデータおよび制御情報を送達
するという主要タスクを有するハードウェア/マイクロ
コード構成要素。 2) 通信ノード14: NTSC、PAL、D1、D
2など、通常、放送業界にはなじみの外部定義インタフ
ェースを介して「再生」(等時的にデータを送達するこ
と)または「記録」(等時的にデータを受け取ること)
を可能にするという主要タスクを有するハードウェア/
マイクロコード構成要素。このディジタル/ビデオ・イ
ンタフェースは、それぞれの通信ノード14の出力に接
続された複数のビデオ・ポート15に収容されたビデオ
・カードで実現される。 3) 記憶ノード16、17: ディスクなどの記憶媒
体とそれに関連する記憶装置可用性オプションを管理す
るという主要タスクを有するハードウェア/マイクロコ
ード構成要素。 4) 制御ノード18: コンピュータ業界になじみの
外部定義サブシステム・インタフェースからの制御コマ
ンドを受け取って実行するという主要タスクを有するハ
ードウェア/マイクロコード構成要素。
【0019】64ノード・インプリメンテーションによ
る典型的なメディア・ストリーマは、低待ち時間スイッ
チ12によって相互接続された31個の通信ノードと、
31個の記憶ノードと、2つの制御ノードとを含む可能
性がある。より小型のシステムは、スイッチを含まず、
通信、記憶、制御の各種機能をサポートする単一ハード
ウェア・ノードを含む可能性がある。このメディア・ス
トリーマ10の設計により、小型システムが顧客の導入
先で大型システムに成長することができる。どの構成で
もメディア・ストリーマ10の機能上の可能性は、送達
されるストリームの数と格納されるマルチメディア時間
の数を除けば、同じ状態に維持することができる。
【0020】図2には、低待ち時間スイッチ12の詳細
を示す。複数の回路スイッチ・チップ(図示せず)がク
ロスバー・スイッチ・カード20上で相互接続され、こ
のスイッチ・カード20がプレーナ・ボード(概略を示
す)を介して相互接続されている。プレーナと単一カー
ド20は、16個のノード・ポートを備えた低待ち時間
クロスバー・スイッチを構成する。追加のノード・ポー
トと、必要であれば、高可用性を実現するための活動冗
長ノード・ポートを構成するために、追加のカード20
を追加することができる。低待ち時間スイッチ12の各
ポートにより、たとえば、25メガバイト/秒の全二重
通信チャネルが得られる。
【0021】情報は、パケットに入れてスイッチ12を
介して転送される。各パケットには、それぞれのスイッ
チ・チップ内の個々のクロスバー・スイッチ点の切替え
状態を制御するヘッダ部分が含まれる。制御ノード18
は、残りのノード(記憶ノード16、17と通信ノード
14)に対して、低待ち時間スイッチ12による対等動
作を可能にするために必要な情報を提供する。
【0022】図3には、テープ記憶ノード17の内部の
詳細を示す。以下に説明するように、テープ記憶ノード
17は、ビデオ表示のディジタル表現を格納するための
大容量記憶機構を提供する。
【0023】本明細書で使用するビデオ表示は、表示ま
たは処理あるいはその両方に適した1つまたは複数の画
像を含むことができる。また、ビデオ表示はオーディオ
部分を含むこともできる。1つまたは複数の画像は、フ
ィルム、ムービー、またはアニメーション・シーケンス
の順次フレームのように論理的に関連していてもよい。
本来、画像は、カメラ、ディジタル・コンピュータ、カ
メラとディジタル・コンピュータの組合せによって生成
することができる。オーディオ部分は、連続画像の表示
と同期させることができる。本明細書で使用するビデオ
表示のデータ表現は、1つまたは複数の画像とおそらく
オーディオとを表現するために適したディジタル・デー
タ形式にすることができる。このディジタル・データは
符号化または圧縮あるいはその両方を行うことができ
る。
【0024】もう一度図3を参照すると、テープ記憶ノ
ード17は、テープ・ライブラリ26内に収容された複
数のテープ・レコードへのアクセスを可能にするテープ
・ライブラリ制御装置インタフェース24を含む。もう
1つのインタフェース28は、SCSIバス相互接続に
より他のテープ・ライブラリへのアクセスを可能にす
る。内部システム・メモリ30は、いずれかのインタフ
ェース24または28から、またはDMAデータ転送経
路32を介して受け取ったビデオ・データのバッファリ
ングを可能にする。システム・メモリ・ブロック30
は、テープ・ライブラリおよびファイル管理アクション
用のソフトウェア36を含む、PC34の一部であって
もよい。スイッチ・インタフェースおよびバッファ・モ
ジュール38(ディスク記憶ノード16、通信ノード1
4、および制御ノード18でも使用する)は、テープ記
憶ノード17と低待ち時間スイッチ12との間の相互接
続を可能にする。すなわち、モジュール38は、データ
転送をパケットに区分化することと、スイッチ12がパ
ケットを経路指定するのに使用するヘッダ部分をそのパ
ケットに追加することを担当する。スイッチ12からパ
ケットを受け取ると、モジュール38は、ローカル・バ
ッファリングまたはその他の方法で受け取ったデータを
処理する前に、ヘッダ部分を剥ぎ取ることを担当する。
【0025】テープ・ライブラリ26からのビデオ・デ
ータは、最初のバッファリング・アクションでシステム
・メモリ30に入力される。次に、制御ノード18から
の初期指示に応答して、ビデオ・データが低待ち時間ス
イッチ12を介してディスク記憶ノード16に経路指定
され、必要なときにほぼ即時にアクセスできるように備
える。
【0026】図4には、ディスク記憶ノード16の内部
の詳細を示す。各ディスク記憶ノード16は、RAID
バッファ・ビデオ・キャッシュおよび記憶インタフェー
ス・モジュール42との間のデータ転送を可能にする、
スイッチ・インタフェースおよびバッファ・モジュール
40を含む。インタフェース42は、受け取ったビデオ
・データを複数のディスク45上に渡し、疑似RAID
式にディスク間にデータを分散する。RAIDメモリ記
憶の詳細は、先行技術では既知であり、"A Case for Re
dundant Arrays of Inexpensive Disks (RAID)"(Patte
rson他著、ACMSIGMOD Conference, Chicago, IL、19
88年6月1〜3日、109〜116ページ)に記載さ
れている。
【0027】ディスク記憶ノード16は、記憶ノード制
御、ビデオ・ファイルおよびディスク制御、ディスク4
5上に格納されるデータのRAIDマッピングをそれぞ
れ行う、ソフトウェア・モジュール46および48を含
む内部PC44をさらに有する。本質的に、各ディスク
記憶ノード16は、テープ記憶ノード17より即時レベ
ルの高いビデオ・データ可用性を提供する。さらに各デ
ィスク記憶ノード16は、そのための要求を受け取った
ときに、さらに高速のビデオ・データの可用性を提供す
るように、スイッチ・インタフェースおよびバッファ・
モジュール40の半導体メモリ内にビデオ・データを
(キャッシュ式に)バッファリングできるようになって
いる。
【0028】一般に記憶ノードは、大容量記憶ユニット
(または大容量記憶ユニットへのインタフェース)と、
その大容量記憶ユニットから読み取るかまたはそれに書
き込むデータをローカルにバッファリングする能力とを
含む。この記憶ノードは、1つまたは複数のテープ・ド
ライブまたはディスク・ドライブあるいはその両方の形
で順次アクセス大容量記憶装置を含むことができ、ラン
ダム・アクセス式にアクセスされる1つまたは複数のデ
ィスク・ドライブまたは半導体メモリあるいはその両方
などのランダム・アクセス記憶装置を含むこともでき
る。
【0029】図5には、通信ノード14の内部構成要素
のブロック図を示す。前述の各ノードと同様、通信ノー
ド14は、前述のように低待ち時間スイッチ12による
通信を可能にするスイッチ・インタフェースおよびバッ
ファ・モジュール50を含む。ビデオ・データは、ユー
ザ端末(図示せず)に転送するためにスイッチ・インタ
フェースおよびバッファ・モジュール50とストリーム
・バッファおよび通信インタフェース52との間で直接
転送される。PC54は、通信ノード制御(たとえば、
ストリーム開始/停止アクション)をそれぞれ提供し、
その後の等時性データ・ストリームの生成を可能にす
る、ソフトウェア・モジュール56および58を含む。
ストリーム・バッファおよび通信インタフェース52へ
の追加入力60により、出力データのフレーム同期が可
能になる。そのデータは自動化制御装置62から受け取
られ、この制御装置は、ストリーム・サーバの全体的な
動作制御を実施するシステム制御装置64によって制御
される(図1を参照)。システム制御装置64は、ユー
ザ制御セット・トップ・ボックス65からの入力に応答
して、メディア・ストリーマ10が要求されたビデオ表
示にアクセスできるようにするコマンドを生成させる。
さらにシステム制御装置64には、ユーザがハード・ボ
タンまたはソフト・ボタンなどによりコマンドやその他
のデータを入力して、ビデオ表示の識別、ビデオ表示の
スケジューリング、ビデオ表示の再生の制御を可能にす
る、ユーザ・インタフェースおよび表示機構66が設け
られている。
【0030】各制御ノード18は、1つのPCとして構
成され、低待ち時間スイッチ12とのインタフェースを
とるためのスイッチ・インタフェース・モジュールを含
む。各制御ノード18は、システム制御装置64からの
入力に応答して通信ノード14および記憶ノード16、
17に情報を提供し、低待ち時間スイッチ12によって
所望の相互接続を作成できるようにする。さらに、制御
ノード18は、1つまたは複数のディスク記憶ノード1
6からの要求ビデオ・データのステージングと、ストリ
ーム送達インタフェースによるユーザ表示端末へのビデ
オ・データの送達を可能にするためのソフトウェアを含
む。さらに制御ノード18は、低待ち時間スイッチ12
を介して送られるコマンドにより、ディスク記憶ノード
16とテープ記憶ノード17の両方の動作を制御する。
【0031】メディア・ストリーマは、図1に示す3つ
の設計済み外部インタフェースを有する。この外部イン
タフェースは以下の通りである。 1)制御インタフェース: TCP/IPプロトコルを
実行するオープン・システム・インタフェース(イーサ
ネットLAN、トークンリングLAN、シリアル・ポー
ト、モデムなど)。 2)ストリーム送達インタフェース: データ・ストリ
ームの送達用に設計された数種類の業界標準インタフェ
ースの1つ(NTSC、D1など)。 3)自動化制御インタフェース: ストリーム出力を正
確に同期化するための業界標準制御インタフェースの集
合(GenLock、BlackBurst、SMPTEクロックな
ど)。
【0032】アプリケーション・コマンドは、制御イン
タフェースによりメディア・ストリーマ10に出され
る。データ・ロード・コマンドが出されると、制御ノー
ドは着信データ・ファイルを複数のセグメント(すなわ
ち、データ・ブロック)に分解し、1つまたは複数の記
憶ノード間にそれを分散する。データ密度とそのデータ
の同時ユーザのユーザの数は記憶ノード16、17上の
データの位置に影響する。密度または同時ユーザ数ある
いはその両方を増やすことは、容量および帯域幅のため
により多くの記憶ノードを使用することを意味する。
【0033】エンド・ユーザへのデータのストリーミン
グを開始するために制御インタフェースによりコマンド
が出されると、制御ノード18は適切な通信ノード14
を選択して活動化し、記憶ノード16、17上のデータ
・ファイル・セグメントの位置を示す制御情報をそれに
渡す。通信ノード14は、関与する必要がある記憶ノー
ド16、17を活動化し、低待ち時間スイッチ12によ
り送られるコマンド・パケットを介してこれらのノード
との通信を開始し、データの移動を開始する。
【0034】データは、低待ち時間スイッチ12と「適
時」スケジューリング・アルゴリズムによりディスク記
憶ノード16と通信ノード14との間で移動される。ス
ケジューリングとデータ・フロー制御に使用される技法
については、以下に詳述する。通信ノード・インタフェ
ース14から送出されるデータ・ストリームは、単一の
通信ノード・ストリームが各ディスク記憶ノード16の
容量および帯域幅の一部を使用するように、ディスク記
憶ノード16にまたはそのノードから多重化される。こ
のため、多くの通信ノード14がディスク記憶ノード1
6上の同一または異なるデータへのアクセスを多重化す
ることができる。たとえば、メディア・ストリーマ10
は、個別に制御された1500個のエンド・ユーザ・ス
トリームを通信ノード14のプールから提供することが
でき、各通信ノードは複数のディスク記憶ノード16間
に分散した単一のマルチメディア・ファイルへのアクセ
スを多重化している。この能力は「複数ストリーム単一
コピー」と呼ばれる。
【0035】制御インタフェースを介して受け取られる
コマンドは2つの別個のカテゴリで実行される。データ
を管理するがストリーム制御には直接関連しないもの
は、「低優先順位」で実行される。これにより、エンド
・ユーザへのデータ・ストリームの送達を妨げずに、ア
プリケーションが新しいデータをメディア・ストリーマ
10にロードすることができる。ストリームの送達(す
なわち、出力)に影響しないコマンドは、「高優先順
位」で実行される。
【0036】制御インタフェース・コマンドを図6に示
す。メディア・ストリーマ10にデータをロードし管理
するための低優先順位データ管理コマンドとしては、VS
-CREATE、VS-OPEN、VS-READ、VS-WRITE、VS-GET_POSITI
ON、VS-SET_POSITION、VS-CLOSE、VS-RENAME、VS-DELET
E、VS-GET_ATTRIBUTES、VS-GET_NAMESがある。
【0037】ストリーム出力を開始して管理するための
高優先順位ストリーム制御コマンドとしては、VS-CONNE
CT、VS-PLAY、VS-RECORD、VS-SEEK、VS-PAUSE、VS-STO
P、VS-DISCONNECTがある。制御ノード18は、ストリー
ム制御コマンドを監視して、要求を確実に実行できるよ
うにする。制御ノード18内のこの「承認制御」機構
は、メディア・ストリーマ10の能力を超えたときにス
トリームを開始する要求を拒否することができる。これ
は、以下のような状況で発生する可能性がある。 1)何らかの構成要素がシステム内で障害を起こし、最
大動作を妨げる場合 2)(VS-CREATEコマンドのパラメータによって指定さ
れた)データ・ファイルへの同時ストリームの指定数を
超えた場合 3)導入構成によって指定された、システムからの同時
ストリームの指定数を超えた場合。
【0038】通信ノード14は、それぞれが潜在的に異
なる帯域幅(ストリーム)能力と物理定義を備えた異種
グループとして管理される。VS-CONNECTコマンドは、通
信ノード14とその関連帯域幅の一部または全部を割り
振って、等時データ・ストリーム送達を可能にするよう
に、メディア・ストリーマ10に指示するものである。
たとえば、メディア・ストリーマ10は、270Mビッ
ト/秒で通信ノード14を介して未圧縮データ・ストリ
ームを再生しながら、他の通信ノード14でそれよりか
なり低いデータ転送速度(通常、1〜16Mビット/
秒)で圧縮済みデータ・ストリームを同時に再生するこ
とができる。
【0039】記憶ノード16、17は、それぞれが潜在
的に異なる帯域幅(ストリーム)能力と物理定義を備え
た異種グループとして管理される。VS-CREATEコマンド
は、マルチメディア・ファイルとその関連メタデータ用
として1つまたは複数の記憶ノード16、17内の記憶
域を割り振るように、メディア・ストリーマ10に指示
するものである。VS-CREATEコマンドは、ストリーム密
度と、必要な同時ユーザの最大数の両方を指定する。
【0040】VS-CONNECT_LIST、VS-PLAY_AT_SIGNAL、VS
-RECORD_AT_SIGNALという3つの追加コマンドは、放送
業界の自動化制御システムをサポートする。VS-CONNECT
_LISTでは、アプリケーションは一連の再生コマンドを
サブシステムへの単一コマンドに指定することができ
る。メディア・ストリーマ10は、それぞれの再生コマ
ンドが制御インタフェースを介して出された場合と同じ
ようにそのコマンドを実行するが、1つのストリームの
送達から次のストリームの送達への移行はシームレスに
行われる。シーケンス例は以下の通りである。 1)制御ノード18は、FILE1、FILE2、FILE3の全部ま
たは一部を連続再生することを示す再生サブコマンドと
ともにVS-CONNECT_LISTコマンドを受け取る。制御ノー
ド18は、ファイルの最大データ転送速度を判定し、通
信ノード14上のその資源を割り振る。割り振られた通
信ノード14は、詳細な再生リストが与えられ、等時ス
トリームの送達を開始する。 2)FILE1の送達終了間近に、通信ノード14はFILE2の
送達を開始するが、ノードの出力ポートへの送達は可能
にしない。FILE1が完了するかまたは自動化制御インタ
フェースからの信号が発生すると、通信ノード14は出
力ポートを第1のストリームから第2のストリームに切
り替える。これは、1/30秒内または1標準ビデオ・
フレーム時間内に行われる。 3)通信ノード14は、FILE1に関連する資源の割振り
を解除する。
【0041】VS-PLAY_AT_SIGNALおよびVS-RECORD_AT_SI
GNALでは、外部の自動化制御インタフェースからの信号
により、ビデオ・フレーム境界に応じた正確さの再生お
よび記録動作のためにデータ転送を可能にすることがで
きる。前述の例では、VS-CONNECT_LISTは、外部の自動
化制御インタフェース信号に基づいてFILE1からFILE2へ
の移行を可能にするPLAY_AT_SIGNALサブコマンドを含
む。このサブコマンドがVS-PLAYの場合は、FILE1転送が
完了した場合のみ、移行が行われるはずである。
【0042】メディア・ストリーマ10が実行するその
他のコマンドは、記憶階層を管理する能力を提供する。
このようなコマンドとしては、VS-DUMP、VS-RESTORE、V
S-SEND、VS-RECEIVE、VS-RECEIVE_AND_PLAYがある。そ
れぞれのコマンドにより、1つまたは複数のマルチメデ
ィア・ファイルが記憶ノード16と2つの外部定義階層
エンティティとの間で移動する。 1)VS-DUMPおよびVS-RESTOREは、ディスク記憶ノード
16と、制御ノード18がアクセス可能なテープ記憶ユ
ニット17との間のデータの移動を可能にする。データ
移動は、制御アプリケーションによって開始するか、ま
たは制御ノード18によって自動的に開始することがで
きる。 2)VS-SENDおよびVS-RECEIVEは、マルチメディア・フ
ァイルを別のメディア・ストリーマに送信する方法を提
供する。任意で受信側のメディア・ストリーマは、ファ
イル全体を待たずに事前割振りされた通信ノードへの着
信ファイルを直ちに再生することができる。
【0043】メディア・ストリーマ・アーキテクチャに
定義されたモジュール設計および機能セットに加え、コ
ストを大幅に低減するために、等時データ転送用にデー
タ・フローが最適化される。特に、次のようになる。 1)低待ち時間スイッチの帯域幅が接続されたノードの
帯域幅を超え、ノード間の通信がほぼ非ブロック化にな
る。 2)プロセッサ・メモリへのデータ移動が回避され、よ
り多くの帯域幅が提供される。 3)データの処理が回避され、高価な処理ユニットが解
消される。 4)データ移動が慎重にスケジューリングされ、大規模
なデータ・キャッシュが回避される。
【0044】従来のコンピュータでは、メディア・スト
リーマ10は、低待ち時間スイッチ12を介してアダプ
タ間の対等データ移動を実行する能力を備えた相互接続
アダプタからなるシステムとして機能する。低待ち時間
スイッチ12は、データ記憶域にアクセスすることがで
き、「ホスト・コンピュータ」の介入なしであるアダプ
タのメモリから別のアダプタのメモリにデータ・セグメ
ントを移動する。
【0045】B. 等時性送達用のディジタル圧縮ビデオ
・データの階層管理 メディア・ストリーマ10は、階層記憶素子を提供す
る。これは、非常に小さいビデオ・システムから非常に
大きいシステムまでのスケーラビリティを可能にする設
計を示す。また、ビデオ・オン・デマンド、準ビデオ・
オン・デマンド、コマーシャル挿入、高品質未圧縮ビデ
オ記憶、取込み、再生の各種機能を満足するのに必要な
様々な要件に適応させるため、記憶管理のフレキシビリ
ティを提供する。
【0046】B1. テープ記憶装置 メディア・ストリーマ10では、高性能ディジタル・テ
ープからディスクにビデオ表示が移動され、エンド・ユ
ーザが必要とするかなり低いデータ転送速度で再生され
る。このため、ディスク・サブシステムには最小量のビ
デオ時間が格納される。システムが「準ビデオ・オン・
デマンド」である場合は、一度に各ムービーの5分程度
だけがディスク記憶装置に入っていればよい。これに
は、典型的な2時間ムービーの場合にそれぞれ5分のセ
グメントが22個だけ必要になる。その結果、ビデオ表
示に必要な総ディスク記憶容量が削減される。というの
は、ビデオ表示のすべてが一度にディスク・ファイルに
保管されるわけではないからである。ディスク・ファイ
ルには、ビデオ表示のうち、再生されている部分だけが
存在すればよい。
【0047】すなわち、ビデオ表示がその全体を表示す
るのに時間Tを必要とし、N個のデータ・ブロックを有
するディジタル表現として格納される場合、各データ・
ブロックは、ビデオ表示の約T/Nの期間に対応する部
分を格納する。N個のデータ・ブロックの最後のデータ
・ブロックは、T/Nの期間未満を格納する場合もあ
る。
【0048】システムに対する要求が高まり、ストリー
ム数が増えるにつれて、統計平均としては、ビデオ・ス
トリーム要求の約25%が同一ムービー用となるが、そ
の時間間隔は様々なサブセカンド時間間隔になり、視聴
者の分布は、このようなサブセカンド要求の50%以上
が15個のムービー・セグメントからなるグループの範
囲に入るようなものになる。
【0049】本発明の一態様は、この要求を満足する最
も適切な技術を使用することである。ランダム・アクセ
ス・カートリッジ・ローダ(IBM社製など)は、テー
プ当たりの記憶容量が高く、ドロワ当たり100本のテ
ープを機械ロボット式にロードし、ドロワ当たり最高2
つのテープ・ドライブを有する、ディジタル・テープ・
システムである。その結果、ムービー・オン・デマンド
・システムに有効なテープ・ライブラリになる。しか
し、本発明は、ムービーの大容量記憶を行うための非常
に低コストのディジタル・テープ記憶ライブラリ・シス
テムも可能にし、さらに低需要ムービーをテープから速
度一致バッファならびにビデオ圧縮解除および分散チャ
ネルへ直接再生することも可能になる。
【0050】階層テープ記憶をビデオ・システムに結合
することによるもう1つの利点は、ディスクが動作不能
になった場合にディスクに格納されているムービーを高
速バックアップできる点である。典型的なシステムは、
1つのディスク・ユニットが故障した場合にムービーを
テープから再ロードできるように「予備」ディスクを管
理する。これは、通常、RAIDまたはRAID状シス
テムと組み合わされるはずである。
【0051】B2. ディスク記憶システム ビデオ・ストリームに対する需要がより高レベルまで高
まると、ディスクにムービー全体を格納し、テープから
ディスクへビデオ・データを連続移動するのに必要なシ
ステム・パフォーマンス・オーバヘッドを節約すること
がより有効になる。ライブラリ内のムービーの通常の数
は一度に再生される数を10x〜100x上回るので、
典型的なシステムは、テープに格納されるムービーのラ
イブラリを収容することになる。ユーザが特定のムービ
ーを要求すると、そのムービーのセグメントがディスク
記憶ノード16にロードされ、そこから開始される。
【0052】同じムービーを見たいと思っているユーザ
が多数いる場合は、そのムービーをディスクに保管する
と有益である。このようなムービーは通常、今週の「ホ
ット」ムービーであり、ピーク視聴時間帯前にテープか
らディスクに事前ロードされる。これは、ピーク時間帯
中のシステムの作業付加を低減する傾向がある。
【0053】B3. キャッシュからのムービー 「ホット」ムービーの需要が高まるにつれて、メディア
・ストリーマ10は、MRUベースのアルゴリズムによ
り、主要ムービーをキャッシュに移動させることを決定
する。これには、相当なキャッシュ・メモリが必要であ
るが、コストと活動ストリーム数との比率に関しては、
キャッシュからサポート可能な量が多いと、メディア・
ストリーマ10の総コストが低下する。
【0054】ビデオ・データの性質と、どのビデオが再
生中で、次にどのデータが必要になり、どのくらいの長
さ必要になるかをいつもシステムが事前に把握している
ことから、キャッシュ、内部バッファ、ディスク記憶装
置、テープ・ローダ、バス・パフォーマンスなどの使用
を最適化するための方法が使用される。
【0055】すべての記憶媒体間の内容の配置と分散を
制御するアルゴリズムにより、広範囲の必要帯域幅への
等時データの送達が可能になる。等時データの送達はほ
ぼ100%予測可能なので、個のアルゴリズムは、ユー
ザがアクセスするデータのキャッシュが必ずしも予測可
能ではない、コンピュータ業界の他の部分用の従来のア
ルゴリズムとは非常に異なったものになる。
【0056】C. メディア・ストリーマ・データ・フロ
ー・アーキテクチャ 前述のように、メディア・ストリーマ10は、TVセッ
トや、LAN、ATMなどのネットワークを介して接続
されたセット・トップ・ボックスなどの様々な出力にビ
デオ・ストリームを送達する。記憶容量と同時ストリー
ム数の要件を満たすため、複数の記憶ノードおよび通信
ノードから構成される分散アーキテクチャが好ましい。
データは、記憶ノード16、17上に格納され、通信ノ
ードによって送達される。通信ノード14は、適切な記
憶ノード16、17からデータを獲得する。制御ノード
18は単一のシステム・イメージを外界に提供する。こ
れらのノードはクロス接続の低待ち時間スイッチ12に
よって接続される。
【0057】データ転送速度と送達されるデータは、各
ストリームごとに予測可能である。本発明では、資源を
完全利用し、各ストリームのデータが必要なときにあら
ゆる段階で使用可能になるようにするデータ・フロー・
アーキテクチャを構築するために、この予測可能性を利
用する。
【0058】記憶ノード16、17と通信ノード14と
の間のデータ・フローは、幾通りかに設定することがで
きる。
【0059】一般に通信ノード14は、複数ストリーム
の送達を担当する。これは、各ストリームのデータにつ
いて未解決の要求を持っている可能性があり、必要なデ
ータは様々な記憶ノード16、17から渡される可能性
がある。様々な記憶ノードが同一通信ノードへのデータ
送信を同時に試みた場合は、1つの記憶ノードだけがデ
ータを送信できるはずであり、残りの記憶ノードはブロ
ックされるはずである。このブロックにより、これらの
記憶ノードがデータ送信を再試行し、スイッチ利用を低
下させ、記憶ノードから通信ノードにデータを送信する
のに必要な時間に大幅な変動が生じるはずである。本発
明では、異なる記憶ノード16、17間でも通信ノード
14の入力ポートの競合が発生しない。
【0060】必要なバッファリングの量は次のように決
定することができる。まず、通信ノード14が記憶ノー
ド16、17に要求を送ってデータを受け取るのに必要
な平均時間を決定する。この時間は、記憶ノードに要求
を送る時間と応答を受け取る時間を、記憶ノードが要求
を処理するのに要する時間に加算することによって決定
される。次に記憶ノードは、ディスクからデータを読み
取るのに必要な平均時間と要求の処理に関連する遅延と
を加算することによって、要求を処理するのに必要な平
均時間を決定する。これは、要求を処理する際の待ち時
間である。必要なバッファリングの量は、ストリーム・
データ転送速度でこの待ち時間を補うのに必要なメモリ
記憶域である。以下に記載する解決策は、待ち時間を低
減し、その結果、必要な資源を低減するために、メディ
ア・ストリーマ環境の特殊な条件を利用する。前の段階
からのデータに関する要求の予測とともに、(たとえ
ば、記憶ノードおよび通信ノード内で)データのあらゆ
る段階で適時スケジューリング・アルゴリズムを使用す
ることによって、この待ち時間が低減される。
【0061】通信ノード14の入力ポートに対する記憶
ノード16、17の競合は、以下の2つの基準を使用す
ることによって解消される。 1)記憶ノード16、17は、特定の要求を受け取った
ときに通信ノード14にデータを送信する。 2)所与の通信ノード14は、通信ノード14が送達す
るストリームの数とは無関係に、通信ノード14からデ
ータを受け取るための1つの要求だけがいつでも未解決
になるように、記憶ノードから読み取るデータに関する
すべての要求を逐次化する。
【0062】前述のように、待ち時間の低減はあらゆる
段階での適時スケジューリング・アルゴリズムに依存す
る。その基本原理は、ストリームのデータ・フローのあ
らゆる段階で、そのデータに関する要求が到達したとき
にそのデータが使用可能になるというものである。これ
により、要求を送信し、データ転送を実行するのに必要
な時間まで待ち時間が低減される。したがって、制御ノ
ード18が特定のストリーム用のデータに関する要求を
記憶ノード16に送信すると、記憶ノード16はほとん
ど直ちにその要求に応答することができる。この特性
は、前述の競合問題の解決策にとって重要なものであ
る。
【0063】メディア・ストリーマ環境では、データへ
のアクセスは順次アクセスであり、ストリームのデータ
転送速度は予測可能なので、記憶ノード16は、特定の
ストリームのデータに対する次の要求がいつ予想される
かを予測することができる。要求に応答して供給される
データのIDも分かっている。記憶ノード16は、デー
タが格納されている場所と、残りのストリームに関して
予想される要求も把握している。
【0064】この情報と、ディスクからの読取り要求を
処理するための予想時間とが与えられると、通信ノード
14からの要求が到着する直前にそのデータが使用可能
になるように、記憶ノード16が読取り動作をスケジュ
ーリングする。たとえば、ストリーム・データ転送速度
が250KB/秒で、記憶ノード16が1つのビデオの
4セグメントおきに格納している場合、そのストリーム
用のデータに関する要求は4秒おきに到着することにな
る。(読取り要求が500m秒で完了するという必須の
確信度で)読取り要求を処理するための時間が500m
秒の場合、その要求は、通信ノード14からの要求の予
測受取りより少なくとも500m秒前にスケジューリン
グされる。
【0065】C1. 制御ノード18の機能 制御ノード18の機能は、メディア・ストリーマ10と
外界とのインタフェースを制御フローに提供することで
ある。また、メディア・ストリーマ10自体が分散シス
テムとして実現されていても外界に単一のシステム・イ
メージを提示する。制御ノードの機能は、定義済みのア
プリケーション・プログラム・インタフェース(AP
I)によって実現される。このAPIは、メディア・ス
トリーマ10内にビデオ・コンテンツを作成する機能な
らびにビデオ・データの再生/記録などのリアルタイム
機能を提供する。制御ノード18は、ビデオを再生また
は停止するためのリアルタイム要求を通信ノード14に
転送する。
【0066】C2. 通信ノード14 通信ノード14は、接続/切断要求を処理するためのス
レッド、再生/停止要求および休止/再開要求を処理す
るためのスレッド、ジャンプ要求(順方向シークまたは
逆方向シーク)を処理するためのスレッドという、リア
ルタイム・ビデオ・インタフェース処理専用のスレッド
を(同一プロセス内に)持っている。さらに、このノー
ドは、記憶ノード16からストリーム用のデータを読み
取る入力スレッドと、出力ポートにデータを書き込む出
力スレッドも有する。
【0067】ビデオの再生中にデータを処理するための
通信ノード14内のデータ・フロー構造を図7に示す。
このデータ・フロー構造は、記憶ノード16からデータ
を獲得する入力スレッド100を含む。入力スレッド1
00は、一度に1つの記憶ノードだけがデータを送信す
るように、記憶ノードからのデータの受取りを逐次化す
る。入力スレッド100は、出力スレッド102がスト
リーム用のバッファの書出しを必要とするときに、その
バッファが必ずデータで充填されるようにするものであ
る。さらに、ストリームに関する入力動作と出力動作の
両方をスケジューリングするスケジューラ機能104も
存在する。この機能は、入力スレッド100と出力スレ
ッド102の両方に使用される。
【0068】各スレッドは、複数の要求からなる待ち行
列を処理する。出力スレッド102用の要求待ち行列1
06には、ストリームを識別し、空にする必要がある関
連バッファを指し示す要求が入っている。これらの要求
は、ビデオ出力インタフェースに書き込む必要がある時
間順に配置されている。出力スレッド102がバッファ
を空にすると、そのスレッドはそれに空のマークを付
け、(バッファを充填するために)入力スレッドへのス
トリームに関する要求を入力待ち行列108に待ち行列
化するためにスケジューラ機能104を呼び出す。入力
スレッド100用の待ち行列108も、バッファを充填
する必要がある時間順に配置されている。
【0069】入力スレッド100は、要求時間別に配置
された要求待ち行列108も処理する。そのタスクは、
記憶ノード16からバッファを充填することである。そ
の待ち行列内の各要求ごとに、入力スレッド100は以
下のアクションを行う。入力スレッド100は、そのス
トリーム用の次のセグメントのデータを有する記憶ノー
ド16を判定する(ビデオ・ストリーム用のデータは複
数の記憶ノード間にストライプ化されることが好まし
い)。次に入力スレッド100は、(スイッチ12によ
るメッセージを使用して)ストリーム用のデータを要求
する所定の記憶ノードに要求を送り、データの到着を待
つ。
【0070】このプロトコルは、いつでも1つの記憶ノ
ード16だけが特定の通信ノード14にデータを送信す
るようにするもので、すなわち、記憶ノードが通信ノー
ド14に非同期にデータを送信する場合に発生しうる競
合を除去する。要求したデータを記憶ノード16から受
け取ると、入力スレッド100はそのバッファに満杯の
マークを付け、出力スレッド102に(ストリームのデ
ータ転送速度に基づいて)要求をバッファリングしてバ
ッファを空にするためにスケジューラ104を呼び出
す。
【0071】C3. 記憶ノード16 ストリームの再生をサポートするためのデータ・フロー
用の記憶ノード16の構造を図8に示す。記憶ノード1
6は、ビデオ・データが入っているバッファのプールを
有する。これは、各論理ディスク・ドライブ用の入力ス
レッド110と、スイッチ・マトリックス12を介して
通信ノード14にデータを書き出す出力スレッド112
とを有する。また、これは、動作をスケジューリングす
るために入力スレッド110と出力スレッド112が使
用するスケジューラ機能114も有する。また、データ
を要求する通信ノード14からの要求を処理するメッセ
ージ・スレッド116も有する。
【0072】データを要求する通信ノード14からメッ
セージを受け取ると、通常、メッセージ・スレッド11
6は、すでにバッファリングされている要求済みデータ
を検出し、その要求(待ち行列118)を出力スレッド
に待ち行列化する。要求は時間順に待ち行列化される。
出力スレッド112はバッファを空にし、それを空きバ
ッファのリストに追加する。それぞれの入力スレッド1
10は独自の要求待ち行列を持っている。関連ディスク
・ドライブ上にビデオ・データを有する活動ストリーム
ごとに、次のバッファを充填するために(データ転送速
度、ストライプ化のレベルなどに基づいて)要求時間順
に順序づけられた待ち行列120が維持される。スレッ
ドは待ち行列120内の最初の要求を取り、空きバッフ
ァをそれに関連づけ、ディスク・ドライブからのデータ
でバッファを充填するための入出力要求を出す。バッフ
ァが充填されると、そのバッファは満杯バッファのリス
トに追加される。これは、ストリーム用のデータに関す
る要求を受け取ったときにメッセージ・スレッド116
が検査するリストである。通信ノード14からデータに
関するメッセージを受け取り、要求されたバッファが満
杯になっていない場合、それは未達成の締切り期限であ
ると見なされる。
【0073】C4. 適時スケジューリング 適時スケジューリング技法は、通信ノード14と記憶ノ
ード16の両方で使用する。この技法では、以下のパラ
メータを使用する。 bc=通信ノード14でのバッファ・サイズ bs=記憶ノード16でのバッファ・サイズ r =ビデオ・ストリーム・データ転送速度 n =ビデオ・ストリーム用のデータが入っているビデ
オのストライプ数 sr=ストライプ・データ転送速度 sr=r/n
【0074】使用するアルゴリズムは以下の通りであ
る。 (1)sfc=1つのストリームに関する通信ノードで
の要求の頻度=r/bc (2)dfc=記憶ノードでのディスク読取り要求の頻
度=sr/bs
【0075】ビデオ・データの「ストライプ化」につい
ては、以下のセクションHで詳述する。
【0076】要求は、上記の式で求めた頻度でスケジュ
ーリングされ、そのデータが必要になる前に完了するよ
うにスケジューリングされる。これは、ビデオ・ストリ
ームの再生開始時にデータ・パイプをデータで「満た
す」ことによって実施される。
【0077】sfcとdfcの計算は、ストリームを再
生する通信ノード14とビデオ・データが入っている記
憶ノード16の両方で、接続時に行われる。頻度(また
はその逆である間隔)は、記憶ノード16でディスクか
らの入力をスケジューリングする際(図8を参照)なら
びに通信ノード14でポートへの出力(および記憶ノー
ドからの入力)をスケジューリングする際(図7を参
照)に使用される。
【0078】適時スケジューリングの例 4つの記憶ノードでストライプ化されたビデオから2.
0mビット/秒(250,000バイト/秒)でストリ
ームを再生する。また、通信ノードでのバッファ・サイ
ズが50,000バイトで、ディスク・ノードでのバッ
ファ・サイズが250,000バイトであると想定す
る。さらに、データは250,000バイト/秒のセグ
メントにストライプ化されていると想定する。
【0079】適時アルゴリズムの様々なパラメータの値
は以下の通りである。 bc =250,000バイト(通信ノード14でのバ
ッファ・サイズ) bs =250,000バイト(記憶ノード16でのバ
ッファ・サイズ) r =250,000バイト/秒(ストリーム・デー
タ転送速度) n =4(そのストリームのビデオがストライプ化さ
れたストライプの数) sr =r/n=6250バイト/秒または250,0
00/4秒、すなわち、4秒おきに250,000バイ
ト sfc=r/bc=1/秒(通信ノード14での要求の
頻度) dfc=r/bs=1/秒(記憶ノード16での要求の
頻度)
【0080】ストリームの再生を担当する通信ノード1
4は、1/秒の頻度または1.0秒の間隔で入力要求と
出力要求をスケジューリングする。通信ノード14がス
トリーム専用の2つのバッファを持っていると想定する
と、通信ノード14により、それがビデオ・ストリーム
の出力を開始する前に両方のバッファが充填されるよう
になる。
【0081】接続時に通信ノード14は、ビデオ・デー
タのストライプが入っている4つの記憶ノード16のす
べてにメッセージを送信した状態になる。最初の2つの
記憶ノードは、ストライプからの最初のセグメントに関
する要求を予想し、バッファを充填するためのディスク
要求をスケジューリングする。通信ノード14は、それ
ぞれのサイズが250,000バイトである2つのバッ
ファに最初の2つのセグメントを読み込むための入力要
求(図7を参照)をスケジューリングする。再生要求が
到着すると、通信ノード14はまず、2つのバッファが
満杯になっていることを確認し、まもなく再生を開始す
ることをすべての記憶ノード16に通知する。次に、ス
トリームの再生を開始する。最初のバッファが出力され
る(2Mビット/秒(または250,000バイト/
秒)で1秒を要する)と、通信ノード14は記憶ノード
16からデータを要求する。次に通信ノード14は、1
秒の間隔でそれぞれの記憶ノードから連続してデータを
要求する。すなわち、4秒の間隔で特定の記憶ノードか
らデータを要求することになる。通信ノードは必ず一度
に250,000バイトのデータを要求する。通信ノー
ドが記憶ノード16からデータを要求する頻度の計算
は、接続時に通信ノード14によって行われる。
【0082】記憶ノード16は、ストリーム・データに
関する要求を次のように予想する。ストライプ3(以下
のセクションHを参照)が入っている記憶ノード16
は、再生が開始されてから1秒後に次の250,000
バイト・セグメントに関する要求を予想することがで
き、その後は4秒おきに予想することができる。ストラ
イプ4が入っている記憶ノード16は、再生が開始され
てから2秒後に要求を予想することができ、その後は4
秒おきに予想することができる。ストライプ2が入って
いる記憶ノード16は、再生が開始されてから4秒後に
要求を予想することができ、その後は4秒おきに予想す
ることができる。すなわち、各記憶ノード16は、(前
述のように)開始時間から4秒おきに250,000バ
イトの頻度でディスクからの入力をスケジューリングす
る。このスケジューリングは、再生コマンドの受信後
と、ストリーム用のバッファが出力された後に、記憶ノ
ード16で実施される。要求頻度の計算は、接続要求が
受信されたときに行われる。
【0083】また、通信ノード14と記憶ノード16で
異なるバッファ・サイズを使用することも可能である。
たとえば、通信ノード14のバッファ・サイズを50,
000バイトにし、記憶ノード16のバッファ・サイズ
を250,000バイトにすることもできる。この場
合、通信ノード14での要求の頻度は(250,000
/50,000)5/秒または0.2秒おきになり、記
憶ノード16での頻度は1/秒のままになる。通信ノー
ド14は、最初のストライプが入っている記憶ノードか
ら最初の2つのバッファ(100,000バイト)を読
み取る(ただし、セグメント・サイズは250,000
バイトであり、最初のセグメントが入っている記憶ノー
ド16が接続時にディスクからの入力をスケジューリン
グすることになることに留意されたい)。再生が開始さ
れると、通信ノード14は記憶ノード16にそれを通知
し、最初のバッファを出力する。バッファが空になる
と、通信ノード14は次の入力をスケジューリングす
る。バッファは0.2秒おきに空になり、通信ノード1
4はその頻度で記憶ノード16からの入力を要求し、同
じ頻度で出力もスケジューリングする。
【0084】この例では、記憶ノード16は、5つの要
求が0.2秒の間隔で到着することを予想することがで
きる(ただし、100,000バイトがすでに読み取ら
れている最初のセグメントは除く。したがって、再生の
開始後に4秒おきに3つの要求が到着する。すなわち、
次のシーケンスの5つの要求(50,000バイトごと
に1つずつ)は前のシーケンスの最後の要求から4秒後
に到着する)。記憶ノードでのバッファ・サイズは25
0,000バイトなので、記憶ノード16は(前述の例
と同様に)4秒おきにディスクからの入力をスケジュー
リングする。
【0085】C5. 再生アクションの詳細 以下のステップは、ストリームの再生アクション用の制
御フロートデータ・フローを追跡するものである。この
ステップについては、再生用のビデオをセットアップす
るために図9に示す。このステップは時間順になってい
る。 1.ユーザが事前にロードされている特定のビデオを備
えたポートをセットアップするためのコマンドを呼び出
す。要求が制御ノード18に送られる。 2.制御ノード18内のスレッドが要求とVS-CONNECT機
能を受け取る。 3.制御ノード・スレッドがそのビデオ用のカタログ項
目をオープンし、ストライプ化したファイル情報でその
ビデオ用のメモリ記述子をセットアップする。 4.制御ノード18が通信ノード14と、要求に関する
そのノード上の出力ポートを割り振る。 5.次に制御ノード18が割り振られた通信ノード14
にメッセージを送る。 6.通信ノード14内のスレッドが制御ノード18から
メッセージを受け取る。 7.通信ノード・スレッドがストライプ・ファイルが入
っている記憶ノード16にオープン要求を送る。 8、9.オープン要求が送られる各記憶ノード16内の
スレッドが、要求を受け取り、要求されたストライプ・
ファイルをオープンし、必要な資源を割り振ると同時
に、ディスクからの入力をスケジューリングする(スト
ライプ・ファイルに最初の複数のセグメントが入ってい
る場合)。 10.記憶ノード・スレッドがストライプ・ファイル用
のハンドル(ID)を付けて要求を通信ノード14に送
り返す。 11.通信ノード14内のスレッドが関連するすべての
記憶ノードからの応答を待ち、正常終了応答を受け取っ
たときに、出力ポートのセットアップを含め、ストリー
ム用の資源を割り振る。 12.次に通信ノード14がビデオ・データ・パイプラ
インを満たすために入力をスケジューリングする。 13.次に通信ノード14が制御ノード18に応答を送
り返す。 14.通信ノード14から正常終了応答を受け取ると、
制御ノード・スレッドがストリームのこのインスタンス
に関連する後続要求で使用されるストリーム用のハンド
ルをユーザに返す。
【0086】ビデオ・ストリームが正常にセットアップ
された後で再生要求を受け取ったときに行われるアクシ
ョンのステップを以下に時間順に示す。このステップに
ついては、図10に示す。 1.ユーザが再生コマンドを呼び出す。 2.制御ノード18内のスレッドが要求を受け取る。 3.制御ノード18内のスレッドは、その要求がセット
アップされたストリーム用であることを確認し、割り振
られた通信ノード14に再生要求を送る。 4.通信ノード14内のスレッドが再生要求を受け取
る。 5.関連する記憶ノード16がこのストリーム用の後続
要求を予想して独自の動作をスケジューリングできるよ
うに、通信ノード14は関連する記憶ノード16のすべ
てに再生要求を送る。「関連する」記憶ノードとは、対
象となるビデオ表示の少なくとも1つのストライプを格
納するものである。 6.関連する各記憶ノード16内のスレッドが要求を受
け取り、そのストリーム用の今後の要求に対応するため
にスケジュールをセットアップする。関連する各記憶ノ
ード16は、通信ノード14に応答を送り返す。 7.通信ノード・スレッドにより、パイプラインが満た
され(ビデオ・データが事前ロードされ)、ストリーム
の出力が可能になる。 8.次に通信ノード14が制御ノード18に応答を送り
返す。 9.制御ノード18は、ストリームが再生中のユーザに
応答を送り返す。
【0087】入力スレッドと出力スレッドは、停止/休
止コマンドを受け取るかまたはビデオが完了するまで、
指定のポートにビデオ表示を送達し続ける。
【0088】D. メディア・ストリーマへのユーザ・イ
ンタフェースとアプリケーション・インタフェース メディア・ストリーマ10は、受動サーバであり、外部
制御システムから制御コマンドを受け取ったときにビデ
オ・サーバ動作を実行する。図11は、メディア・スト
リーマ10のアプリケーション用のシステム構成を示す
もので、システム内に存在する各種インタフェースを示
している。
【0089】メディア・ストリーマ10は、その動作を
制御するためにユーザとアプリケーション・プログラム
に対して以下の2通りのレベルのインタフェースを提供
する。 ユーザ・インタフェース(図11の(A)) アプリケーション・プログラム・インタフェース(図1
1の(B))
【0090】両方のレベルのインタフェースはクライア
ント制御システム上に設けられ、これらのシステムが遠
隔プロシージャ呼出し(RPC)機構を介してメディア
・ストリーマ10と通信する。メディア・ストリーマ1
0上ではなく、クライアント制御システム上にインタフ
ェースを設けることにより、メディア・ストリーマ10
からのアプリケーション・ソフトウェアの分離が達成さ
れる。このため、クライアント制御システム上のアプリ
ケーションを変更したり交換する必要がなくなるので、
メディア・ストリーマ10のアップグレードまたは交換
が容易になる。
【0091】D1. ユーザ通信 メディア・ストリーマ10は、以下の2種類のユーザ・
インタフェースを提供する。 コマンド行インタフェース グラフィカル・ユーザ・インタフェース
【0092】D1.1. コマンド行インタフェース コマンド行インタフェースは、ユーザ・コンソールまた
はインタフェース(図1の65、66)上にプロンプト
を表示する。コマンド・プロンプトの後、ユーザは、パ
ラメータが後に続くコマンド・キーワードからコマンド
を入力する。コマンドが実行されると、インタフェース
はもう一度プロンプトを表示し、次のコマンド入力を待
つ。メディア・ストリーマ・コマンド行インタフェース
は、特に以下の2種類の動作に適している。
【0093】バッチ制御: バッチ制御は、一連のビデ
オ制御コマンドを含むコマンド・スクリプトの実行開始
を必要とする。たとえば、放送業界では、長期間の間、
事前記録されスケジューリングされた番組を含めるため
に、前もってコマンド・スクリプトを作成することがで
きる。スケジューリングされた開始時には、さらにオペ
レータが介入せずに放送を開始するための単一バッチ・
コマンドにより、このコマンド・スクリプトが実行され
る。
【0094】自動制御: 自動制御は、メディア・スト
リーマ10上に格納されたデータを更新/再生するため
にプログラムによって生成されたコマンドのリストの実
行を必要とする。たとえば、通信社では、新しいデータ
を毎日メディア・ストリーマ10にロードする可能性が
ある。この新しいデータを管理するアプリケーション制
御プログラムは、メディア・ストリーマ・コマンド(た
とえば、ロード、削除、アンロード)を生成して、新し
いデータでメディア・ストリーマ10を更新する。生成
されたコマンドは、コマンド行インタフェースにパイピ
ングして実行することができる。
【0095】D1.2. グラフィカル・ユーザ・インタフ
ェース(GUI) 図12は、メディア・ストリーマGUIの例である。こ
のインタフェースは、再生、休止、巻戻し、停止などの
制御ボタンを有するビデオ・カセット・レコーダの制御
パネルに似ている。さらに、操作がユーザによる選択を
必要とする場合は(たとえば、ロードではロードされる
ビデオ表示をユーザが選択する必要がある)、選択パネ
ルも提供する。このGUIは、特に直接ユーザ対話に有
用である。
【0096】このGUIには、「バッチ」ボタン130
と「インポート/エクスポート」ボタン132が含まれ
ている。それぞれの機能については後述する。
【0097】D2. ユーザ機能 メディア・ストリーマ10は、以下のように3通りの一
般的なタイプのユーザ機能を提供する。 インポート/エクスポート VCR状の再生制御 拡張ユーザ制御
【0098】D2.1. インポート/エクスポート インポート/エクスポート機能は、ビデオ・データをメ
ディア・ストリーマ10内に移動したり、メディア・ス
トリーマ10から移動する場合に使用する。ビデオをク
ライアント制御システムからメディア・ストリーム10
に移動(インポート)する場合、ビデオ・データのソー
スは、クライアント制御システムのファイルまたは装置
として指定される。ビデオ・データのターゲットは、メ
ディア・ストリーム10内の固有の名前で指定される。
ビデオをメディア・ストリーマ10からクライアント制
御装置に移動(エクスポート)する場合、ビデオ・デー
タのソースは、メディア・ストリーマ10内のその名前
によって指定され、ビデオ・データのターゲットは、ク
ライアント制御システムのファイルまたは装置として指
定される。
【0099】ユーザ機能のインポート/エクスポート・
カテゴリでは、メディア・ストリーマ10は、ビデオを
除去するための「削除」機能と、格納されているビデオ
に関する情報(名前、データ転送速度など)を獲得する
ための「属性獲得」機能も提供する。
【0100】GUIによりインポート/エクスポート機
能を呼び出すには、ユーザは「インポート/エクスポー
ト」ソフト・ボタン132(図12)をクリックする。
これにより、個別の機能を呼び出すための「インポー
ト」、「エクスポート」、「削除」、「属性獲得」の各
ボタンを含む新しいパネル(図示せず)が表れる。
【0101】D2.2. VCR状の再生制御 メディア・ストリーマ10は、1組のVCR状の再生制
御を提供する。図12のメディア・ストリーマGUI
は、ロード、イジェクト、再生、低速、休止、停止、巻
戻し、早送り、ミュートの各機能が使用できることを示
している。これらの機能は、GUI上の対応するソフト
・ボタンをクリックすることによって活動化される。
【0102】メディア・ストリーマ・コマンド行インタ
フェースは、以下のように同様の1組の機能を提供す
る。 セットアップ−特定の出力ポート向けにビデオをセット
アップする。ビデオ・カセットをVCRにロードするの
に類似している。 再生−セットアップされているビデオの再生を開始する
または休止されたビデオの再生を再開する。 休止−ビデオの再生を休止する。 切離し−VCRからビデオ・カセットをイジェクトする
のに類似している。 状況−ビデオ再生中、経過再生時間など、ポートの状況
を表示する。
【0103】D2.3. 拡張ユーザ制御 放送業界などの特定のアプリケーション要件をサポート
するため、本発明は以下のように拡張ユーザ制御を提供
する。 再生リスト−複数のビデオと、ポート上で再生するその
順序をセットアップする。 再生長−ビデオを再生する時間を制限する。 バッチ動作−コマンド・ファイルに格納されている動作
のリストを実行する。
【0104】生成リスト制御と再生長制御は、GUI上
の「ロード」ボタン134によって実施される。それぞ
れの「セットアップ」コマンドは、特定のポート用の再
生リストに追加されるビデオを指定する。また、各コマ
ンドはビデオが再生される時間制限も指定する。図13
は、再生リストに追加するビデオを選択するためならび
にビデオの再生の時間制限を指定するためにGUI上の
「ロード」ソフト・ボタン134のクリックに応答して
表示されるパネルを示している。ユーザが「ファイル」
ボックス136内のファイル名をクリックすると、その
名前が「ファイル名」ボックス138に入力される。ユ
ーザが「追加」ボタン140をクリックすると、「ファ
イル名」ボックス138内のファイル名がその時間制限
とともに「再生リスト」ボックス142に付加され、現
在の再生リストが(再生リスト上の各ビデオの時間制限
とともに)表示される。
【0105】バッチ動作は、GUI上の「バッチ」ソフ
ト・ボタン130を使用することによって実施される
(図12を参照)。
【0106】「バッチ」ボタン130が活動化される
と、ユーザがコマンド・ファイル名を選択または入力で
きるようにするためにバッチ選択パネルが表示される
(図14を参照)。バッチ選択パネル上の「実行」ボタ
ン144を押すと、選択されたコマンド・ファイル内の
コマンドの実行が開始される。図14は、GUI上の
「バッチ」および「実行」操作の例である。たとえば、
ユーザがまずc:/batchcmdディレクトリ内の「batch2」
ファイルにコマンド・スクリプトを作成したとする。次
にユーザは、図12に示すGUI上の「バッチ」ボタン
130をクリックして、バッチ選択パネルを表示させ
る。次にユーザは、バッチ選択パネルの「ディレクト
リ」ボックス146内の「c:/batchcmd」をクリックす
る。この結果、「ファイル」ボックス148内にファイ
ルのリストが表示される。「ファイル」ボックス148
内の「batch2」行をクリックすると、それが「ファイル
名」ボックス150に入力される。最後にユーザは、
「実行」ボタン144をクリックして、「batch2」ファ
イルに格納されているコマンドを順次実行する。
【0107】D3. アプリケーション・プログラム・イ
ンタフェース アプリケーション制御プログラムがメディア・ストリー
マ10と対話して、その動作を制御できるように、メデ
ィア・ストリーマ10は上記のアプリケーション・プロ
グラム・インタフェース(API)を提供する(もう一
度図11を参照してもよい)。
【0108】このAPIは、遠隔プロシージャ呼出し
(RPC)ベースのプロシージャから構成される。アプ
リケーション制御プログラムは、プロシージャ呼出しを
行うことによって、API機能を呼び出す。このプロシ
ージャ呼出しのパラメータは、実行される機能を指定す
るものである。アプリケーション制御プログラムは、メ
ディア・ストリーマ10の論理位置および物理位置とは
無関係に、API機能を呼び出す。ビデオ・サービスを
提供するためのメディア・ストリーマ10のIDは、ク
ライアント制御システムの始動時または任意でアプリケ
ーション制御プログラムの開始時に設定される。メディ
ア・ストリーマ10のIDが設定されると、プロシージ
ャ呼出しは正しいメディア・ストリーマ10に送られて
サービスを提供する。
【0109】以下に示すものを除き、API機能は同期
的に処理される。すなわち、機能呼出しが呼出し側に返
されると、その機能が完了し、メディア・ストリーマ1
0では追加の処理は一切必要なくなる。API機能を同
期動作として構成することによって、コンテキスト切替
え、非同期信号送出、フィードバックのための追加の処
理オーバヘッドが回避される。厳重なリアルタイム要件
があるため、このパフォーマンスはビデオ・サーバ・ア
プリケーションでは重要なものである。
【0110】API機能の処理は、要求を受け取った順
序で行われる。このため、ユーザ操作が正しい順序で確
実に処理される。たとえば、ビデオは先に接続(セット
アップ)しなければ、再生することができない。もう1
つの例は、「再生」要求の後に「休止」要求が続く場合
に順序を切り替えると、全く異なる結果がユーザにもた
らされる点である。
【0111】VS-PLAY機能は、ビデオの再生を開始し、
(ビデオ再生の完了まで待たずに)直ちに呼出し側に制
御を返すものである。このアーキテクチャの原理は、ビ
デオ再生の時間が一般に長く(数分から数時間)しかも
予測不能である(休止コマンドや停止コマンドが存在す
る可能性がある)ので、VS-PLAY機能を非同期にするこ
とにより、本来なら予測不能なほど長時間にわたって割
り振られる資源が解放されるというものである。
【0112】ビデオ再生が完了すると、メディア・スト
リーマ10は、アプリケーション制御プログラムが指定
したシステム/ポート・アドレスへの非同期呼出しを生
成し、アプリケーション制御プログラムにビデオ完了事
象を通知する。このシステム/ポート・アドレスは、ア
プリケーション制御プログラムがAPIのVS-CONNECT機
能を呼び出してビデオを接続するときにこのプログラム
によって指定される。ただし、VS-PLAY用のコールバッ
ク・システム/ポート・アドレスは個々のビデオ・レベ
ルで指定されることに留意されたい。これは、アプリケ
ーション制御プログラムが任意の制御点にビデオ完了メ
ッセージを自由に送ることができることを意味する。た
とえば、あるアプリケーションが1つの中央システム/
ポートを使用して、クライアント制御システムの多くま
たは全部のビデオ完了メッセージを処理することもでき
る。別のアプリケーションでは、複数の異なるシステム
/ポート・アドレスを使用して、1つのクライアント制
御システム用のビデオ完了メッセージを処理することが
できる。
【0113】APIアーキテクチャにより、メディア・
ストリーマ10は、異種ハードウェア/ソフトウェア・
プラットフォームを備え、同期タイプと非同期タイプ両
方の動作を効率的に処理する、複数の並行クライアント
制御システムをサポートしながら、動作要求の正しい順
序づけを確保できるようになる。たとえば、メディア・
ストリーマ10ではPS/2システム上で動作するIB
M OS/2オペレーティング・システムを使用し、ク
ライアント制御システムではRS/6000システム上
で動作するIBM AIXオペレーティング・システム
を使用することができる(IBM、OS/2、PS/
2、AIX、RS/6000はすべてIBM社の商標で
ある)。
【0114】D4. クライアント/メディア・ストリー
マ間通信 クライアント制御システムとメディア・ストリーマ10
との間の通信は、既知のタイプの遠隔プロシージャ呼出
し(RPC)機構などにより実施される。図15は、ク
ライアント制御システム11とメディア・ストリーマ1
0との間の通信用のRPC構造を示している。メディア
・ストリーマの諸機能を呼び出す際に、クライアント制
御システム11はRPCクライアントとして機能し、メ
ディア・ストリーマ10はRPCサーバとして機能す
る。これは、図15の(A)に示されている。ただし、
非同期機能すなわちVS-PLAYの場合、それが完了すると
メディア・ストリーマ10がクライアント制御システム
11への呼出しを生成する。この場合、クライアント制
御システム11はRPCサーバとして機能し、メディア
・ストリーマ10はRPCシステムになる。これは、図
15の(B)に示されている。
【0115】D4.1. クライアント制御システム11 クライアント制御システム11では、ユーザ・コマンド
行インタフェースが3つの内部並列プロセス(スレッ
ド)から構成される。第1のプロセスは、ユーザコマン
ド行入力を解析し、API機能を呼び出すことによって
要求された動作を実行し、その結果、メディア・ストリ
ーマ10へのRPC呼出しが行われる(図15の
(A))。このプロセスは、様々な出力ポート向けにセ
ットアップされ再生されるビデオの状況の追跡も行う。
第2のプロセスは、それぞれの指定時間制限と照らし合
わせて、各ビデオの経過再生時間を定期的に検査する。
あるビデオがその時間制限に達した場合、そのビデオは
停止されて切断され、同一出力ポート用の待機待ち行列
内に次のビデオがある場合はそのビデオが開始される。
クライアント制御システム11の第3のプロセスは、メ
ディア・ストリーマ10からVS-PLAY非同期終了通知を
受け取るためにRPCサーバとして機能する(図15の
(B))。
【0116】D4.2. メディア・ストリーマ10 メディア・ストリーマ10の始動時に、クライアント制
御システム11とメディア・ストリーマ10との間のR
PCをサポートするために、2つの並列プロセス(スレ
ッド)が呼び出される。第1のプロセスは、クライアン
ト制御システム11からのAPI機能呼出し用のRPC
サーバとして機能する(図15の(A))。この第1の
プロセスは、RPC呼出しを受け取り、要求された機能
(VS-CONNECT、VS-PLAY、VS-DISCONNECTなど)を実行す
るために適切なプロシージャをディスパッチする。第2
のプロセスは、適切なクライアント制御システム・アド
レスを呼び出してアプリケーション制御プログラムに非
同期終了事象を通知するためにRPCクライアントとし
て機能する。このプロセスは、ビデオの再生を処理する
他のプロセスによって作成された内部パイプ上で自ら待
機するのをブロックする。ビデオの末尾または異常終了
条件に達すると、第2のプロセスはパイプにメッセージ
を書き込む。ブロックされたプロセスはメッセージを読
み取り、クライアント制御システムがその状況を更新
し、それに応じてアクションを行えるように、クライア
ント制御システム11のポート・アドレスへのRPC呼
出しを行う(図15の(B))。
【0117】E. ビデオ送達用のメディア・ストリーマ
のメモリ構成と最適化 本発明の一態様は、キャッシュ管理と関連の入出力動作
をビデオ送達環境に応じて調整するための統合機構を提
供するものである。本発明のこの態様について、以下に
詳述する。
【0118】E1. 先行技術のキャッシュ管理 キャッシュ管理のための先行技術の機構は、キャッシュ
・コントローラとオペレーティング・システムのファイ
ル・サブシステムに組み込まれている。このような機構
は、汎用目的で設計されており、ビデオ送達の要求を満
たすように専門化されてはいない。
【0119】図16は、従来のキャッシュ管理機構をビ
デオ送達用に構成するために可能な1つの方法を示して
いる。この技法は、(1つのファイルにするには大きす
ぎるので)2つのディスク・ファイル160、162に
分割したビデオと、ファイル・システム164、メディ
ア・サーバ168、ビデオ・ドライバ170を収容して
いるプロセッサとを使用している。また、2つのビデオ
・ストリーム用の2つのビデオ・アダプタ・ポート17
2、174も示されている。さらに、ディスク・ファイ
ル160のセグメントを主記憶装置に読み込み、その
後、そのデータを第1のビデオ・ポート172に書き込
むためのデータ・フローと、同じセグメントを読み取っ
てそれを第2のビデオ・ポート174に書き込むための
データ・フローも示されている。図16は、本発明のメ
ディア・ストリーマ10が対処し克服する先行技術の問
題を示すためのものである。
【0120】図16のステップA1〜A12について説
明する。 A1. メディア・サーバ168がファイル・システム
166を呼び出して、セグメントSkをビデオ・ドライ
バ170内のバッファに読み込む。 A2. ファイル・システム166がSkの一部をファ
イル・システム166内のキャッシュ・バッファに読み
込む。 A3. ファイル・システム166がキャッシュ・バッ
ファをビデオ・ドライバ170内のバッファにコピーす
る。ステップA2とA3を何回か繰り返す。 A4. ファイル・システム166がビデオ・ドライバ
170を呼び出して、Skをビデオ・ポート1(17
6)に書き込む。 A5. ビデオ・ドライバ170がSkの一部をビデオ
・ドライバ170内のバッファにコピーする。 A6. ビデオ・ドライバ170がバッファをビデオ・
ポート1(176)に書き込む。 ステップA5とA6を何回か繰り返す。
【0121】ステップA7〜A12は同様に機能する
が、ポート1をポート2に変更する。ポート2に必要な
ときにSkの一部がファイル・システム166のキャッ
シュ内にある場合、ステップA8はスキップしてもよ
い。
【0122】お分かりのように、ビデオ送達には、複数
のデータ・ストリームによって大量のデータを転送する
ことが必要である。全体的な利用状況は、キャッシュを
最適化するための2通りの従来パターン、ランダムと順
次のいずれにも適合しない。ランダム・オプションを選
択すると、ほとんどのキャッシュ・バッファは、最近読
み取られたビデオ・セグメントからのデータを収容する
可能性があるが、期限が切れる前にそれらを読み取るた
めのビデオ・ストリームは一切準備されなくなる。順次
オプションを選択した場合は、最大使用頻度キャッシュ
・バッファがまず再使用されるので、ファイル・システ
ム・キャッシュで必要なセグメント部分が見つかる可能
性はかなり低くなる。前述のように、ビデオ送達の重要
な要素の1つは、データ・ストリームが等時的、すなわ
ち、視聴者またはユーザが不快と感じるような休止や中
断がなく送達される点である。図示の先行技術のキャッ
シュ機構では、ユーザに対してビデオ・データ・ストリ
ームを確実に等時送達することができない。
【0123】図16が示す上記以外の問題は以下の通り
である。 a. 一般的なファイル・システム要件を満足するため
に、ディスクおよびビデオ・ポートの入出力が比較的小
さいセグメント単位で行われる。このため、必要な処理
時間、ディスク・シーク・オーバヘッド、バス・オーバ
ヘッドがビデオ・セグメント・サイズのセグメントの場
合より増加する。 b. ファイル・システム・キャッシュ・バッファとメ
ディア・サーバ・バッファとの間ならびにメディア・サ
ーバ・バッファとビデオ・ドライバ・バッファとの間で
データをコピーするための処理時間は、除去することが
望ましいと思われるような不要なオーバヘッドになる。 c. 同時に同一ビデオ・セグメントの複数コピーを収
容するために2つのビデオ・バッファ(すなわち、17
2、174)を使用することは、メイン・メモリの使い
方としては非効率的である。同じデータをファイル・シ
ステム・キャッシュに格納すると同時にビデオ・ドライ
ブ・バッファにも格納すると、さらにその無駄は大きく
なる。
【0124】E2. ビデオ最適化キャッシュ管理 本発明のこの態様によるキャッシュ管理操作には、スト
リーム間でのセグメント・サイズ・キャッシュ・バッフ
ァの共用、予測キャッシュ、キャッシュを最適化するた
めの同期化という3つの重要な側面がある。
【0125】E2.1. ストリーム間でのセグメント・サ
イズ・キャッシュ・バッファの共用 ビデオは、一定サイズのセグメントの形で格納され管理
される。このセグメントには順番に番号が付けられ、た
とえば、セグメント5はビデオ表示のうち、セグメント
6より表示の先頭に近い部分を格納するようになってい
る。セグメント・サイズは、ディスク入出力、ビデオ入
出力、バスの使用法、プロセッサの使用法を最適化する
ように選択される。ビデオの1つのセグメントは一定の
内容を持ち、その内容はビデオ名とセグメント番号だけ
に左右される。ディスクおよびビデオ出力へのすべての
入出力と、すべてのキャッシュ動作は、セグメント境界
に位置合せして実行される。
【0126】本発明のこの態様は、基礎となるハードウ
ェアが通信ノード14内のキャッシュ・メモリを通過せ
ずに、ディスクと通信ノード14内のビデオ出力カード
との直接のデータ・フローによる対等動作をサポートす
るかどうかにより、2通りの形態をとる。対等動作の場
合は、ディスク記憶ユニット16でキャッシュが行われ
る。対等動作をサポートしていないハードウェアの場合
は、入出力動作とデータ移動を最小限にするために、セ
グメントサイズのブロック単位でデータを(通信ノード
14内の)ページ位置合せした隣接キャッシュ・メモリ
に直接読み込む。(以下のF.ビデオ最適化ディジタル・
メモリ割振りの項を参照されたい。)
【0127】データは、同じ位置に維持され、そのビデ
オ・セグメントが不要になるまでこの位置から直接書き
込まれる。ビデオ・セグメントをキャッシュする間に、
ビデオ・セグメントの出力を必要とするすべてのビデオ
・ストリームが同じキャッシュ・バッファにアクセスす
る。したがって、ビデオ・セグメントの1つのコピーが
多くのユーザによって使用され、同じビデオ・セグメン
トの追加コピーを読み取るために追加の入出力、プロセ
ッサ、バッファ・メモリを使用することが回避される。
対等動作の場合は、通信ノード14側で、残りの入出力
の半分と、プロセッサおよびメイン・メモリのほとんど
すべての使用が回避される。
【0128】図17は、対等動作を行わないシステムの
場合の本発明の実施例を示している。ビデオ・データ
は、奇数番号のセグメントが第1のディスク記憶ノード
180上に置かれ、偶数番号のセグメントが第2のディ
スク記憶ノード182上に置かれるように、ディスク記
憶ノード16上でストライプ化される(以下のセクショ
ンHを参照)。
【0129】図17には、この構成用のデータ・フロー
も示されている。図示の通り、セグメントSkは、ディ
スク182から通信ノード186内のキャッシュ・バッ
ファ184に読み込まれ、次にビデオ出力ポート1およ
び2に書き込まれる。ビデオ・データ・セグメントSk
は、1回の入出力動作でキャッシュ・バッファ184に
直接読み込まれ、次にポート1に書き込まれる。次にビ
デオ・データ・セグメントSkは、1回の入出力動作で
キャッシュ・バッファ184からポート2に書き込まれ
る。
【0130】お分かりのように、図16の従来の手法に
ついて説明したすべての問題が図17に示すシステムに
よって克服される。
【0131】図18は、ディスク記憶ノードとビデオ出
力カードとの間の対等動作向けのサポートを含む構成用
のデータ・フローを示している。1対のディスク・ドラ
イブ190、192は、中間の通信ノード14のメイン
・メモリを通過せずに1対のビデオ・ポート194、1
96に直接供給される、ストライプ化したビデオ表示を
収容している。
【0132】この構成用のデータ・フローは、ディスク
・キャッシュ・バッファ198を介してディスク192
からポート1に(1回の入出力動作で)セグメントSk
を直接読み込むためのものである。
【0133】セグメントSkをポート2に読み込むため
の呼出しが続く場合、セグメントSkは、ディスク・キ
ャッシュ・バッファ198からポート2に(1回の入出
力動作で)直接読み込まれる。
【0134】ポート1用にディスク・キャッシュ・バッ
ファ198に読み込んだデータがポート2に書き込むた
めにまだ常駐しているときは、メモリ、バス、プロセッ
サ資源を可能な限り最適に使用すると、ビデオ・セグメ
ントがポート1および2に転送される。
【0135】対等とメイン・メモリ・キャッシュ機構と
を組み合わせることが可能である。たとえば、通信ノー
ド14の1つのポートにのみ再生するビデオ表示に対等
動作を使用し、通信ノード14の複数ポートに再生する
ビデオ表示のために通信ノード14にキャッシュするこ
とが可能である。
【0136】ディスク記憶ノードと通信ノードとの間で
キャッシュ責任を分割するための方針は、所与のハード
ウェア構成でサポート可能なビデオ・ストリーム数を最
適化するように選択される。サポートされるストリーム
数が分かっている場合は、キャッシュ記憶域の容量およ
び位置を求めることができる。
【0137】E2.2. 予測キャッシュ 予測キャッシュ機構は、ビデオ送達に十分適したキャッ
シュ方針の必要性を満たすものである。一般にビデオ表
示は非常に予測しやすい。通常、ビデオ表示は先頭から
再生を開始し、かなり長い所定の期間の間、一定の速度
で再生し、末尾に達したときだけ停止する。メディア・
ストリーマ10のキャッシュ手法では、この予測可能性
を利用して、一度にキャッシュされるビデオ・セグメン
トの組を最適化する。
【0138】この予測可能性は、キャッシュ・バッファ
を充填するための読取り動作のスケジューリングと、キ
ャッシュ・バッファの再利用のためのアルゴリズムの駆
動の両方に使用される。期限が切れる前にその内容が利
用されることはないと予測されるバッファは、直ちに再
利用され、より優先順位の高い用途のためにその空間が
解放される。妥当な時間内にその内容が使用される見込
みがあるバッファは、その最後の使用からかなり経って
いても再利用されない。
【0139】より具体的には、ビデオv1、v2、・・
・と、ストリームs1、s2、・・・があって、これら
のビデオを再生するとすると、各ストリームsjがビデ
オv(sj)を1つずつ再生し、v(sj)のk番目の
セグメントの書込み用として予測される時間は以下の一
次関数になる。 t(sj,k)=a(sj)+r(sj)k ただし、a(sj)は開始時間と開始セグメント番号に
左右され、r(sj)は1つのセグメントを再生するの
に要する一定時間であり、t(sj,k)はストリーム
sjのk番目のセグメントを再生するためにスケジュー
リングされた時間である。
【0140】この情報は、キャッシュ・バッファを充填
するための読取り動作のスケジューリングと、キャッシ
ュ・バッファの再利用のためのアルゴリズムの駆動の両
方に使用される。キャッシュ管理アルゴリズムの操作例
を以下にいくつか示す。
【0141】例A 現在再生中のビデオ・ストリームのいずれも再生しない
と予測されるビデオ・セグメントが入っているキャッシ
ュ・バッファは、再生すると予測されるバッファの再使
用より先に再使用される。この制約を満たした後、その
ビデオを再生する頻度とセグメント番号は、ビデオ・セ
グメントをキャッシュした状態に維持するための優先順
位を求める重みとして使用される。このグループ内で最
も保存優先順位が高いものは、頻繁に再生されるビデオ
内で先に表れるビデオ・セグメントに割り当てられる。
【0142】例B 再生すると予測されるビデオ・セグメントが入っている
キャッシュ・バッファの場合は、次に予測される再生時
間と、そのビデオ・セグメントを再生するために残って
いるストリーム数が、ビデオ・セグメントをキャッシュ
した状態に維持するための優先順位を求める重みとして
使用される。本質的にこの重みにより、キャッシュ・バ
ッファの保存優先順位をキャッシュ・バッファを再利用
した場合の(任意のビデオ・セグメントの)入出力の予
測数とそれを保存した場合の予測数との差に設定するこ
とができる。
【0143】たとえば、v5がs7で再生中で、v8が
s2とs3で再生中で、s2がs3より5秒遅れて動作
し、v4がs12〜s20で再生中で、それぞれのスト
リームが次のストリームより30秒遅れている場合、す
でにs7によって使用されているv5データが入ってい
るバッファが最初に再利用され、次に、すでにs2によ
って使用されているv8データが入っているバッファが
続き、次に、すでにs12によって使用されているv4
データが入っているバッファが続き、次に、最も保存優
先順位が低い残りのバッファが続く。
【0144】キャッシュ管理アルゴリズムは、接続動作
(正確な時期は不明であるが近い将来にビデオ・セグメ
ントが再生されると予測することが可能な場合)および
停止動作(前の予測を改訂する必要がある場合)などの
特殊な場合用の変形態様を用意している。
【0145】E2.3. キャッシュを最適化するためのス
トリームの同期化 所与のビデオ・セグメントが入っているキャッシュ・バ
ッファが記憶域に残り、その結果、より多くのシステム
容量が他のビデオ・ストリームに利用できるようにしな
ければならない時間を最小限にするため、そのセグメン
トを必要とするすべてのストリームをクラスター化する
ことが望ましい。ビデオ再生の場合は、通常、セグメン
トが再生される速度のフレキシビリティはほとんどな
い。しかし、ビデオ送達のアプリケーションの中には、
再生速度がフレキシブルなものもある(すなわち、不都
合な人間の反応を引き起こさずに、ビデオとオーディオ
をわずかに加速したり減速することができる)。さら
に、即時視聴以外の目的のためにビデオを送達する場合
もある。速度の変動が許されるときは、ストリーム間の
ギャップを埋めて、セグメントをバッファした状態に維
持しなければならない時間を低減するために、(時間的
に)前方のストリームは許容される最低速度で再生し、
(時間的に)後方のストリームは許される最高速度で再
生する。
【0146】接続動作および再生動作時には、同じビデ
オ表示を使用するストリームのクラスター化も考慮され
る。たとえば、VS-PLAY_AT_SIGNALを使用して、同時に
複数のストリーム上でビデオの再生を開始することがで
きる。これにより、クラスター化が改善され、他のビデ
オ・ストリームのためにより多くのシステム資源が残さ
れ、システムの有効容量が増加する。より具体的には、
あるストリームが第2のストリームと時間的に一致する
ように短期間の間、そのストリームを表示することによ
ってクラスター化すると、キャッシュ内のセグメントの
1つのコピーを両方のストリームに使用することがで
き、したがって、処理資産が節約される。
【0147】F. ビデオ最適化ディジタル・メモリ割振
り ディジタル・ビデオ・データは、非ランダムであり、順
次かつ大規模で、内容重視ではなく時間重視であるの
で、通常のデータ処理データとは異なる属性を持ってい
る。複数のデータ・ストリームを高ビット転送速度で送
達しなければならず、データ経路内では重要でないすべ
てのオーバヘッドを最小限にする必要がある。メディア
・ストリーマ10の効率と容量を最大限にするには、慎
重なバッファ管理が必要である。メモリ割振り、割振り
解除、アクセスがこのプロセスの重要要素であり、使用
法が間違っていると、メモリの断片化、効率の低下、ビ
デオ・データの遅延または破壊に至る可能性がある。
【0148】本発明のメディア・ストリーマ10は、高
レベル・アプリケーションがディジタル・ビデオ・デー
タ用にスワップ不能でページ位置合せした隣接メモリ・
セグメント(ブロック)の割振りおよび割振り解除を行
えるようにするためのメモリ割振りプロシージャを使用
している。このプロシージャは、ビデオ伝送アプリケー
ションに単純な高レベル・インタフェースを提供し、要
求されたサイズのメモリ・ブロックを割り振るために低
レベルのオペレーション・システム・モジュールとコー
ド・セグメントを使用する。メモリ・ブロックは隣接
し、物理メモリ内に固定されており、仮想メモリのスワ
ッピングやページングによって発生しうる遅延または破
壊や、データ伝送ソフトウェアで収集/分散ルーチンを
実現しなければならないと言う複雑さを解消する。
【0149】この高レベル・インタフェースは、要求さ
れたメモリ・ブロックに関する様々なアドレス指定モー
ド値も返し、メディア・ストリーマ環境で同時に動作す
る可能性のある様々なメモリ・モデルに適合するために
高価な動的アドレス変換を行う必要がなくなる。固定デ
ィスク装置などの他のデバイス・ドライブによる直接ア
クセス用の物理アドレスならびに様々なアプリケーショ
ンが使用するプロセス線形アドレスおよびプロセス・セ
グメント化アドレスが用意される。また、メモリ・ブロ
ックをシステムに返す割振り解除ルーチンも用意され、
メモリがすべて単一ブロックとして返されるので、断片
化の問題が解消される。
【0150】F1. メモリ割振り用のコマンド 1.物理メモリの割振り 要求されたサイズのメモリ・ブロックを割り振る。ブロ
ックの長さとともに、メモリ域の様々なメモリ・モデル
・アドレスによって制御ブロックが返される。 2.物理メモリの割振り解除 メモリ・ブロックをオペレーティング・システムに返
し、関連のメモリ・ポインタを解放する。
【0151】F2. アプリケーション・プログラム・イ
ンタフェース デバイス・ドライバは、システム構成ファイル内に定義
され、システム始動時に自動的に初期設定される。その
後アプリケーションは、そのラベルを入手するために疑
似デバイスとしてそのデバイス・ドライバをオープン
し、インタフェースを使用してコマンドとパラメータを
引き渡す。サポートされるコマンドは、メモリ割振りと
メモリ割振り解除であり、そのパラメータは、メモリ・
サイズと、論理メモリ・アドレスを指すポインタであ
る。これらのアドレスは、メモリの物理ブロックが割り
振られた後でデバイス・ドライバによって設定され、物
理アドレスが論理アドレスに変換される。割振りが失敗
に終わると、ヌルが返される。
【0152】図19は、このプロシージャを使用する可
能性がある典型的なアプリケーションのセットを示して
いる。バッファ1は、32ビット・アプリケーションか
ら、修正され、バッファ2に移されるデータを要求され
る。このバッファは、セグメント化したアドレスを使用
する16ビット・アプリケーションによって、または固
定ディスク・ドライブなどの物理装置によって直接操作
することができる。この割振り方式を使用して、固定バ
ッファ、物理バッファ、隣接バッファを事前割振りする
ことによって、各アプリケーションはその固有直接アド
レス指定を使用してデータにアクセスできるようにな
り、アドレス変換や動的メモリ割振りの遅延が解消され
る。ビデオ・アプリケーションでは、ディジタル・ビデ
オ・データを物理ディスクからバッファに直接移し、プ
ロセス内で数回移動させずにそれを出力装置に直接転送
することによって、この手法でデータ移動を最小限にす
ることができる。
【0153】G. ビデオ・アプリケーション用に最適化
したディスク・ドライブ ビデオ・ストリームをその宛先に等時的に、すなわち、
人間の目が動きの不連続として、または耳が音の中断と
して感知できるような遅延が発生せずに、送達すること
が重要である。現在のディスク技術では、データ・アク
セスにかなりの遅延を発生しうる予測障害分析を実行す
るなどの定期的なアクションが必要な場合がある。ほと
んどの入出力動作は100ms以内に完了するが、10
0msの定期的な遅延は一般的であり、3秒もの遅延が
発生する場合もある。
【0154】メディア・ストリーマ10は、高いデータ
転送速度も効率よく維持できなければならない。汎用デ
ータ記憶および検索用に構成されたディスク・ドライブ
は、ビデオ・サーバ・アプリケーション向けに最適化し
ないと、メモリ、ディスク・バッファ、SCSIバス、
ディスク容量の使い方の非効率に苦しむことになる。
【0155】本発明の一態様により、本発明で使用する
ディスク・ドライブは、ディスク・パラメータを最適化
することによって大量のデータを円滑かつ適切な時期に
送達する役割に合わせて調整されている。このパラメー
タは、ビデオ・サーバ用に専門化したディスク・ドライ
ブの製造に取り入れるか、またはコマンド機構によって
設定することができる。
【0156】定期的アクションを制御するパラメータ
は、遅延を最小限にするかまたは除去するように設定す
る。バッファの使用法に影響するパラメータは、1回の
読取りまたは書込み操作で非常に大量のデータを転送で
きるように設定する。SCSIバスとプロセッサ・バス
との速度の一致に影響するパラメータは、データ転送の
開始が早すぎたり遅すぎたりしないように調整する。デ
ィスク・メディア自体は、有効容量および帯域幅を最大
限にするセクタ・サイズでフォーマットする。
【0157】最適化を実施するには次のようにする。物
理ディスク・メディアを許容される最大物理セクタ・サ
イズでフォーマットする。このフォーマット・オプショ
ンは、セクタ間のギャップに浪費される空間の量を最小
限にし、デバイス容量を最大限にし、バースト・データ
転送速度を最大限にするものである。好ましい実施態様
は744バイト・セクタである。
【0158】ディスクには関連バッファを設けることが
できる。このバッファは、データの転送用のバスの可用
性とは非同期にディスク・メディアからデータを読み取
るのに使用する。同様に、このバッファは、ディスク・
メディアへのそのデータの転送とは非同期にバスから到
着したデータを保持する場合に使用する。このバッファ
は複数のセグメントに分割することができ、その数はパ
ラメータで制御する。セグメント数が多すぎる場合は、
各セグメントが小さすぎて、1回の転送では要求した量
のデータを保持できない可能性がある。バッファが満杯
になると、デバイスは再接続を開始し、転送を開始しな
ければならない。したがって、この時点でバス/デバイ
スが使用できない場合は、その結果、回転遅延が発生す
ることになる。好ましい実施態様では、この値は、すべ
てのバッファ・セグメントが少なくともデータ転送サイ
ズと同じ大きさになるように設定される。すなわち、1
に設定される。
【0159】読取り時にバッファ・セグメントが充填を
開始すると、ディスクは、ホストへのデータ転送を実行
するためにバスへの再接続を試みる。ディスクがこの再
接続を試みる時点は、バスの使用状況の効率に影響す
る。
【0160】バスとディスクの相対速度によって、充填
動作中にホストへのデータ転送を開始するのに最適の時
点が決まる。同様に、書込み動作中は、データがホスト
から到着するとバッファが充填し、充填プロセス中の所
与の時点にディスクはバスへの再接続を試みなければな
らない。正確に速度が一致すると、SCSIバス上の切
断/再選択サイクル数が減少し、その結果、最大スルー
プットが上昇する。
【0161】再接続を試みる時期を制御するパラメータ
は、「読取りバッファ満杯率」と「書込みバッファ空き
率」と呼ばれる。ビデオ・データの場合、これらの率を
計算するための好ましいアルゴリズムは、256x(瞬
間SCSIデータ転送速度−維持可能ディスク・データ
転送速度)/瞬間SCSIデータ転送速度である。現在
好ましいバッファ満杯率とバッファ空き率の値は約20
4である。
【0162】ディスク・ドライブの設計によっては、温
度の変化につれて定期的なヘッド位置の再較正が必要な
ものもある。さらにこのようなディスク・ドライブ・タ
イプの一部では、同時にアセンブリ内のすべてのヘッド
について熱補正を行うか、または一度に1つのヘッドに
ついて熱補正を行うかの制御が可能になる。一度にすべ
てのヘッドについて行う場合は、ビデオ・データの読取
り動作中に数百ミリ秒の遅延が発生する可能性がある。
読取り時間の遅延がそれより長くなると、データ・フロ
ーを円滑にし、マルチメディア表示に人工物ができるの
を防止するためのより大きいメイン・メモリ・バッファ
が必要になる。好ましい手法は、熱補正ヘッド制御機能
をプログラミングして、一度に1つのヘッドの補正を可
能にすることである。
【0163】エラー・ログの保存と予測障害分析の実行
は、完了するまでに数秒かかる可能性がある。このよう
な遅延は、遅延を取り除き、マルチメディア表示に人工
物ができるのを防止するためのより大きいメイン・メモ
リ・バッファがなければ、ビデオ・サーバ・アプリケー
ションには許容できないものである。エラー・ログの保
存とアイドル時間機能の実行を抑止するために、アイド
ル時間機能制限パラメータを使用することができる。好
ましい実施態様では、このような機能を制限するための
パラメータを設定する。
【0164】H. ビデオ・データ用のデータ・ストライ
プ ビデオ・アプリケーションでは、同じデータ(たとえ
ば、ムービー)から複数のストリームを送達する必要が
ある。この要件は、高速データ転送速度でデータを読み
取る必要に変化する。すなわち、1つのストリームを送
達するのに必要なデータ転送速度に、同じデータに同時
にアクセスするストリームの数を掛けたものになる。従
来、この問題は、そのデータのコピーを複数用意するこ
とで解決するのが一般的で、その結果、追加の費用が発
生していた。本発明のメディア・ストリーマ10は、デ
ータの単一コピーから数多くの同期ストリームを供給す
るための技法を使用している。この技法は、個々のスト
リーム用のデータ転送速度と、そのデータに同時にアク
セスしうるストリームの数とを考慮したものである。
【0165】上記のデータ・ストライプ化は、ストライ
プという複数のファイル構成要素に常駐するように論理
ファイルのデータを区分するという概念を伴う。各スト
ライプは、異なるディスク・ボリューム上に存在するこ
とができ、これにより、論理ファイルが複数の物理ディ
スクに及ぶことが可能になる。ディスクは、ローカルの
場合もあれば、遠隔の場合もある。
【0166】論理ファイルに書き込まれると、データは
連続してストライプに移される論理長(すなわち、セグ
メント)に分離される。図20に示すように、ビデオ1
というビデオ用の論理ファイルは、それぞれが特定のサ
イズ、たとえば、256KBのM個のセグメントまたは
ブロックにセグメント化される。最後のセグメントは一
部のみデータが充填される場合もある。1つのセグメン
トのデータは、最初にストライプに移され、次に2番目
のストライプに移される次のセグメントが続き、以下同
様にセグメントが続く。あるセグメントが各ストライプ
に書き込まれると、次のセグメントが最初のストライプ
に書き込まれる。したがって、ファイルがN個のストラ
イプにストライプ化される場合、ストライプ1はセグメ
ント1、N+1、2*N+1などを収容することにな
り、ストライプ2はセグメント2、N+2、2*N+2
などを収容することになり、以下同様になる。
【0167】同様のデータ・ストライプ化がデータ処理
のRAID配置で使用されることが分かっているが、こ
の場合のストライプ化の目的は、ディスクを紛失した場
合にデータ保全性を保障することである。このようなR
AID記憶システムでは、N枚のディスクのうちの1枚
をデータ回復が必要なときに使用するパリティ・データ
の格納専用にする。メディア・ストリーマ10のディス
ク記憶ノード16は、RAID状構造として構成されて
いるが、パリティ・データは不要である(ビデオ・デー
タのコピーがテープ・ストアから使用可能であるからで
ある)。
【0168】図21は、このデータ配置の第1の重要な
態様、すなわち、複数のコピーを必要とせずに各ビデオ
表示に複数のドライブから同時にアクセスできるよう
に、使用可能なディスク・ドライブ間に分散した複数の
データ・ブロックまたはセグメントに各ビデオ表示を分
離することを示している。したがって、その概念は、デ
ータ保全性またはパフォーマンス上の理由によるではな
く、本質的には並行性または帯域幅上の理由によるスト
ライプ化の概念である。したがって、メディア・ストリ
ーマ10は、バイト・ブロックなどではなく、再生セグ
メントごとにビデオ表示をストライプ化する。
【0169】図21に示すように、ビデオ・データ・フ
ァイル1はM個のセグメントにセグメント化されて4つ
のストライプに分割されているが、ストライプ1はビデ
オ・ファイル1のセグメント1、5、9などが入ってい
るファイルであり、ストライプ2はビデオ・ファイル1
のセグメント2、6、10などが入っているファイルで
あり、ストライプ3はそのビデオ・ファイルのセグメン
ト3、7、11などが入っているファイルであり、スト
ライプ4はビデオ・ファイル1のセグメント4、8、1
2などが入っているファイルであり、ビデオ・ファイル
1のM個のセグメントすべてが4つのストライプ・ファ
イルの1つに収容されるまで以下同様になっている。
【0170】上記のストライプ化方式の場合、各個別の
ビデオのストライプ化をカストマイズするために、次の
ようにパラメータが計算される。
【0171】まず、適度に有効なデータ転送速度がディ
スクから得られるように、セグメント・サイズを選択す
る。ただし、このサイズは待ち時間に悪影響を及ぼすほ
ど大きくしてはならない。また、メモリにバッファ/キ
ャッシュするのに十分な小ささにする必要がある。好ま
しいセグメント・サイズは256KBであり、128K
B/秒〜512KB/秒の範囲のデータ転送速度のビデ
オ表示では一定になる。ビデオ・データ転送速度がこれ
より高い場合、より大きいセグメント・サイズを使用す
る方が好ましい場合もある。セグメント・サイズは、同
一メディアに格納されたビデオ表示の範囲に対する入出
力動作の基本ユニットによって決まる。使用する原理
は、約0.5〜2秒分のビデオ・データを収容するセグ
メント・サイズを使用することである。
【0172】次に、ストライプの数、すなわち、ビデオ
・データが分散されるディスクの数を求める。この数
は、必要な総データ転送速度を維持するのに十分な大き
さでなければならず、予想される使用率に基づいて各ビ
デオ表示ごとに個別に計算される。より具体的には、各
ディスクはそれに関連する論理ボリュームを有する。各
ビデオ表示は、必要なストライプ数と同じ数の構成要素
である構成要素ファイルに分割される。各構成要素ファ
イルは異なる論理ボリュームに格納される。たとえば、
ストリーム当たり250KB/秒でビデオ・データを送
達しなければならず、約15秒間隔で開始される30個
の同期ストリームを同一ビデオからサポートする場合、
少なくとも7.5MB/秒の総データ転送速度が得られ
る。ディスク・ドライブが平均3MB/秒でサポートで
きる場合は、少なくとも3つのストライプがビデオ表示
に必要になる。
【0173】ディスクからデータを読み取ることができ
る有効速度は、読取り動作のサイズの影響を受ける。た
とえば、データを4KBブロック単位でディスクから
(ディスク上のランダム位置から)読み取る場合は、有
効データ転送速度が1MB/秒になり、データを256
KBブロック単位で読み取る場合は、速度が3MB/秒
になる可能性がある。ただし、非常に大きいブロック単
位でデータを読み取る場合は、バッファに必要なメモリ
も大きくなり、動作が完了しないとそのデータにアクセ
スできないので、読み取ったデータを使用する際の遅延
である待ち時間も増加する。このため、データ転送用の
サイズを選択する際に何らかのトレードオフが行われ
る。サイズは、装置の特性とメモリ構成に基づいて選択
される。データ転送のサイズは選択されたセグメント・
サイズであることが好ましい。所与のセグメント・サイ
ズが与えられると、装置からの有効データ転送速度が求
められる。たとえば、一部のディスク・ドライブでは、
256KBというセグメント・サイズによって、ディス
ク・ドライブの有効利用(有効データ転送速度が3MB
/秒)とバッファ・サイズ(256KB)とのバランス
が良くなる。
【0174】ストライプ化を使用しない場合、サポート
可能なストリームの最大数はディスクの有効データ転送
速度によって制限される。たとえば、有効データ転送速
度が3MB/秒で、ストリーム・データ転送速度が20
0KB/秒の場合、ディスクからは15個のストリーム
しか供給することができない。たとえば、同一ビデオの
60個のストリームが必要な場合は、4枚のディスクに
そのデータを複写しなければならない。しかし、本発明
によるストライプ化を使用すると、容量が1/4のディ
スクを4枚使用することができる。また、ビデオ・デー
タの単一コピーから合計60個の同期ストリームが得ら
れるように、4つのストライプのそれぞれから15個の
ストリームを同期的に再生することができる。60個の
ストリームに関する要求がすべてのストリーム間で等間
隔になるように、ストリームの開始時間がずらされる。
ただし、互いに接近してストリームを開始する場合は、
キャッシュされるビデオ・データを使用することによっ
て、入出力の必要性を低減できることに留意されたい。
【0175】所与のビデオ用のストライプの数は、2つ
の要因の影響を受ける。一方は、そのビデオからいつで
も供給されるストライプの最大数であり、もう一方は、
そのビデオと同一ディスクに格納されたすべてのビデオ
からいつでも供給する必要があるストリームの総数であ
る。
【0176】ビデオ用のストライプの数は次のように求
める。 s=最大(r*n/d,r*m/d) ただし、 r=ストリームを再生する際の公称データ転送速度 n=公称速度でのこのビデオ表示からの同期ストリーム
の最大数 d=ディスクからの有効データ転送速度(ただし、ディ
スクからの有効データ転送速度はセグメント・サイズの
影響を受けることに留意されたい) m=このビデオ表示の一部が入っているすべてのディス
クからの公称速度での同期ストリームの最大数 s=ビデオ表示用のストライプの数
【0177】ビデオ表示用のデータがストライプ化され
るディスクの数は1組として管理され、非常に大きい物
理ディスクと見なすことができる。ストライプ化によ
り、ビデオ・ファイルは、システムの物理ファイル・シ
ステムが許容する最大ファイルのサイズ制限を超えるこ
とができる。一般に、ビデオ・データは、その組のすべ
てのディスク上に同一量の記憶域を必ず必要とするわけ
ではない。ディスクの使用法のバランスを取るため、ビ
デオをストライプ化するときに、空き空間が最も多いデ
ィスクからストライプ化を開始する。
【0178】一例として、ビデオ表示を2mビット/秒
(250,000バイト/秒)で再生する必要がある場合、す
なわち、rが250,000バイト/秒になる場合について検
討し、このビデオから最高30個の同期ストリームを送
達する必要がある、すなわち、nが30であると想定す
る。この例では、mも30である、すなわち、すべての
ディスクから送達するストリームの総数も30であると
想定する。さらに、250,000バイトのセグメント単位に
データをストライプ化し、所与のセグメント・サイズ
(250,000バイト)の場合にディスクからの有効データ
転送速度が3,000,000バイト/秒であると想定する。こ
の場合、必要なストライプの数であるnは、(250,000
*30/3,000,000)=2.5になり、これを切り上げ
ると3(s=上限(r*n/d))になる。
【0179】このデータが入っているすべてのディスク
からのストリームの最大数がたとえば45の場合、250,
000*45/3,000,000すなわち3.75個のストライプ
が必要になり、これを切り上げると4個のストライプに
なる。
【0180】ビデオの単一コピーから30個のストリー
ムを送達するための要件を満たすためにそのビデオを3
個のストライプにストライプ化すれば十分であっても、
そのビデオが入っているディスクが他の内容も収容して
おり、サポートされるそのビデオからのストリームの総
数が45である場合は、4個のディスク・ドライブが必
要になる(ストライプ化レベルが4)。
【0181】メディア・ストリーマ10でアルゴリズム
を使用する方法は次の通りである。まず、記憶域(ディ
スク・ドライブの数)をディスク・グループに分割す
る。各グループは、(所定のセグメント・サイズに基づ
くディスク当たりの有効データ転送速度で)所与の数の
同期ストリームを送達するための所与の容量と能力を有
する。各グループのセグメント・サイズは一定である。
それぞれのグループが別々のセグメント・サイズを選択
することができる(したがって、別々の有効データ転送
速度にすることができる)。ビデオ表示をストライプ化
するときに、まず、以下の基準によって1つのグループ
を選択する。
【0182】セグメント・サイズはビデオのデータ転送
速度と一致している。すなわち、ストリーム・データ転
送速度が250,000バイト/秒の場合、セグメント・サイ
ズは125K〜500KBの範囲になる。次の基準は、
グループ内のディスクの数が最大数の同期ストリームを
サポートするのに十分なものにすること、すなわち、
「r」がストリーム・データ転送速度、「n」が同期ス
トリームの最大数、「d」がグループ内のディスクの有
効データ転送速度の場合のディスクの数にすることであ
る。最後に、ディスク・グループ内のすべてのビデオか
らサポートする必要がある同期ストリームの総数がその
容量を超えないように保証する必要がある。すなわち、
「m」がグループの容量であれば、「m−n」はそのグ
ループにすでに格納されているビデオから同期的に再生
できるすべてのストリームの合計以上でなければならな
い。
【0183】この計算は、ビデオ・データをメディア・
ストリーマ10にロードしたときに制御ノード18で行
われる。最も単純なケースでは、すべてのディスクが単
一プール内に置かれ、記憶域とサポート可能なストリー
ムの数の両方について、そのプールがメディア・ストリ
ーマ10の全容量を定義する。この場合、所与の数の同
期ストリームをサポートするのに必要なディスク(また
はストライプ)の数はm*r/dという式から計算され
る。式中、mはストリームの数、rは1つのストリーム
のデータ転送速度、dは1枚のディスクの有効データ転
送速度である。ただし、ストリームの速度を別々にする
ことができる場合は、上記の式のm*rをMax(すべ
ての同期ストリームのデータ転送速度の合計)で置き換
えなければならないことに留意されたい。
【0184】この技法を使用してデータを書き込むと、
その結果、ビデオ表示のディジタル表現の複数コピーを
必要とせずに、指定の速度で多くのストリームを送達す
るためにそのデータを読み取ることができるようにな
る。複数のディスク・ボリューム間でデータをストライ
プ化することにより、ファイルの一部を読み取って1つ
のストリームを送達しても、そのファイルの別の部分を
読み取って別のストリームを送達する動作の妨げにはな
らない。
【0185】I. メディア・ストリーマのデータ転送と
変換手順 I.1. スイッチ18へのビデオ送達用の動的帯域幅割振
り 従来、ビデオ・サーバは2つのプロファイルのうちの1
つに適合するのが一般的である。PC技術を使用して低
コスト(低帯域幅でもある)のビデオ・サーバが構築さ
れるか、スーパーコンピューティング技術を使用して高
帯域幅(高価でもある)のビデオ・サーバが構築されて
いる。本発明の一目的は、高コストのスーパーコンピュ
ータ技術を使用せずに高帯域幅のビデオを送達すること
である。
【0186】低コストで高帯域幅を達成するための好ま
しい手法は、低待ち時間スイッチ(クロスバー回路スイ
ッチ・マトリックス)18を使用して、複数の低コスト
PCベースの「ノード」を相互接続してビデオ・サーバ
(図1に示す)を構築する方法である。メディア・スト
リーマ・アーキテクチャの重要な態様の1つは、記憶ノ
ード16と通信ノード14のそれぞれで使用可能なビデ
オ・ストリーム帯域幅を有効利用することである。この
帯域幅は、ビデオ・データの特殊性(書込み1回、何度
も読取り)と、低コスト・スイッチ技術の動的リアルタ
イム帯域幅割振り能力とを組み合わせることによって最
大限になる。
【0187】図22は、スイッチ・インタフェースと記
憶ノードとの間の従来の論理接続を示している。このス
イッチ・インタフェースは、記憶ノードとの間の両方向
のビデオ(および制御情報)の転送を可能にするために
全二重(すなわち、同時に各方向に情報を送信すること
ができる)でなければならない。ビデオの内容は記憶ノ
ードに1回書き込まれ、何度も読み取られるので、記憶
ノードに必要な帯域幅の多くはスイッチへの入力方向に
なっている。典型的なスイッチ・インタフェースの場
合、その帯域幅の半分が書込み機能専用で、あまり使用
されないので、記憶ノードの帯域幅は十分に活用されな
い。
【0188】図23は、本発明によるスイッチ・インタ
フェースを示している。このインタフェースは、ノード
の現在の需要を満たすためにスイッチ18への入力方向
またはスイッチ18からの出力方向のいずれかにリアル
タイムでその総帯域幅を動的に割り振る。(記憶ノード
16は一例として使用する。)通信ノード14にも同様
の要件があるが、その帯域幅のほとんどはスイッチ18
からの出力方向になっている。
【0189】この動的割振りは、スイッチ12に適した
経路指定ヘッダを使用して、物理スイッチ・インタフェ
ースの2つまたはそれ以上を1つの論理スイッチ・イン
タフェース18aにグループ化することによって達成さ
れる。(たとえば、読取り時の)ビデオ・データはこの
2つの物理インタフェースに分割される。これは、前述
のように複数の記憶ユニット間でデータをストライプ化
すると容易に行える。受信側のノードは、そのビデオ・
データを結合して、1つの論理ストリームに戻す。
【0190】一例として、図22のスイッチ・インタフ
ェースの速度を全二重で2XMB/秒、すなわち、各方
向にXMB/秒とする。しかし、ビデオ・データは通
常、一方向だけに(記憶ノードからスイッチに)送信さ
れる。したがって、ノードの容量がその2倍(2X)で
あっても、ビデオ帯域幅のうちのXMB/秒だけが記憶
ノードから送達される。この記憶ノードは十分に活用さ
れない。図23のスイッチ・インタフェースは、記憶ノ
ードからスイッチへのビデオ伝送に2XMB/秒の帯域
幅全体を動的に割り振る。その結果、ノードからの帯域
幅が増加し、ビデオ・サーバからの帯域幅が高くなり、
ビデオ・ストリーム当たりのコストが低くなる。
【0191】J. 通信アダプタによる等時性ビデオ・デ
ータ送達 ディジタル・ビデオ・データは、順次かつ連続で、大規
模であり、内容重視ではなく時間重視のデータである。
ビデオ・データのストリームは、高ビット転送速度で等
時的に送達しなければならず、データ経路では重要では
ないすべてのオーバヘッドを最小限にする必要がある。
一般に、受信側ハードウェアは、ビデオ・セット・トッ
プ・ボックスまたはその他の適当なビデオ・データ・レ
シーバである。標準のシリアル通信プロトコルは、多く
の場合、ハードウェア・レベルで、同期化とデータ検証
のために追加ビットならびにバイト分のデータをストリ
ームに挿入する。レシーバがこの追加データを透過的に
除去できない場合は、これによってビデオ・データ・ス
トリームが破壊される。このようなビットおよびバイト
によってもたらされる追加のオーバヘッドは有効データ
転送速度も低下させ、これによってビデオ圧縮解除およ
び変換のエラーが発生する。
【0192】ユーザへの等時送達を確保するために標準
通信アダプタでビデオ・データを伝送するには、標準の
シリアル通信プロトコル属性のほとんどを使用不能にす
る必要があると判断されている。これを達成するための
方法は使用する通信アダプタによって様々であるが、そ
の基礎となる概念について以下に説明する。図24で
は、通信ノード14内のシリアル通信チップ200がデ
ータのフォーマットと、パリティ、スタートおよびスト
ップ・ビット、巡回冗長検査コード、同期バイトなどの
整合性情報とを使用不能にし、アイドル文字の生成を防
止する。入力FIFOバッファ202、204、206
などは、データ・ブロックのロード用のバス・サイクル
を可能にしながら、一定(等時)出力のビデオ・データ
・ストリームを保証するために使用する。1000バイ
トのFIFOバッファ208によって、CPUとバス・
ローディングの論理が単純化されている。
【0193】通信出力チップ200のために、初期同期
バイトの生成を使用不能にできない場合、同期バイトの
値は、各データ・ブロックの1バイト目の値にプログラ
ミングされる(データ・ブロック・ポインタは2バイト
目に増分される)。埋込みバイトが実際の圧縮ビデオ・
データの一部ではない場合、埋込みバイトによってデー
タ・ストリームが破壊されるので、バイト位置合せも実
際のデータで管理しなければならない。
【0194】高品質レベルの圧縮ビデオ・データに必要
な一定かつ高速のシリアル・データ出力を達成するに
は、循環バッファまたは複数の大型バッファ(たとえ
ば、202、204、206)のいずれかを使用しなけ
ればならない。これは、事前に充填したバッファからデ
ータを出力しながら、入力バッファを充填するのに必要
な時間を確保するのに必要である。バッファ・パッキン
グがビデオ・データ・ストリーム経路の前の方で行われ
ない限り、ビデオ終わり条件が発生した結果、次のバッ
ファ転送が完了する前に非常に小さいバッファが出力さ
れ、その結果、データ・アンダーランが発生する可能性
がある。このため、最低でも3つの大型独立バッファが
必要になる。二重モード・バッファ(読取り中に書込み
可能)の循環バッファも適当な実施例である。
【0195】J1. 圧縮済みのMPEG−1、1+、M
PEG−2ディジタル・データ形式から業界標準テレビ
形式(NTSCまたはPAL)へのビデオ・イメージと
ムービーの変換 前述のように、ディジタル・ビデオ・データはディスク
からバッファ・メモリに移される。十分なデータがバッ
ファ・メモリに入ると、このデータはメモリから通信ノ
ード14内のインタフェース・アダプタに移される。使
用するインタフェースは、SCSI 20MB/秒のフ
ァスト/ワイド・インタフェースか、またはSSAシリ
アルSCSIインタフェースである。SCSIインタフ
ェースは15個のアドレスを処理するように拡張されて
おり、SSAアーキテクチャは最高256個までサポー
トする。その他の適当なインタフェースとしては、RS
422、V.35、V.36などがあるが、これらに限
定されるわけではない。
【0196】図25に示すように、インタフェースから
のビデオ・データは通信ノード14から通信バス210
を介してNTSCアダプタ212(図24も参照)に渡
され、そこでデータがバッファされる。アダプタ212
は、ローカル・バッファ214からデータを引き取り、
バスのパフォーマンスを最大限にするために複数ブロッ
クのデータをそのバッファに格納する。アダプタ212
の主要目標は、メモリ214からMPEGチップ21
6、218へ、さらにNTSCチップ220とD/A2
22へのデータの等時フローを維持し、ビデオまたはオ
ーディオあるいはその両方の送達に中断が発生しないよ
うにすることである。
【0197】MPEG論理モジュール216、218
は、ディジタル(圧縮)ビデオ・データを構成要素レベ
ルのビデオとオーディオに変換する。NTSCエンコー
ダ220は、その信号をNTSCベースバンド・アナロ
グ信号に変換する。MPEGオーディオ・デコーダ21
6は、ディジタル・オーディオをパラレル・ディジタル
・データに変換し、そのデータがディジタル・アナログ
変換器222に渡され、フィルタにかけられて、左右の
オーディオ出力を生成する。
【0198】速度一致および等時送達問題の解決策を考
案する際の目標は、システムの帯域幅送達を最大限にす
るだけでなく、賦課するパフォーマンス上の制約を最少
にする手法である。
【0199】一般にアプリケーション開発者は、プロセ
ッサと、ディスク・ファイル、テープ・ファイル、光デ
ィスク記憶ユニットなどの機械式記憶装置との間のデー
タの制御および送達用として、SSAやSCSIなどの
バス構造を使用している。どちらのバスも、ビデオ・デ
ータの高帯域幅送達に適したものにするための属性を含
んでいる。ただし、速度とビデオ・データの等時送達を
制御するための手段を講じる必要がある。
【0200】SCSIバスは、1つのビデオ信号がバッ
ファ・メモリから特定のNTSCアダプタに移されると
きの時間量を最小限にする、20Mバイト/秒のデータ
・バーストを考慮している。アダプタ・カード212
は、高ピーク速度でバス210からメモリにデータをバ
ーストし、それよりかなり低い速度でバッファ214か
らデータを除去してNTSCデコーダ・チップ216、
218に送達するためのパフォーマンス能力を備えた大
型バッファ214を含んでいる。バッファ214は、複
数のより小さいバッファにさらにセグメント化され、ソ
フトウェア制御を介して接続され、回路上に接続された
複数のバッファとして動作する。
【0201】これにより、システムは、様々なブロック
・サイズのデータを別々のバッファに送達することがで
き、再生の順序を制御する。この手法の利点は、システ
ム・ソフトウェアを解放して、ビデオ・データの要件よ
りかなり前にしかも非常に高い送達速度でビデオ・デー
タのブロックを送達する点である。このため、メディア
・ストリーマ10には、動的スループット要件に基づい
て多数のビデオ・ストリームを管理する能力が設けられ
る。通信ノード内のプロセッサに時間があるときは、順
番に再生される大きいブロック数個分のデータの送達を
行うことができる。これが行われると、プロセッサは、
各ポートに低速の連続等時データを直ちに送達する必要
もなく、他のストリームを自由に制御することができ
る。
【0202】デコーダ・システムの費用効果をさらに高
めるために、より大きいデコーダ・バッファ214とM
PEGデコーダ216、218との間に小さいFIFO
メモリ224が挿入されている。このFIFOメモリ2
24により、制御装置226は、バッファ214からF
IFO224により小さいブロック(一般に512バイ
ト)のデータを移動することができ、次にFIFO22
4がそのデータを複数のシリアル・ビット・ストリーム
に変換してMPEGデコーダ216、218に送達す
る。オーディオおよびビデオ・デコーダ・チップ21
6、218の両方は、同じシリアル・データ・ストリー
ムからその入力を取り、必要なデータを内部で分離して
復号することができる。FIFOメモリ224の出力か
らのデータの伝送は、ビデオ表示のユーザまたは消費者
に連続したビデオ表示を確実に送達するために、等時式
またはほぼ等時式に行われる。
【0203】K. SCSI装置へのディジタル・ビデオ
の伝送 図26に示すように、バッファ・メモリからの圧縮ディ
ジタル・ビデオ・データおよびコマンド・ストリーム
は、装置レベルのソフトウェアによってSCSIコマン
ドおよびデータ・ストリームに変換され、SCSIバス
210を介してSCSIIIの高速データ転送速度でター
ゲット・アダプタ212に伝送される。次にデータはバ
ッファされ、圧縮解除ならびにアナログ・ビデオおよび
オーディオ・データへの変換のために必要な内容出力速
度でMPEG論理回路に供給される。データ・フローと
歩調合せし、適切なバッファ管理を保証するために、S
CSIバス210を介してフィードバックが行われる。
【0204】SCSI NTSC/PALアダプタ21
2は、SCSIバス210への高レベル・インタフェー
スを提供し、標準のSCSIプロトコルのサブセットを
サポートする。通常の動作モードは、アダプタ212を
オープンし、それにデータ(ビデオおよびオーディオ)
ストリームを書込み、完了したときだけアダプタ212
をクローズするというものである。アダプタ212は、
そのバッファを満杯状態に維持するために必要な速度で
データを引き取り、通信ノード14と記憶ノード16が
データ・ブロックを提供し、そのデータ・ブロックのサ
イズはバス・データ転送を最適化し、バス・オーバヘッ
ドを最小限にするように設定されている。
【0205】システム・パラメータは、必要であればモ
ード選択SCSIコマンドを使用して、制御パケットに
より上書きすることができる。ビデオ/オーディオの同
期化はアダプタ212にとって内部のものなので、外部
制御は一切不要である。自動再同期化と連続オーディオ
/ビデオ出力により、エラーは最小限になる。
【0206】K1. SCSIレベルのコマンドの説明 SCSIビデオ出力アダプタの機能性に適合させるため
に、標準の共通コマンドだけでなく、直接アクセス装置
コマンドと順次装置コマンドとを混合したものを使用す
る。すべてのSCSIコマンドと同様、どのコマンドの
後にも有効状況バイトが返され、検査条件が返された場
合はセンス・データ域にエラー条件がロードされる。使
用する標準のSCSIコマンドとしては、RESET、INQUI
RY、REQUEST SENSE、MODE SELECT、MODE SENSE、READ、
WRITE、RESERVE、RELEASE、TESTUNIT READYなどがあ
る。
【0207】ビデオ・コマンド:ビデオ制御コマンド
は、ユーザレベルのビデオ出力制御コマンドであり、上
記の標準コマンドの拡張機能である。これらは、SCS
Iビデオ出力アダプタ212とのインタフェースを直接
とる、低レベル・オペレーティング・システムまたはS
CSIコマンドへの単純化したユーザ・レベル・フロン
ト・エンドを提供する。各コマンドの実施態様では、必
要なビデオ装置機能をエミュレートし、無効制御状態に
よるビデオおよびオーディオ異常を回避するために、マ
イクロコードを使用している。単一のSCSIコマンド
であるSCSI START/STOP UNITコマンドは、ターゲットS
CSIビデオ出力アダプタ212へのビデオ制御コマン
ドを変換するために、そのコマンドとともに渡される必
要なパラメータを指定して使用する。これにより、ユー
ザ・アプリケーション・インタフェースとアダプタ・カ
ード212のマイクロコードの両方が単純化される。使
用するコマンドは以下の通りである。
【0208】停止(SCSI START/STOP 1 − パラメー
タ=モード) MPEGチップ・セット(216、128)へのデータ
入力が停止され、オーディオがミュートになり、ビデオ
がブランクになる。パラメータ・フィールドでは停止モ
ードを選択する。通常モードでは、バッファおよび位置
ポインタが現行のままになるので、再生はビデオ・スト
リーム内の同じ位置から続行される。第2のモード(ム
ービーの終わりまたは打切り)は、バッファ・ポインタ
を次のバッファの先頭に設定し、現行バッファを解放す
るものである。第3のモードもムービーの終わり条件用
であるが、データ・バッファが空になるまで停止(ミュ
ートとブランク)を遅らせる。第4のモードは、オーデ
ィオ付きの遅延停止に備えるために所与のMPEGデコ
ーダ実施態様で使用することができるが、データが尽き
たときに最後の有効フレーム用のフレームを凍結させ
る。上記の場合のいずれでも、ビデオおよびオーディオ
出力が適切な境界上で停止して適正な再始動が可能にな
るように、ビデオ・アダプタ212のマイクロコードが
停止点を判定する。
【0209】休止(SCSI START/STOP 2 − パラメー
タなし) MPEGチップ・セット(216、218)へのデータ
入力が停止され、オーディオがミュートになるが、ビデ
オはブランクにならない。これにより、MPEGビデオ
・チップ・セット(216、218)が最後の良好フレ
ームの凍結フレームを保持する。これの使用目的は、ビ
デオ・チューブの焼付き防止に限定される。停止コマン
ドは制御ノード18が出すのが好ましいが、5分以内に
いずれのコマンドも受け取らないと、ビデオ出力は自動
的にブランクになる。アダプタ212のマイクロコード
は、円滑に再生に戻ることを考慮して、バッファ位置と
デコーダ状態を維持する。
【0210】ブランク・ミュート(SCSI START/STOP 3
− パラメータ=モード) このコマンドは、オーディオ出力に影響せずにビデオ出
力をブランクにするか、ビデオに影響せずにオーディオ
出力をミュートにするか、またはその両方を行う。モー
ド・パラメータを使用した1つのコマンドでミュートと
ブランクの両方をオフにすることができるが、これによ
り、より円滑な移行と、コマンド・オーバヘッドの低減
が可能になる。これらは、積極的かつ円滑な移行を確保
するためのハードウェア制御によって、圧縮解除および
アナログへの変換の後にビデオ・アダプタ212上で実
現される。
【0211】低速再生(SCSI START/STOP 4 − パラ
メータ=速度) このコマンドは、MPEGチップ・セット(216、2
18)へのデータ入力速度を低下させ、それに断続的な
フレーム凍結を行わせ、VCR上で低速再生機能をシミ
ュレートする。オーディオは、ディジタル・エラー・ノ
イズを回避するためにミュートになる。パラメータ・フ
ィールドには、0〜100の相対速度を指定する。代替
実施態様は、デコーダ・チップ・セット(216、21
8)のエラー処理を使用不能にし、デコーダ・チップ・
セットへのデータ・クロック速度を所望の再生速度に変
更する。これは、ビデオ・アダプタのクロック・アーキ
テクチャのフレキシビリティに依存する。
【0212】再生(SCSI START/STOP 5 − パラメー
タ=バッファ) このコマンドは、MPEGチップ・セット(216、2
18)へのデータ供給プロセスを開始し、オーディオ出
力とビデオ出力を可能にする。どのバッファから再生順
序を開始するかを判定するためにバッファ選択番号が渡
され、0という値は、現行再生バッファを使用する必要
がある(通常の動作)ことを意味する。ゼロ以外の値
は、アダプタ212がSTOPPEDモードの場合のみ受け入
れられ、PAUSEDモードの場合は、バッファ選択パラメー
タが無視され、現行のバッファ選択および位置を使用し
て再生が再開される。
【0213】「再生中」に制御装置226は、バッファ
間を順次循環し、MPEGチップ・セット(216、2
18)への安定したデータ・ストリームを維持する。N
バイトが読み取られるまで、アドレス・ゼロから始まる
データが適切な速度でバッファからMPEGバスに読み
込まれ、次に制御装置226が次のバッファに切り替わ
って、データの読取りを続行する。アダプタ・バスとマ
イクロコードは、アダプタ・バッファ214へのSCS
I高速データ転送と、MPEG圧縮解除チップ(21
6、218)に供給する出力FIFO224への安定し
たデータ・ロードの両方に十分な帯域幅を提供する。
【0214】早送り(SCSI START/STOP 6 − パラメ
ータ=速度) このコマンドは、VCRでの早送りをエミュレートする
方法でデータを走査するために使用する。速度パラメー
タによって決まる動作モードが2通りある。速度0は、
ビデオとオーディオをブランクおよびミュートにし、バ
ッファをフラッシュする必要があり、ビデオ・ストリー
ム内の順方向の新しい位置からデータを受け取るときに
暗黙再生が実行される、急速早送りであることを意味す
る。1〜10の整数値は、入力ストリームを転送してい
る速度を示す。ビデオは、指定の平均データ転送速度を
達成するためにデータ・ブロックをスキップすることに
よって、「サンプリング」される。アダプタ212は、
ほぼ通常の速度でデータの一部を再生し、進行方向にジ
ャンプし、次の部分を再生して早送りアクションをエミ
ュレートする。
【0215】巻戻し(SCSI START/STOP 7 − パラメ
ータ=バッファ) このコマンドは、VCRでの巻戻しをエミュレートする
方法でデータを逆方向に走査するために使用する。速度
パラメータによって決まる動作モードが2通りある。速
度0は、ビデオとオーディオをブランクおよびミュート
にし、バッファをフラッシュし、ビデオ・ストリーム内
の順方向の新しい位置からデータを受け取るときに暗黙
再生を実行する必要がある、急速巻戻しであることを意
味する。1〜10の整数値は、入力ストリームを巻き戻
している速度を意味する。ビデオは、指定の平均データ
転送速度を達成するためにデータ・ブロックをスキップ
することによって、「サンプリング」される。巻戻しデ
ータ・ストリームは、ビデオ・ストリーム内の早期位置
から徐々に「サンプリング」された小さいデータ・ブロ
ックをアセンブルすることによって構築される。アダプ
タ・カード212は、通常の速度で再生するために移行
と同期化を円滑に処理し、サンプリングされた次の位置
にスキップして戻り、巻戻し走査をエミュレートする。
【0216】K2. バッファ管理 ディジタル・ビデオ・サーバは、多くの並列出力装置に
データを提供するが、ディジタル・ビデオ・データの圧
縮解除と変換には一定のデータ・ストリームが必要であ
る。データ・アンダーランまたはバッファ・オーバーラ
ンを回避しながら、SCSIデータ・バースト・モード
伝送を利用し、メディア・ストリーマ10が最小限の介
入で多くのストリームにデータを伝送できるようにする
ために、データ・バッファ技法を使用する。SCSIビ
デオ・アダプタ・カード212(図25、図26)は、
SCSIバースト・モード・データ転送プロセスを完全
に利用できるようにするためにビデオ・データ用の大型
バッファ214を含む。構成例としては、ローカル論理
回路が折返し循環バッファとして扱う768Kの1つの
バッファ214になると思われる。循環バッファは、デ
ィジタル・ビデオ・データの転送時に記憶域および管理
オーバヘッドの両面で非効率的な固定長のバッファでは
なく、様々なデータ・ブロック・サイズを動的に処理す
ることが好ましい。
【0217】ビデオ・アダプタ・カード212のマイク
ロコードは、最後のデータの先頭ならびに現行の長さと
データの先頭を維持して、複数のバッファ・ポインタを
サポートする。これにより、再試行で伝送の失敗を上書
きしたり、必要であれば現行バッファ内のバイト位置に
ポインタを配置することができる。デコード・チップ・
セット(216、218)への有効データ送達を保証す
るために、伝送された通りにデータ・ブロック長が維持
される(たとえば、中間論理回路が長ワード位置合せを
使用してもバイトまたはワード固有である)。この手法
により、データ・バッファのフレキシブルな制御が可能
になると同時に、定常状態動作オーバヘッドが最小限に
なる。
【0218】K2.1. バッファ選択および位置 複数組のバッファが必要であると想定すると、すべての
バッファ関連操作に複数のポインタが使用可能になる。
たとえば、再生バッファとそのバッファ内の現行位置を
選択するために1組を使用し、データ事前ロード操作用
に書込みバッファとそのバッファ内の位置(通常はゼ
ロ)を選択するために第2の組を使用することができ
る。可変長データ・ブロックもサポートされるので、受
け取った各データ・ブロックごとに現行長と最大長の値
が維持される。
【0219】K2.2. 自動モード バッファ動作は、そのバッファのアドレス・ゼロから始
まる次に使用可能なバッファ空間にNバイト分のデータ
を入れて、ビデオ・アダプタの制御装置226によって
管理される。制御装置226は、各バッファ内のデータ
の長さと、その長さが「再生」されたかどうかを追跡す
る。十分なバッファ空間が空いている場合、このカード
は次のWRITEコマンドを受け入れ、データをそのバッフ
ァにDMAする。データ・ブロック全体を受け入れるの
に十分なバッファ空間が空いていない場合(通常は低速
再生または休止条件の場合)は、WRITEが受け入れられ
ず、バッファ満杯戻りコードが返される。
【0220】K2.3. 手動モード 各バッファ・アクセス・コマンド(書込み、消去など)
ごとに「現行」書込みバッファとそのバッファ内の位置
(通常はゼロ)を選択するために、LOCATEコマンドを使
用する。バッファ位置は、正常に伝送された最後のデー
タ・ブロック用のデータの先頭と相対的なものである。
これは、ビデオ・ストリーム移行管理のために行うこと
が好ましく、システム内のコマンド・オーバヘッドを最
小限にするためにできるだけ早く自動モードが再活動化
される。
【0221】K2.4. エラー管理 ディジタル・ビデオ・データ伝送には、データ処理アプ
リケーションで通常、SCSIが使用されるランダム・
データ・アクセスの使用法とは異なるエラー管理要件が
ある。わずかなデータ紛失は伝送中断ほど重大ではない
ので、従来の再試行方式およびデータ妥当性検査方式が
変更されるか、または使用不能になる。通常のSCSI
エラー処理手順が行われ、各コマンドの完了時の状況フ
ェーズ中に状況バイトが返される。状況バイトは、良好
(00)条件、ターゲットSCSIチップ227がコマ
ンドを受け入れることができない場合の使用中(8
h)、またはエラーが発生した場合の検査条件(02
h)のいずれかを示す。
【0222】K2.5. エラー回復 SCSIビデオ・アダプタ212の制御装置226は、
エラーおよび状況情報をロードするために検査条件応答
時に自動的に要求センス・コマンドを生成し、回復手順
が可能かどうかを判定する。通常の回復手順では、エラ
ー状態をクリアし、壊れたデータを破棄し、できるだけ
早く通常再生を再開する。最悪の場合には、アダプタ2
12をリセットし、データを再ロードしなければ再生を
再開できない場合もある。エラー条件はログ記録され、
次のINQUIRYまたはREQUEST SENSESCSI動作によってホス
ト・システムに報告される。
【0223】K2.6. 自動再試行 バッファ満杯または装置使用中条件の場合、最高X回の
再試行まで再試行が自動化される。この場合、Xはスト
リーム・データ転送速度に依存する。これが可能なの
は、次のデータ・バッファが到着する時点までに限られ
る。その時点で、その条件が予測されていなければ(す
なわち、バッファ満杯であるが、休止されていないか、
またはSLOW PLAYモードを担っている場合)エラーがロ
グ記録され、ビデオ再生を回復して続行するには装置の
リセットまたはクリアが必要な場合もある。
【0224】ユーザにビデオ表示を送達するという状況
について主に説明してきたが、ビデオ表示を受け取り、
ビデオ表示をそのデータ表現としてディジタル化し、バ
ス210を介してデータ表現を通信ノード14に伝送
し、制御ノード18が指定する記憶ノード16、17内
に低待ち時間スイッチ18を介して格納するために、粗
放高ビデオ・アダプタを使用することができることに留
意されたい。
【0225】上記の説明は本発明を例示するにすぎない
ことに留意されたい。当業者であれば、本発明から逸脱
せずに、様々な代替態様および変更態様を考案すること
ができる。したがって、本発明は、特許請求の範囲に含
まれるこのような代替態様、変更態様、変形態様のすべ
てを包含するものである。
【0226】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0227】(1)少なくとも1つのビデオ表示のディ
ジタル表現を格納する大容量記憶装置を含む少なくとも
1つの記憶ノードであって、前記大容量記憶装置が複数
の大容量記憶ユニットから構成され、前記少なくとも1
つのビデオ表示がその全体を提示するのに時間Tを必要
とし、複数のN個のデータ・ブロックとして格納され、
各データ・ブロックが前記ビデオ表示の約T/Nの期間
に対応するデータを格納する、少なくとも1つの記憶ノ
ードと、複数の通信ノードであって、それぞれがそれか
らビデオ表示のディジタル表現を受け取るための前記少
なくとも1つの記憶ノードの出力に結合された少なくと
も1つの入力ポートを有し、前記複数の通信ノードのそ
れぞれが、それぞれディジタル表現の消費者にデータ・
ストリームとしてディジタル表現を伝送する複数の出力
ポートをさらに有する、複数の通信ノードとを含み、前
記ディジタル表現の前記N個のデータ・ブロックがX個
のストライプに区分され、データ・ブロック1、X+
1、2*X+1、・・・などがX個のストライプの第1
のストライプに関連づけられ、データ・ブロック2、X
+2、2*X+2、・・・などがX個のストライプの第
2のストライプに関連づけられ、以下同様に関連づけら
れ、前記X個のストライプのそれぞれが前記複数の大容
量記憶ユニットのそれぞれに格納されることを特徴とす
る、メディア・ストリーマ。 (2)前記複数の大容量記憶ユニットがビデオ表示のデ
ィジタル表現の1つのコピーを格納し、複数のデータ・
ストリームが前記N個のデータ・ブロックのうちの同一
データ・ブロックを同期伝達できるように前記X個のス
トライプが読み出されることを特徴とする、上記(1)
に記載のメディア・ストリーマ。 (3)前記複数の大容量記憶ユニットがビデオ表示のデ
ィジタル表現の1つのコピーを格納し、複数のデータ・
ストリームが前記N個のデータ・ブロックのうちの異な
るデータ・ブロックを同期伝達できるように前記X個の
ストライプが読み出されることを特徴とする、上記
(1)に記載のメディア・ストリーマ。 (4)前記T/Nの期間の持続時間が約0.2秒〜約2
秒の範囲であることを特徴とする、上記(1)に記載の
メディア・ストリーマ。 (5)Xの値が X=最大(r*n/d,r*m/d) という式によって求められ、式中、rがデータ・ストリ
ーム用の公称データ転送速度であり、nが公称データ転
送速度で同時に出力されるデータ・ストリームの最大数
であり、dが前記大容量記憶ユニットの1つの有効出力
データ転送速度であり、mが前記N個のデータ・ユニッ
トの少なくとも1つを格納する前記大容量記憶ユニット
のすべてから公称データ転送速度で同時に出力されるデ
ータ・ストリームの最大数であることを特徴とする、上
記(1)に記載のメディア・ストリーマ。 (6)少なくとも1つのビデオ表示のディジタル表現を
格納する大容量記憶装置を含む少なくとも1つの記憶ノ
ードであって、前記大容量記憶装置が複数のディスク・
データ記憶ユニットから構成され、前記少なくとも1つ
のビデオ表示がその全体を提示するのに時間Tを必要と
し、複数のN個のデータ・ブロックとして格納され、各
データ・ブロックが前記ビデオ表示の約T/Nの期間に
対応するデータを格納する、少なくとも1つの記憶ノー
ドと、複数の通信ノードであって、それぞれがそれから
ビデオ表示のディジタル表現を受け取るための前記少な
くとも1つの記憶ノードの出力に結合された少なくとも
1つの入力ポートを有し、前記複数の通信ノードのそれ
ぞれが、それぞれディジタル表現の消費者にデータ・ス
トリームとしてディジタル表現を伝送する複数の出力ポ
ートをさらに有する、複数の通信ノードとを含み、前記
ディジタル表現の前記N個のデータ・ブロックがX個の
ストライプに区分され、データ・ブロック1、X+1、
2*X+1、・・・などがX個のストライプの第1のス
トライプに関連づけられ、データ・ブロック2、X+
2、2*X+2、・・・などがX個のストライプの第2
のストライプに関連づけられ、以下同様に関連づけら
れ、前記X個のストライプのそれぞれが前記複数の大容
量記憶ユニットのそれぞれに格納され、Xの値が X=最大(r*n/d,r*m/d) という式によって求められ、式中、rがデータ・ストリ
ーム用の公称データ転送速度であり、nが公称データ転
送速度で同時に出力されるデータ・ストリームの最大数
であり、dが前記ディスク・データ記憶ユニットの1つ
の有効出力データ転送速度であり、mが前記N個のデー
タ・ユニットの少なくとも1つを格納する前記ディスク
・データ記憶ユニットのすべてから公称データ転送速度
で同時に出力されるデータ・ストリームの最大数である
ことを特徴とする、メディア・ストリーマ。 (7)前記複数のディスク・データ記憶ユニットがビデ
オ表示のディジタル表現の1つのコピーを格納し、複数
のデータ・ストリームが前記N個のデータ・ブロックの
うちの同一データ・ブロックを同期伝達できるように前
記X個のストライプが読み出されることを特徴とする、
上記(6)に記載のメディア・ストリーマ。 (8)前記複数のディスク・データ記憶ユニットがビデ
オ表示のディジタル表現の1つのコピーを格納し、複数
のデータ・ストリームが前記N個のデータ・ブロックの
うちの異なるデータ・ブロックを同期伝達できるように
前記X個のストライプが読み出されることを特徴とす
る、上記(6)に記載のメディア・ストリーマ。 (9)前記T/Nの期間の持続時間が約0.2秒〜約2
秒の範囲であることを特徴とする、上記(6)に記載の
メディア・ストリーマ。
【図面の簡単な説明】
【図1】本発明を取り入れたメディア・ストリーマのブ
ロック図である。
【図2】図1に示す回路スイッチの詳細を示すブロック
図である。
【図3】図1に示すテープ記憶ノードの詳細を示すブロ
ック図である。
【図4】図1に示すディスク記憶ノードの詳細を示すブ
ロック図である。
【図5】図1に示す通信ノードの詳細を示すブロック図
である。
【図6】高い優先順位で実行されるビデオ・ストリーム
出力制御コマンドのリストと、より低い優先順位で実行
されるデータ管理コマンドのリストとを示す図である。
【図7】通信ノードのデータ・フローを示すブロック図
である。
【図8】ディスク記憶ノードのデータ・フローを示すブ
ロック図である。
【図9】接続の実施を可能にするための制御メッセージ
・フローを示す図である。
【図10】再生の実行を可能にするための制御メッセー
ジ・フローを示す図である。
【図11】メディア・ストリーマとクライアント制御シ
ステムとの間に存在するインタフェースを示す図であ
る。
【図12】メディア・ストリーマを操作するために使用
する複数の「ソフト」キーを示す表示パネルを示す図で
ある。
【図13】図12のロード・ソフト・キーを選択したと
きに表示されるロード選択パネルを示す図である。
【図14】図12のバッチ・キーを選択したときに表示
されるバッチ選択パネルを示す図である。
【図15】クライアント制御システムとメディア・スト
リーマとの間に存在する複数のクライアント/サーバ関
係を示す図である。
【図16】ビデオ・データにアクセスし、それを1つま
たは複数の出力ポートに送るための先行技術の技法を示
す図である。
【図17】複数のビデオ・ポートが通信ノード・キャッ
シュ・メモリに収容された単一ビデオ・セグメントにア
クセスする方法を示すブロック図である。
【図18】複数のビデオ・ポートがディスク記憶ノード
上のキャッシュ・メモリに収容されたビデオ・セグメン
トに直接アクセスする方法を示すブロック図である。
【図19】本発明により使用されるメモリ割振り方式を
示す図である。
【図20】ビデオ1用のセグメント化論理ファイルを示
す図である。
【図21】ビデオ1の様々なセグメントを複数のディス
ク・ドライブにわたってストライプ化する方法を示す図
である。
【図22】記憶ノードとクロス・バー・スイッチとの間
の先行技術のスイッチ・インタフェースを示す図であ
る。
【図23】記憶ノードに拡張出力帯域幅を提供するよう
に図22に示す先行技術のスイッチ・インタフェースを
修正する方法を示す図である。
【図24】ビデオ出力バスへの一定のビデオ出力を保証
する手順を示すブロック図である。
【図25】ディジタル・ビデオ・データからアナログ・
ビデオ・データへの変換に使用するビデオ・アダプタの
ブロック図である。
【図26】SCSIバス・コマンドを使用して図25の
ビデオ・アダプタ・カードを制御できるようにする制御
モジュールを示すブロック図である。
【符号の説明】
10 メディア・ストリーマ 12 低待ち時間スイッチ 14 通信ノード 15 ビデオ・ポート 16 ディスク記憶ノード 17 テープ記憶ノード 18 制御ノード 62 自動化制御装置 64 システム制御装置 65 ユーザ制御 66 表示機構
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04N 5/76 Z 7/16 Z (72)発明者 アショック・ラージ・サクセナ アメリカ合衆国95120 カリフォルニア州 サンノゼ バレー・クェイル・サークル 1236

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】少なくとも1つのビデオ表示のディジタル
    表現を格納する大容量記憶装置を含む少なくとも1つの
    記憶ノードであって、前記大容量記憶装置が複数の大容
    量記憶ユニットから構成され、前記少なくとも1つのビ
    デオ表示がその全体を提示するのに時間Tを必要とし、
    複数のN個のデータ・ブロックとして格納され、各デー
    タ・ブロックが前記ビデオ表示の約T/Nの期間に対応
    するデータを格納する、少なくとも1つの記憶ノード
    と、 複数の通信ノードであって、それぞれがそれからビデオ
    表示のディジタル表現を受け取るための前記少なくとも
    1つの記憶ノードの出力に結合された少なくとも1つの
    入力ポートを有し、前記複数の通信ノードのそれぞれ
    が、それぞれディジタル表現の消費者にデータ・ストリ
    ームとしてディジタル表現を伝送する複数の出力ポート
    をさらに有する、複数の通信ノードとを含み、 前記ディジタル表現の前記N個のデータ・ブロックがX
    個のストライプに区分され、データ・ブロック1、X+
    1、2*X+1、・・・などがX個のストライプの第1
    のストライプに関連づけられ、データ・ブロック2、X
    +2、2*X+2、・・・などがX個のストライプの第
    2のストライプに関連づけられ、以下同様に関連づけら
    れ、前記X個のストライプのそれぞれが前記複数の大容
    量記憶ユニットのそれぞれに格納されることを特徴とす
    る、メディア・ストリーマ。
  2. 【請求項2】前記複数の大容量記憶ユニットがビデオ表
    示のディジタル表現の1つのコピーを格納し、複数のデ
    ータ・ストリームが前記N個のデータ・ブロックのうち
    の同一データ・ブロックを同期伝達できるように前記X
    個のストライプが読み出されることを特徴とする、請求
    項1に記載のメディア・ストリーマ。
  3. 【請求項3】前記複数の大容量記憶ユニットがビデオ表
    示のディジタル表現の1つのコピーを格納し、複数のデ
    ータ・ストリームが前記N個のデータ・ブロックのうち
    の異なるデータ・ブロックを同期伝達できるように前記
    X個のストライプが読み出されることを特徴とする、請
    求項1に記載のメディア・ストリーマ。
  4. 【請求項4】前記T/Nの期間の持続時間が約0.2秒
    〜約2秒の範囲であることを特徴とする、請求項1に記
    載のメディア・ストリーマ。
  5. 【請求項5】Xの値が X=最大(r*n/d,r*m/d) という式によって求められ、式中、rがデータ・ストリ
    ーム用の公称データ転送速度であり、nが公称データ転
    送速度で同時に出力されるデータ・ストリームの最大数
    であり、dが前記大容量記憶ユニットの1つの有効出力
    データ転送速度であり、mが前記N個のデータ・ユニッ
    トの少なくとも1つを格納する前記大容量記憶ユニット
    のすべてから公称データ転送速度で同時に出力されるデ
    ータ・ストリームの最大数であることを特徴とする、請
    求項1に記載のメディア・ストリーマ。
  6. 【請求項6】少なくとも1つのビデオ表示のディジタル
    表現を格納する大容量記憶装置を含む少なくとも1つの
    記憶ノードであって、前記大容量記憶装置が複数のディ
    スク・データ記憶ユニットから構成され、前記少なくと
    も1つのビデオ表示がその全体を提示するのに時間Tを
    必要とし、複数のN個のデータ・ブロックとして格納さ
    れ、各データ・ブロックが前記ビデオ表示の約T/Nの
    期間に対応するデータを格納する、少なくとも1つの記
    憶ノードと、 複数の通信ノードであって、それぞれがそれからビデオ
    表示のディジタル表現を受け取るための前記少なくとも
    1つの記憶ノードの出力に結合された少なくとも1つの
    入力ポートを有し、前記複数の通信ノードのそれぞれ
    が、それぞれディジタル表現の消費者にデータ・ストリ
    ームとしてディジタル表現を伝送する複数の出力ポート
    をさらに有する、複数の通信ノードとを含み、 前記ディジタル表現の前記N個のデータ・ブロックがX
    個のストライプに区分され、データ・ブロック1、X+
    1、2*X+1、・・・などがX個のストライプの第1
    のストライプに関連づけられ、データ・ブロック2、X
    +2、2*X+2、・・・などがX個のストライプの第
    2のストライプに関連づけられ、以下同様に関連づけら
    れ、前記X個のストライプのそれぞれが前記複数の大容
    量記憶ユニットのそれぞれに格納され、 Xの値が X=最大(r*n/d,r*m/d) という式によって求められ、式中、rがデータ・ストリ
    ーム用の公称データ転送速度であり、nが公称データ転
    送速度で同時に出力されるデータ・ストリームの最大数
    であり、dが前記ディスク・データ記憶ユニットの1つ
    の有効出力データ転送速度であり、mが前記N個のデー
    タ・ユニットの少なくとも1つを格納する前記ディスク
    ・データ記憶ユニットのすべてから公称データ転送速度
    で同時に出力されるデータ・ストリームの最大数である
    ことを特徴とする、メディア・ストリーマ。
  7. 【請求項7】前記複数のディスク・データ記憶ユニット
    がビデオ表示のディジタル表現の1つのコピーを格納
    し、複数のデータ・ストリームが前記N個のデータ・ブ
    ロックのうちの同一データ・ブロックを同期伝達できる
    ように前記X個のストライプが読み出されることを特徴
    とする、請求項6に記載のメディア・ストリーマ。
  8. 【請求項8】前記複数のディスク・データ記憶ユニット
    がビデオ表示のディジタル表現の1つのコピーを格納
    し、複数のデータ・ストリームが前記N個のデータ・ブ
    ロックのうちの異なるデータ・ブロックを同期伝達でき
    るように前記X個のストライプが読み出されることを特
    徴とする、請求項6に記載のメディア・ストリーマ。
  9. 【請求項9】前記T/Nの期間の持続時間が約0.2秒
    〜約2秒の範囲であることを特徴とする、請求項6に記
    載のメディア・ストリーマ。
JP07227676A 1994-09-08 1995-09-05 メディア・ストリーマ Expired - Fee Related JP3096409B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/302,624 US5712976A (en) 1994-09-08 1994-09-08 Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
US302624 1994-09-08

Publications (2)

Publication Number Publication Date
JPH08107542A true JPH08107542A (ja) 1996-04-23
JP3096409B2 JP3096409B2 (ja) 2000-10-10

Family

ID=23168552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07227676A Expired - Fee Related JP3096409B2 (ja) 1994-09-08 1995-09-05 メディア・ストリーマ

Country Status (6)

Country Link
US (1) US5712976A (ja)
JP (1) JP3096409B2 (ja)
KR (1) KR0184627B1 (ja)
CN (1) CN1122985A (ja)
CA (1) CA2154511A1 (ja)
WO (1) WO1996008112A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071373A (ja) * 2003-08-21 2005-03-17 Thomson Licensing Sa データストリームをリアルタイムでシームレスに分割および復元する方法
US7184653B2 (en) 2000-11-22 2007-02-27 Microsoft Corporation Unique digital content identifier generating methods and arrangements
JP2007052917A (ja) * 2000-11-22 2007-03-01 Microsoft Corp Dvdプレイヤに対する改良プレイバック制御方法、システムおよびコンピュータ読取可能な媒体
JP2007221323A (ja) * 2006-02-15 2007-08-30 Sony Computer Entertainment Inc 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP2008108271A (ja) * 2002-11-21 2008-05-08 Samsung Electronics Co Ltd サウンドカード、コンピュータシステム及びコンピュータシステムの制御方法
US7451453B1 (en) 2000-11-22 2008-11-11 Microsoft Corporation DVD navigator and application programming interfaces (APIs)

Families Citing this family (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188352B2 (en) * 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US7424731B1 (en) 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
US8661477B2 (en) * 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
EP0786121B1 (fr) 1994-10-12 2000-01-12 Touchtunes Music Corporation Systeme de reproduction audio-visuelle numerique intelligent
JP2833507B2 (ja) * 1995-01-31 1998-12-09 日本電気株式会社 サーバ装置のデータアクセス制御方式
JPH0981497A (ja) * 1995-09-12 1997-03-28 Toshiba Corp 実時間ストリームサーバ並びに実時間ストリームデータの格納方法および転送方法
DE69628798T2 (de) 1995-10-16 2004-04-29 Hitachi, Ltd. Verfahren zur Übertragung von Multimediadaten
EP0812513B1 (en) * 1995-12-01 2000-10-04 Koninklijke Philips Electronics N.V. Method and system for reading data for a number of users
US6128467A (en) * 1996-03-21 2000-10-03 Compaq Computer Corporation Crosspoint switched multimedia system
CA2201679A1 (en) * 1996-04-15 1997-10-15 Raju C. Bopardikar Video data storage
JP3258236B2 (ja) 1996-05-28 2002-02-18 株式会社日立製作所 マルチメディア情報転送システム
JP3279186B2 (ja) * 1996-06-21 2002-04-30 日本電気株式会社 動画像データの再生制御方式
US5995995A (en) * 1996-09-12 1999-11-30 Cabletron Systems, Inc. Apparatus and method for scheduling virtual circuit data for DMA from a host memory to a transmit buffer memory
US5922046A (en) * 1996-09-12 1999-07-13 Cabletron Systems, Inc. Method and apparatus for avoiding control reads in a network node
US5999980A (en) * 1996-09-12 1999-12-07 Cabletron Systems, Inc. Apparatus and method for setting a congestion indicate bit in an backwards RM cell on an ATM network
US5966546A (en) 1996-09-12 1999-10-12 Cabletron Systems, Inc. Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node
US5970229A (en) * 1996-09-12 1999-10-19 Cabletron Systems, Inc. Apparatus and method for performing look-ahead scheduling of DMA transfers of data from a host memory to a transmit buffer memory
US5941952A (en) * 1996-09-12 1999-08-24 Cabletron Systems, Inc. Apparatus and method for transferring data from a transmit buffer memory at a particular rate
US5870553A (en) * 1996-09-19 1999-02-09 International Business Machines Corporation System and method for on-demand video serving from magnetic tape using disk leader files
FR2753868A1 (fr) * 1996-09-25 1998-03-27 Technical Maintenance Corp Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede
US5913038A (en) * 1996-12-13 1999-06-15 Microsoft Corporation System and method for processing multimedia data streams using filter graphs
KR100251539B1 (ko) * 1996-12-14 2000-04-15 구자홍 연속매체 서비스 시스템의 부하 균등화방법
US6173329B1 (en) * 1997-02-19 2001-01-09 Nippon Telegraph And Telephone Corporation Distributed multimedia server device and distributed multimedia server data access method
US6654933B1 (en) 1999-09-21 2003-11-25 Kasenna, Inc. System and method for media stream indexing
GB2323963B (en) * 1997-04-04 1999-05-12 Sony Corp Data transmission apparatus and data transmission method
WO1998054657A2 (en) * 1997-05-26 1998-12-03 Koninklijke Philips Electronics N.V. System for retrieving data in a video server
US5845279A (en) * 1997-06-27 1998-12-01 Lucent Technologies Inc. Scheduling resources for continuous media databases
DE19835668A1 (de) 1997-08-07 1999-02-25 Matsushita Electric Ind Co Ltd Übertragungsmedienverbindungsvorrichtung, steuernde Vorrichtung, gesteuerte Vorrichtung und Speichermedium
US5987179A (en) * 1997-09-05 1999-11-16 Eastman Kodak Company Method and apparatus for encoding high-fidelity still images in MPEG bitstreams
FR2769165B1 (fr) 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
US6594699B1 (en) * 1997-10-10 2003-07-15 Kasenna, Inc. System for capability based multimedia streaming over a network
US5933834A (en) * 1997-10-16 1999-08-03 International Business Machines Incorporated System and method for re-striping a set of objects onto an exploded array of storage units in a computer system
ATE364203T1 (de) * 1997-11-04 2007-06-15 Collaboration Properties Inc Einteilbare, vernetzte multimediale systeme und anwendungen
KR100455055B1 (ko) * 1997-12-24 2005-01-05 주식회사 대우일렉트로닉스 멀티입력hd모니터의데이터저장방법
US6374336B1 (en) 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6415373B1 (en) 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US5941972A (en) * 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6208640B1 (en) 1998-02-27 2001-03-27 David Spell Predictive bandwidth allocation method and apparatus
US6961801B1 (en) * 1998-04-03 2005-11-01 Avid Technology, Inc. Method and apparatus for accessing video data in memory across flow-controlled interconnects
US6202124B1 (en) * 1998-05-05 2001-03-13 International Business Machines Corporation Data storage system with outboard physical data transfer operation utilizing data path distinct from host
US7272298B1 (en) * 1998-05-06 2007-09-18 Burst.Com, Inc. System and method for time-shifted program viewing
US6018780A (en) * 1998-05-19 2000-01-25 Lucent Technologies Inc. Method and apparatus for downloading a file to a remote unit
US6480876B2 (en) * 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6675189B2 (en) * 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
FR2781582B1 (fr) * 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US8028318B2 (en) * 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
US6311221B1 (en) 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US6574618B2 (en) 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
US7558472B2 (en) 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US8577205B2 (en) * 1998-07-30 2013-11-05 Tivo Inc. Digital video recording system
US6233389B1 (en) * 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US8380041B2 (en) * 1998-07-30 2013-02-19 Tivo Inc. Transportable digital video recorder system
US6061720A (en) * 1998-10-27 2000-05-09 Panasonic Technologies, Inc. Seamless scalable distributed media server
CN1127857C (zh) * 1999-01-06 2003-11-12 皇家菲利浦电子有限公司 用于发送多媒体信号的传输系统
US8726330B2 (en) 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US6408436B1 (en) 1999-03-18 2002-06-18 Next Level Communications Method and apparatus for cross-connection of video signals
AU4641300A (en) * 1999-04-21 2000-11-02 Toni Data, Llc Managed remote virtual mass storage for client data terminal
US6842422B1 (en) * 1999-06-15 2005-01-11 Marconi Communications, Inc. Data striping based switching system
US7222155B1 (en) * 1999-06-15 2007-05-22 Wink Communications, Inc. Synchronous updating of dynamic interactive applications
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
KR100647412B1 (ko) * 1999-12-18 2006-11-17 주식회사 케이티 전자지도 이미지 생성 및 송수신 제어 장치 및 그 방법
US6738972B1 (en) 1999-12-30 2004-05-18 Opentv, Inc. Method for flow scheduling
US6983315B1 (en) 2000-01-18 2006-01-03 Wrq, Inc. Applet embedded cross-platform caching
FR2805377B1 (fr) 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
FR2805072B1 (fr) * 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
FR2805060B1 (fr) 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
FR2808906B1 (fr) 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US7010788B1 (en) 2000-05-19 2006-03-07 Hewlett-Packard Development Company, L.P. System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs
FR2811175B1 (fr) * 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US6906999B1 (en) 2000-06-30 2005-06-14 Marconi Intellectual Property (Ringfence), Inc. Receiver decoding algorithm to allow hitless N+1 redundancy in a switch
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
US6498937B1 (en) 2000-07-14 2002-12-24 Trw Inc. Asymmetric bandwidth wireless communication techniques
US7277956B2 (en) * 2000-07-28 2007-10-02 Kasenna, Inc. System and method for improved utilization of bandwidth in a computer system serving multiple users
US7310678B2 (en) * 2000-07-28 2007-12-18 Kasenna, Inc. System, server, and method for variable bit rate multimedia streaming
GB2365557A (en) * 2000-08-04 2002-02-20 Quantel Ltd Stored data distribution in file server systems
KR100575527B1 (ko) * 2000-08-22 2006-05-03 엘지전자 주식회사 디지털 데이터 스트림의 기록방법
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
US6757894B2 (en) 2000-09-26 2004-06-29 Appstream, Inc. Preprocessed applications suitable for network streaming applications and method for producing same
US20020087717A1 (en) * 2000-09-26 2002-07-04 Itzik Artzi Network streaming of multi-application program code
US7085842B2 (en) 2001-02-12 2006-08-01 Open Text Corporation Line navigation conferencing system
US20030018978A1 (en) * 2001-03-02 2003-01-23 Singal Sanjay S. Transfer file format and system and method for distributing media content
EP1374080A2 (en) * 2001-03-02 2004-01-02 Kasenna, Inc. Metadata enabled push-pull model for efficient low-latency video-content distribution over a network
US20070230921A1 (en) * 2001-04-05 2007-10-04 Barton James M Multimedia time warping system
US20020147827A1 (en) * 2001-04-06 2002-10-10 International Business Machines Corporation Method, system and computer program product for streaming of data
US20020157113A1 (en) * 2001-04-20 2002-10-24 Fred Allegrezza System and method for retrieving and storing multimedia data
JP2003067201A (ja) * 2001-08-30 2003-03-07 Hitachi Ltd コントローラとオペレーティングシステム
JP3719180B2 (ja) * 2001-09-27 2005-11-24 ソニー株式会社 通信方法、通信システム及び出力機器
US7350206B2 (en) * 2001-11-05 2008-03-25 Hewlett-Packard Development Company, L.P. Method to reduce provisioning time in shared storage systems by preemptive copying of images
US7437472B2 (en) * 2001-11-28 2008-10-14 Interactive Content Engines, Llc. Interactive broadband server system
US7788396B2 (en) * 2001-11-28 2010-08-31 Interactive Content Engines, Llc Synchronized data transfer system
US7644136B2 (en) * 2001-11-28 2010-01-05 Interactive Content Engines, Llc. Virtual file system
US6986015B2 (en) 2001-12-10 2006-01-10 Incipient, Inc. Fast path caching
US7013379B1 (en) 2001-12-10 2006-03-14 Incipient, Inc. I/O primitives
AU2002366270A1 (en) * 2001-12-10 2003-09-09 Incipient, Inc. Fast path for performing data operations
US6959373B2 (en) * 2001-12-10 2005-10-25 Incipient, Inc. Dynamic and variable length extents
US7173929B1 (en) * 2001-12-10 2007-02-06 Incipient, Inc. Fast path for performing data operations
FR2835141B1 (fr) * 2002-01-18 2004-02-20 Daniel Lecomte Dispositif pour securiser la transmission, l'enregistrement et la visualisation de programmes audiovisuels
US8903089B2 (en) 2002-01-18 2014-12-02 Nagra France Device for secure transmission recording and visualization of audiovisual programs
US7010762B2 (en) * 2002-02-27 2006-03-07 At&T Corp. Pre-loading content to caches for information appliances
US7411901B1 (en) * 2002-03-12 2008-08-12 Extreme Networks, Inc. Method and apparatus for dynamically selecting timer durations
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US9646339B2 (en) 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US10373420B2 (en) * 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US8151304B2 (en) * 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US20040199650A1 (en) * 2002-11-14 2004-10-07 Howe John E. System and methods for accelerating data delivery
US7878908B2 (en) * 2002-11-14 2011-02-01 Nintendo Co., Ltd. Multiplexed secure video game play distribution
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US20090118019A1 (en) * 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9314691B2 (en) * 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US10201760B2 (en) * 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US9077991B2 (en) * 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8549574B2 (en) * 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US7287180B1 (en) 2003-03-20 2007-10-23 Info Value Computing, Inc. Hardware independent hierarchical cluster of heterogeneous media servers using a hierarchical command beat protocol to synchronize distributed parallel computing systems and employing a virtual dynamic network topology for distributed parallel computing system
KR100556844B1 (ko) * 2003-04-19 2006-03-10 엘지전자 주식회사 동영상 전송 시스템의 에러 검출 방법
US20050044250A1 (en) * 2003-07-30 2005-02-24 Gay Lance Jeffrey File transfer system
US7117333B2 (en) * 2003-08-25 2006-10-03 International Business Machines Corporation Apparatus, system, and method to estimate memory for recovering data
US20050160470A1 (en) * 2003-11-25 2005-07-21 Strauss Daryll J. Real-time playback system for uncompressed high-bandwidth video
DE602004020271D1 (de) * 2003-12-03 2009-05-07 Koninkl Philips Electronics Nv Energiesparverfahren und -system
US7349334B2 (en) * 2004-04-09 2008-03-25 International Business Machines Corporation Method, system and program product for actively managing central queue buffer allocation using a backpressure mechanism
US7408875B2 (en) * 2004-04-09 2008-08-05 International Business Machines Corporation System and program product for actively managing central queue buffer allocation
US20050262245A1 (en) * 2004-04-19 2005-11-24 Satish Menon Scalable cluster-based architecture for streaming media
US7228364B2 (en) * 2004-06-24 2007-06-05 Dell Products L.P. System and method of SCSI and SAS hardware validation
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
KR100584323B1 (ko) * 2004-10-04 2006-05-26 삼성전자주식회사 멀티미디어 컨텐츠의 스트리밍 서비스 방법
CA2588630C (en) 2004-11-19 2013-08-20 Tivo Inc. Method and apparatus for secure transfer of previously broadcasted content
US7533182B2 (en) * 2005-01-24 2009-05-12 Starz Media, Llc Portable screening room
US7793329B2 (en) * 2006-02-06 2010-09-07 Kasenna, Inc. Method and system for reducing switching delays between digital video feeds using multicast slotted transmission technique
US20080109557A1 (en) * 2006-11-02 2008-05-08 Vinay Joshi Method and system for reducing switching delays between digital video feeds using personalized unicast transmission techniques
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
US9330529B2 (en) * 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9953481B2 (en) * 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
CN101335883B (zh) * 2007-06-29 2011-01-12 国际商业机器公司 在数字视频广播系统中对视频流进行处理的方法和设备
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US20090100188A1 (en) * 2007-10-11 2009-04-16 Utstarcom, Inc. Method and system for cluster-wide predictive and selective caching in scalable iptv systems
US8165451B2 (en) * 2007-11-20 2012-04-24 Echostar Technologies L.L.C. Methods and apparatus for displaying information regarding interstitials of a video stream
US8165450B2 (en) 2007-11-19 2012-04-24 Echostar Technologies L.L.C. Methods and apparatus for filtering content in a video stream using text data
US8136140B2 (en) 2007-11-20 2012-03-13 Dish Network L.L.C. Methods and apparatus for generating metadata utilized to filter content from a video stream using text data
US11065552B2 (en) * 2007-12-05 2021-07-20 Sony Interactive Entertainment LLC System for streaming databases serving real-time applications used through streaming interactive video
US10058778B2 (en) * 2007-12-05 2018-08-28 Sony Interactive Entertainment America Llc Video compression system and method for reducing the effects of packet loss over a communication channel
US8510370B2 (en) * 2008-02-26 2013-08-13 Avid Technology, Inc. Array-based distributed storage system with parity
US8606085B2 (en) * 2008-03-20 2013-12-10 Dish Network L.L.C. Method and apparatus for replacement of audio data in recorded audio/video stream
US8156520B2 (en) 2008-05-30 2012-04-10 EchoStar Technologies, L.L.C. Methods and apparatus for presenting substitute content in an audio/video stream using text data
US8849435B2 (en) 2008-07-09 2014-09-30 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
US8407735B2 (en) * 2008-12-24 2013-03-26 Echostar Technologies L.L.C. Methods and apparatus for identifying segments of content in a presentation stream using signature data
US8588579B2 (en) * 2008-12-24 2013-11-19 Echostar Technologies L.L.C. Methods and apparatus for filtering and inserting content into a presentation stream using signature data
US8510771B2 (en) * 2008-12-24 2013-08-13 Echostar Technologies L.L.C. Methods and apparatus for filtering content from a presentation stream using signature data
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
CA2754990C (en) 2009-03-18 2015-07-14 Touchtunes Music Corporation Entertainment server and associated social networking services
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
EP2264604A1 (en) * 2009-06-15 2010-12-22 Thomson Licensing Device for real-time streaming of two or more streams in parallel to a solid state memory device array
US8437617B2 (en) * 2009-06-17 2013-05-07 Echostar Technologies L.L.C. Method and apparatus for modifying the presentation of content
US8925034B1 (en) 2009-06-30 2014-12-30 Symantec Corporation Data protection requirements specification and migration
US8352937B2 (en) * 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8387047B1 (en) 2009-08-03 2013-02-26 Symantec Corporation Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension
US8090744B1 (en) 2009-08-26 2012-01-03 Symantec Operating Corporation Method and apparatus for determining compatibility between a virtualized application and a base environment
US8473444B1 (en) 2009-08-28 2013-06-25 Symantec Corporation Management of actions in multiple virtual and non-virtual environments
US8438555B1 (en) 2009-08-31 2013-05-07 Symantec Corporation Method of using an encapsulated data signature for virtualization layer activation
US8458310B1 (en) 2009-09-14 2013-06-04 Symantec Corporation Low bandwidth streaming of application upgrades
CN101710901B (zh) * 2009-10-22 2012-12-05 乐视网信息技术(北京)股份有限公司 一种具有p2p功能的分布式存储系统和方法
US8566297B1 (en) 2010-01-14 2013-10-22 Symantec Corporation Method to spoof data formats from image backups
CN105355221A (zh) 2010-01-26 2016-02-24 踏途音乐公司 具有改进的用户界面的数字点播设备和相关方法
US8290912B1 (en) 2010-01-29 2012-10-16 Symantec Corporation Endpoint virtualization aware backup
US8934758B2 (en) 2010-02-09 2015-01-13 Echostar Global B.V. Methods and apparatus for presenting supplemental content in association with recorded content
US20110197224A1 (en) * 2010-02-09 2011-08-11 Echostar Global B.V. Methods and Apparatus For Selecting Advertisements For Output By A Television Receiver Based on Social Network Profile Data
WO2011111009A1 (en) * 2010-03-09 2011-09-15 Happy Cloud Inc. Data streaming for interactive decision-oriented software applications
US8495625B1 (en) 2010-07-27 2013-07-23 Symantec Corporation Method and system for creation of streamed files on-demand
CN102082696B (zh) * 2011-03-10 2012-11-21 中控科技集团有限公司 一种冗余网络系统以及基于该系统的报文发送方法
JP6002770B2 (ja) 2011-09-18 2016-10-05 タッチチューンズ ミュージック コーポレーション カラオケおよび/またはプリクラ機能を備えたデジタルジュークボックス装置および関連手法
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US9880776B1 (en) 2013-02-22 2018-01-30 Veritas Technologies Llc Content-driven data protection method for multiple storage devices
IN2013MU03094A (ja) * 2013-09-27 2015-07-17 Tata Consultancy Services Ltd
US9921717B2 (en) 2013-11-07 2018-03-20 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
US10372361B2 (en) 2014-02-27 2019-08-06 Mitsubishi Electric Corporation Data storage device including multiple memory modules and circuitry to manage communication among the multiple memory modules
KR102303730B1 (ko) 2014-03-25 2021-09-17 터치튠즈 뮤직 코포레이션 향상된 사용자 인터페이스를 가지는 디지털 주크박스 장치 및 관련 방법.
CN106445403B (zh) * 2015-08-11 2020-11-13 张一凡 针对海量数据成对存储的分布式存储方法和系统
JPWO2017145781A1 (ja) * 2016-02-25 2018-10-04 日本電信電話株式会社 ペーシング制御装置、ペーシング制御方法、及びプログラム
US10423500B2 (en) * 2016-06-01 2019-09-24 Seagate Technology Llc Technologies for limiting performance variation in a storage device
US10997065B2 (en) * 2017-11-13 2021-05-04 SK Hynix Inc. Memory system and operating method thereof
US11172269B2 (en) 2020-03-04 2021-11-09 Dish Network L.L.C. Automated commercial content shifting in a video streaming system
CN113542822B (zh) * 2021-07-12 2023-01-06 中国银行股份有限公司 影像文件传输方法及装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4355324A (en) * 1980-03-03 1982-10-19 Rca Corporation Sampled or digitized color in a high speed search record and replay system
US4679191A (en) * 1983-05-04 1987-07-07 Cxc Corporation Variable bandwidth switching system
US4604687A (en) * 1983-08-11 1986-08-05 Lucasfilm Ltd. Method and system for storing and retrieving multiple channel sampled data
US4616263A (en) * 1985-02-11 1986-10-07 Gte Corporation Video subsystem for a hybrid videotex facility
US5089885A (en) * 1986-11-14 1992-02-18 Video Jukebox Network, Inc. Telephone access display system with remote monitoring
IT1219727B (it) * 1988-06-16 1990-05-24 Italtel Spa Sistema di comunicazione a larga banda
EP0675429B1 (en) * 1988-11-11 2001-10-24 Victor Company Of Japan, Limited Data handling apparatus
US4949187A (en) * 1988-12-16 1990-08-14 Cohen Jason M Video communications system having a remotely controlled central source of video and audio data
US5421031A (en) * 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US5099319A (en) * 1989-10-23 1992-03-24 Esch Arthur G Video information delivery method and apparatus
CA2022302C (en) * 1990-07-30 1995-02-28 Douglas J. Ballantyne Method and apparatus for distribution of movies
EP0529864B1 (en) * 1991-08-22 2001-10-31 Sun Microsystems, Inc. Network video server apparatus and method
CA2084575C (en) * 1991-12-31 1996-12-03 Chris A. Dinallo Personal computer with generalized data streaming apparatus for multimedia devices
US5526507A (en) * 1992-01-06 1996-06-11 Hill; Andrew J. W. Computer memory array control for accessing different memory banks simullaneously
WO1993016557A1 (en) * 1992-02-11 1993-08-19 Koz Mark C Adaptive video file server and methods for its use
US5471640A (en) * 1992-07-06 1995-11-28 Hewlett-Packard Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n
WO1994001964A1 (en) * 1992-07-08 1994-01-20 Bell Atlantic Network Services, Inc. Media server for supplying video and multi-media data over the public telephone switched network
US5581784A (en) * 1992-11-17 1996-12-03 Starlight Networks Method for performing I/O's in a storage system to maintain the continuity of a plurality of video streams
JP3083663B2 (ja) * 1992-12-08 2000-09-04 株式会社日立製作所 ディスクアレイ装置
US5289461A (en) * 1992-12-14 1994-02-22 International Business Machines Corporation Interconnection method for digital multimedia communications
EP0609054A3 (en) * 1993-01-25 1996-04-03 Matsushita Electric Ind Co Ltd Method and apparatus for recording or reproducing video data on or from storage media.
US5550982A (en) * 1993-06-24 1996-08-27 Starlight Networks Video application server
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
US5522054A (en) * 1993-09-13 1996-05-28 Compaq Computer Corporation Dynamic control of outstanding hard disk read requests for sequential and random operations
US5510905A (en) * 1993-09-28 1996-04-23 Birk; Yitzhak Video storage server using track-pairing
US5528513A (en) * 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
US5473362A (en) * 1993-11-30 1995-12-05 Microsoft Corporation Video on demand system comprising stripped data across plural storable devices with time multiplex scheduling
US5544327A (en) * 1994-03-01 1996-08-06 International Business Machines Corporation Load balancing in video-on-demand servers by allocating buffer to streams with successively larger buffer requirements until the buffer requirements of a stream can not be satisfied
US5461415A (en) * 1994-03-15 1995-10-24 International Business Machines Corporation Look-ahead scheduling to support video-on-demand applications
US5606359A (en) * 1994-06-30 1997-02-25 Hewlett-Packard Company Video on demand system with multiple data sources configured to provide vcr-like services
US5586264A (en) * 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184653B2 (en) 2000-11-22 2007-02-27 Microsoft Corporation Unique digital content identifier generating methods and arrangements
JP2007052917A (ja) * 2000-11-22 2007-03-01 Microsoft Corp Dvdプレイヤに対する改良プレイバック制御方法、システムおよびコンピュータ読取可能な媒体
US7451453B1 (en) 2000-11-22 2008-11-11 Microsoft Corporation DVD navigator and application programming interfaces (APIs)
US7469410B2 (en) 2000-11-22 2008-12-23 Microsoft Corporation Playback control methods and arrangements for a DVD player
US7757241B2 (en) 2000-11-22 2010-07-13 Microsoft Corporation Playback control methods and arrangements for a DVD player
US7774797B2 (en) 2000-11-22 2010-08-10 Microsoft Corporation Playback control methods and arrangements for a DVD player
JP2010182408A (ja) * 2000-11-22 2010-08-19 Microsoft Corp Dvdプレイヤに対する改良プレイバック制御方法、システムおよびコンピュータ読取可能な媒体
JP2008108271A (ja) * 2002-11-21 2008-05-08 Samsung Electronics Co Ltd サウンドカード、コンピュータシステム及びコンピュータシステムの制御方法
JP2005071373A (ja) * 2003-08-21 2005-03-17 Thomson Licensing Sa データストリームをリアルタイムでシームレスに分割および復元する方法
JP4657652B2 (ja) * 2003-08-21 2011-03-23 トムソン ライセンシング データストリームをリアルタイムでシームレスに分割および復元する方法
JP2007221323A (ja) * 2006-02-15 2007-08-30 Sony Computer Entertainment Inc 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP4519082B2 (ja) * 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置

Also Published As

Publication number Publication date
CA2154511A1 (en) 1996-03-09
JP3096409B2 (ja) 2000-10-10
CN1122985A (zh) 1996-05-22
WO1996008112A1 (en) 1996-03-14
US5712976A (en) 1998-01-27
KR0184627B1 (ko) 1999-05-01
KR960011859A (ko) 1996-04-20

Similar Documents

Publication Publication Date Title
JP3096409B2 (ja) メディア・ストリーマ
JP3110987B2 (ja) 等時性データ・ストリームを生成するビデオ用に最適化された媒体ストリーマ
JP3234752B2 (ja) 媒体ストリーマ
JP3110989B2 (ja) ビデオ用に最適化された媒体ストリーマ・ユーザ・インタフェース
JP3110988B2 (ja) ビデオ用に最適化された媒体ストリーマ・データ・フロー・アーキテクチャ
JP3048897B2 (ja) ビデオ最適化ストリーム・サーバ・システム
US6005599A (en) Video storage and delivery apparatus and system
US5440336A (en) System and method for storing and forwarding audio and/or visual information on demand
US5606359A (en) Video on demand system with multiple data sources configured to provide vcr-like services
US5790794A (en) Video storage unit architecture
JP2001515686A (ja) マルチメディアサーバのデータの追加アーカイビングおよび復元
JPH10501389A (ja) 同期グループを用いるマルチキャストデジタルビデオデータサーバ
EP0701373B1 (en) Video server system
JPH09182028A (ja) ディジタル・ビデオ再生のためのスタートアップの潜伏時間を減らすための方法および装置
JP2001028741A (ja) データ配信システム、データ配信方法、及びデータ入出力装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees