JP3234752B2 - 媒体ストリーマ - Google Patents

媒体ストリーマ

Info

Publication number
JP3234752B2
JP3234752B2 JP22994495A JP22994495A JP3234752B2 JP 3234752 B2 JP3234752 B2 JP 3234752B2 JP 22994495 A JP22994495 A JP 22994495A JP 22994495 A JP22994495 A JP 22994495A JP 3234752 B2 JP3234752 B2 JP 3234752B2
Authority
JP
Japan
Prior art keywords
data
video
buffer
node
media streamer
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.)
Expired - Fee Related
Application number
JP22994495A
Other languages
English (en)
Other versions
JPH0887385A (ja
Inventor
ウィリアム・ラッセル・ベルナップ
マーサ・アール・ヘンレィ
ロレンゾ・ファルコン、ジュニア
トーマス・イー・フレイン
メイ−ラン・ルオ
アショク・ラジャ・サクセナ
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 JPH0887385A publication Critical patent/JPH0887385A/ja
Application granted granted Critical
Publication of JP3234752B2 publication Critical patent/JP3234752B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマルチメディア・デ
ータの配布システムに関し、特に、ビデオを最小のバッ
ファリングにより複数の端末に同時に提供する対話式ビ
デオ・サーバ・システムに関する。
【0002】
【従来の技術】映画及びビデオの再生は、今日、かなり
旧式の技術により実施されている。主な記憶媒体は、V
HSレコーダ/プレーヤなどのアナログ・テープから、
テレビ・スタジオ及び放送局で使用される非常に高品質
で高価なD1 VTRまで様々である。この技術には多
くの問題が存在する。こうした問題には、テープをロー
ドするために要する手作業や、機械ユニット、テープ・
ヘッド及びテープ自身の摩耗及び破損、並びにそれにか
かる費用などが含まれる。放送局を困難に陥れる1つの
重要な制約は、VTRが順次的に1度に1つの機能だけ
しか達成できないことである。各テープ・ユニットは7
5000ドル乃至150000ドルの費用を要する。
【0003】TV局は、短い映画に他ならないコマーシ
ャルからの歳入を増やそうとして、特殊コマーシャルを
正規の番組に挿入し、それにより各都市を別々の市場と
して位置付ける。これはテープ技術や、非常に高価なデ
ジタルD1テープ・システムまたはテープ・ロボットに
おいても、困難な作業である。
【0004】マルチメディア・データのエンド・ユーザ
への従来の配布方法は、2つのカテゴリに分類される。
それらは1)放送業界の方法と、2)コンピュータ業界
の方法である。放送業界の方法(映画、ケーブル、テレ
ビ網及びレコード業界を含む)は、一般に、アナログま
たはデジタル的に記録されたテープ形式の記憶を提供す
る。テープの再生は等時性(isochronous)のデータ・
ストリームを生成し、これらが放送業界の装置を通じて
エンド・ユーザに伝達される。一方、コンピュータ業界
の方法は、一般にディスク形式またはテープ増補式ディ
スク形式の記憶を提供し、データをDVI、JPEG及
びMPEGなどの圧縮デジタル形式で記録する。要求次
第でコンピュータが非等時性データ・ストリームをエン
ド・ユーザに配布し、エンド・ユーザ側でハードウェア
がバッファリングし、特殊アプリケーション・コードが
データ・ストリームを平滑化して、連続的な映像または
音声を生成する。
【0005】
【発明が解決しようとする課題】従来、ビデオ・テープ
・サブシステムは、記憶媒体のコストの点で、コンピュ
ータ・ディスク・サブシステムに勝るコスト的利点を示
してきた。しかしながら、ビデオ・テープ・サブシステ
ムは、テープ管理、アクセス待ち時間(latency)及び
比較的低い信頼性などの欠点を有する。これらの欠点
は、実時間デジタル圧縮/伸長技術の出現と共に、コン
ピュータ記憶装置のコストが低下してくると、益々重大
となってくる。
【0006】コンピュータ・サブシステムは、複合的な
コスト性能比の改良を示してきているが、一般に"ビデ
オ・フレンドリ"(video friendly)と見られていな
い。コンピュータは主に、"非等時性"(non-isochronou
s)と呼ばれるインタフェース及びプロトコルにより、
ワークステーション及び他のコンピュータ端末とインタ
フェースする。エンド・ユーザへのマルチメディア・デ
ータの円滑な(等時性の)配布を保証するために、コン
ピュータ・システムは特殊アプリケーション・コード及
び大きなバッファを要求することにより、従来の通信方
法における固有の弱点を克服しようとする。またコンピ
ュータは、等時性データ・ストリームを処理し、それら
の間を高度な正確度で切り替えるマルチメディア業界に
おける装置と互換のインタフェースを欠く点でも、ビデ
オ・フレンドリではない。
【0007】ビデオ・マテリアルをデジタル形式で圧縮
し記憶するためにコンピュータを導入することにより、
テレビ放送、映画スタジオ製作、電話回線による"ビデ
オ・オン・デマンド"、及びホテルにおける有料映画な
どの複数の主要業界において、革命が起こりつつある。
圧縮技術は、100乃至180分の1の圧縮率の達成に
より実用レベルに至った。こうした圧縮比は、ランダム
・アクセス・ディスク技術を従来のテープ・システムに
代わる魅力的なものとする。
【0008】デジタル・ディスク・データをランダムに
アクセスする能力、並びに非常に高帯域のディスク・シ
ステムにより、要求されるシステム機能及び性能が、デ
ィスク技術の性能、ハードウェア・コスト、及び消費性
の範囲内に入るようになった。従来は、ビデオまたは映
画を記憶するためにディスク・ファイルを使用すること
は、その記憶コストの点で現実的ではなかった。最近で
はこのコストが著しく低下した。
【0009】MPEG規格に準拠する圧縮ビデオ・デー
タを採用する新たに登場しつつある数多くの市場にとっ
て、ビデオ・データをコスト有効に記憶するための幾つ
かの方法が存在する。本発明は、多くの異なる性能要求
に対する階層的解決策であって、市場要求に適合するよ
うにカストマイズすなわち個別化されうるモジュラ・シ
ステム・アプローチを提案する。
【0010】
【課題を解決するための手段】本発明は、コンピュータ
業界の従来のインタフェース上で、マルチメディア環境
における等時性データ・ストリームの配布を可能にす
る"ビデオ・フレンドリ"なコンピュータ・サブシステム
を提供する。本発明による媒体ストリーマは、等時性デ
ータ・ストリームの配布に最適化され、データを新たな
コンピュータ・ネットワークにATM(非同期転送モー
ド)技術により入力することができる。本発明は、シス
テム制御のためのVTR(ビデオ・テープ・レコーダ)
メタファを提供する一方、ビデオ・テープの欠点を排除
する。本発明のシステムは、次の特徴を提供する。すな
わち、1個乃至1000個の独立に制御されるデータ・
ストリームをエンド・ユーザに配布するスケーラビリテ
ィ(scaleability)、データの単一コピーから多くの等
時性データ・ストリームを配布する能力、混合出力イン
タフェース、混合データ・レート、単純な"オープン・
システム"制御インタフェース、自動制御サポート、記
憶階層サポート及び1配布ストリーム当たりの低コスト
である。
【0011】本発明の1態様によれば、データ記憶シス
テムが、ビデオ・プレゼションのデジタル表現な
どのデータ・エンティティ(実体)を記憶する大容量記
憶ユニットを含み、データ・エンティティが複数Nの一
時的順序化セグメントに区分化される。データ・バッフ
ァが大容量記憶ユニットに双方向に接続され、最大M個
の一時的順序化セグメントを記憶する。ここでMはNよ
りも小さい。データ・バッファは、記憶された一時的順
序化セグメントを出力するための出力を有する。データ
記憶システムは更に、大容量記憶ユニットとデータ・バ
ッファとの間で、個々の一時的順序化セグメントの転送
をスケジュールするデータ・バッファ・マネージャを含
む。データ・バッファ・マネージャは、個々の一時的順
序化セグメントがデータ・バッファから出力されるよう
に要求される予測時刻に少なくとも従い、転送をスケジ
ュールする。
【0012】更に本発明によれば、少なくとも1つのビ
デオ・プレゼンテーションのデジタル表現を記憶する少
なくとも1つの記憶ノードを有する媒体ストリーマが提
供される。少なくとも1つのビデオ・プレゼンテーショ
ンは、それを完全に表示するために時間Tを要し、複数
のNデータ・ブロックとして記憶される。各データ・ブ
ロックは、少なくとも1つのビデオ・プレゼンテーショ
ンのT/N部分に相当する。少なくとも1つの記憶ノー
ドは、Nデータ・ブロックの少なくとも1つをバッファ
リングする第1のデータ・バッファを含む。媒体ストリ
ーマは更に、各々が回路スイッチを介して、第1のデー
タ・バッファの出力に接続される入力ポートを有し、該
データ・バッファから複数のNデータ・ブロックを順次
受信する複数の通信ノードを含む。順次受信されるNデ
ータ・ブロックは、同一のビデオ・プレゼンテーション
または異なるビデオ・プレゼンテーションに関連付けら
れる。複数の通信ノードの各々は更に、複数の出力ポー
トを有し、複数の個々の出力ポートは特定のビデオ・プ
レゼンテーションのデジタル表現を出力する。複数の個
々の通信ノードは更に、Nデータ・ブロックの少なくと
も1つを出力する以前に、当該データ・ブロックをバッ
ファリングする第2のデータ・バッファを含む。媒体ス
トリーマは更に少なくとも1つの制御ノードを含み、制
御ノードは第1の動作状態に応答して、Nデータ・ブロ
ックの1つを第1のデータ・バッファから第1の通信ノ
ードの出力ポート、並びに第2の通信ノードの出力ポー
トへ転送させる。少なくとも1つの制御ノードは更に、
第2の動作状態に応答して、Nデータ・ブロックの1つ
を第1のデータ・バッファから通信ノードの1つの第2
のデータ・バッファへ、更に第2のデータ・バッファか
ら前記通信ノードの複数の出力ポートへ転送させる。
【0013】記憶ノードまたは通信ノードにおいて、バ
ッファ・メモリに保存されるべきブロックを選択する好
適な分散データ・バッファ管理技法の実施例が開示され
る。これらの技法はビデオ・データ・ストリームの予測
可能な性質に依存し、従って、任意のデータ・ブロック
に対する将来要求の予測が可能になる。
【0014】
【実施例】
用語説明:以降の説明の中で使用される用語について、
最初に説明する。 ・AAL−5:ATM ADAPTATION LAYER-5。データ伝送に
好適なATMサービスのクラスを示す。 ・ATM:ASYNCHRONOUS TRANSFER MODE(非同期転送モ
ード)。ローカル若しくはワイド・エリア・ネットワー
ク、または両者で使用される高速スイッチング及び伝送
技術。データ及びビデオ/音声の両方を伝送するように
設計される。 ・Betacam:専門的品質のアナログ・ビデオ・フォーマ
ット。 ・CCIR 601:デジタル・テレビの規格の解像
度。720×840(NTSC)または720×576
(PAL)。輝度はクロミナンスと共に、水平方向に
2:1でサブサンプルされる。 ・CPU:中央処理ユニット。コンピュータ・アーキテ
クチャにおいて、コンピュータ命令を処理する主エンテ
ィティ。 ・CRC:CYCLIC REDUNDANCY CHECK(巡回冗長検
査)。データ・エラー検出機構。 ・D1:CCIR 601に準拠するビデオ記録フォー
マット。19mmビデオ・テープ上の記録。 ・D2:SMPTE 244Mに準拠するデジタル・ビ
デオ記録フォーマット。19mmビデオ・テープ上の記
録。 ・D3:SMPTE 244Mに準拠するデジタル・ビ
デオ・フォーマット。1/2インチ・ビデオ・テープ上
の記録。 ・DASD:DIRECT ACCESS STORAGE DEVICE(直接アク
セス記憶装置)。アドレス可能な任意のオンライン記憶
装置またはCD−ROMプレーヤ。磁気ディスク・ドラ
イブと同義。 ・DMA:直接メモリ・アクセス。コンピュータ・アー
キテクチャにおいて、CPUを必要とすることなく、デ
ータを転送する方法。 ・DVI:通常CD−ROMディスクからコンピュータ
画面にビデオを再生するために使用される、比較的低品
質のデジタル・ビデオ圧縮フォーマット。 ・E1:T1(後述)の欧州版。 ・FIFO:FIRST IN FIRST OUT(先入れ先出し)。先
に到来したデータを先にサービスするように作用するキ
ュー処理方法。 ・GenLock:別のビデオ信号との同期処理。ビデオのコ
ンピュータ捕獲において、デジタル化処理をビデオ信号
の走査パラメータに同期させることが要求される。 ・I/O:入力/出力 ・等時性(Isochronous):時間に感応的であり、(好
適には)中断無しに送信される情報をさすときに使用さ
れる。実時間で送信されるビデオ及び音声データは等時
性である。 ・JPEG:JOINT PHOTOGRAPHIC EXPERT GROUP。IS
O(国際標準化機構)主催の下で、コンピュータ・シス
テムにおいて使用される静止画のデジタル圧縮の統一規
格を定義している活動委員会。 ・KB:キロバイト。1024バイト。 ・LAN:ローカル・エリア・ネットワーク。端末、コ
ンピュータ、及び周辺装置を約1マイル以下の距離にお
いて一緒に接続するツイストペア、同軸または光ファイ
バ・ケーブル上での高速伝送。 ・LRU:LEAST RECENTRY USED(最低使用頻度)。 ・MPEG:MOVING PICTURE EXPERTS GROUP。ISO主
催の下で、動画ビデオ/音声のデジタル圧縮/伸長の規
格を定義している活動委員会。MPEG−1は初期の規
格であり、現在使用されている。MPEG−2は次の規
格となるもので、デジタルで柔軟なスケーラブルのビデ
オ伝送をサポートし、複数の解像度、ビット・レート及
び配布機構をカバーする。 ・MPEG−1、MPEG−2:MPEG参照。 ・MRU:MOST RECENTRY USED(最高使用頻度)。 ・MTNU:MOST TIME TO NEXT USE。 ・NTSCフォーマット:NATIONAL TELEVISION STANDA
RDS COMMITTEE。米国と日本で使用されるカラー・テレ
ビジョン・フォーマット規格。 ・PAL:PHASE ALTERNATION LINE。フランスを除くヨ
ーロッパで使用されるカラー・テレビジョン・フォーマ
ット規格。 ・PC:パーソナル・コンピュータ。家庭または事業で
使用される比較的低価格のコンピュータ。 ・RAID:REDUNDANT ARRAY of INEXPENSIVE DISKS。
縦列をなして作用し、帯域幅出力を増加し、冗長バック
アップを提供する、複数の磁気または光ディスクを使用
する記憶配列。 ・SCSI:SMALL COMPUTER SYSTEM INTERFACE。周辺
装置及びそれらの制御装置をコンピュータに接続するた
めの業界標準。 ・SIF:SOURCE INPUT FORMAT。CCIR 601解
像度の4分の1。 ・SMPTE:SOCIETY OF MOTION PICTURE & TELEVISI
ON ENGINEERS。 ・SSA:SERIAL STORAGE ARCHITECTURE。周辺装置と
それらの制御装置をコンピュータに接続する規格。SC
SIと置換可能。 ・T1:ビット・レート1.544Mビット/秒の電話
網へのデジタル・インタフェース。 ・TCP/IP:伝送制御プロトコル/インターネット
・プロトコル。ネットワークを通じ異類のコンピュータ
をリンクするために、国防総省により開発された一連の
プロトコル。 ・VHS:VERTICAL HELICAL SCAN。アナログ・ビデオ
を磁気テープ上に記録するための共通フォーマット。 ・VTR:ビデオ・テープ・レコーダ。ビデオを磁気テ
ープ上に記憶するための装置。 ・VCR:ビデオ・カセット・レコーダ。VTRと同
じ。
【0015】本実施例は以下のように構成される。 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デ
ジタル・データ・フォーマットから、業界標準テレビジ
ョン・フォーマット(NTSCまたはPAL)へのビデ
オ・イメージ及び映画の変換 K.SCSI装置へのデジタル・ビデオの伝送 K1.SCSIレベルのコマンド記述 K2.バッファ管理 K2.1.バッファ選択及び位置 K2.2.自動モード K2.3.マニュアル・モード K2.4.エラー管理 K2.5.エラー回復 K2.6.自動再試行
【0016】A.一般アーキテクチャ: ビデオ最適化ストリーム・サーバ・システム10(以降
では"媒体ストリーマ"として参照される)が図1に示さ
れ、スケーラビリティ、高い使用可能性、及び構成の柔
軟性を提供する、アーキテクチャ的に別個の4つのコン
ポーネントを含む。これらの主要コンポーネントを次に
示す。 1)低待ち時間スイッチ12:通信ノード14と、1つ
以上の記憶ノード16、17と、1つ以上の制御ノード
18との間で、データ及び制御情報を配布する主なタス
クを有するハードウェア/マイクロコード・コンポーネ
ント。 2)通信ノード14:NTSC、PAL、D1、D2な
どの、通常、放送業界において既知の外部定義インタフ
ェース上で、"再生"(データの等時的配布)または"記
録"(データの等時的受信)を可能にする主なタスクを
有するハードウェア/マイクロコード・コンポーネン
ト。デジタル−ビデオ変換インタフェースが、各通信ノ
ード14の出力に接続される複数のビデオ・ポート15
に含まれるビデオ・カード内で実現される。 3)記憶ノード16、17:ディスクなどの記憶媒体及
び関連する記憶使用可能性オプションを管理する主なタ
スクを有するハードウェア/マイクロコード・コンポー
ネント。 4)制御ノード18:コンピュータ業界において既知の
外部定義サブシステム・インタフェースから制御コマン
ドを受信し、実行する主なタスクを有するハードウェア
/マイクロコード・コンポーネント。
【0017】64ノードを有する通常の媒体ストリーマ
は、31個の通信ノード、31個の記憶ノード、及び2
個の制御ノードを含むことができ、これらは低待ち時間
スイッチ12により相互接続される。小規模なシステム
ではスイッチを含まずに、通信、記憶及び制御機能をサ
ポートする単一のハードウェア・ノードを含みうる。媒
体ストリーマ10の設計は、利用者によるその導入によ
り、小規模システムを大規模システムに発展させること
を可能にする。全ての構成において、媒体ストリーマ1
0の機能的能力は、配布ストリーム数及び記憶マルチメ
ディア時間を除き、同様である。
【0018】図2は、低待ち時間スイッチ12の詳細を
示す。複数の回路スイッチ・チップ(図示せず)が、プ
レーナ・ボードを介して相互接続されるクロスバー・ス
イッチ・カード20上で相互接続される。プレーナ及び
単一カード20は、16個のノード・ポートを有する低
待ち時間クロスバー・スイッチを構成する。追加のノー
ド・ポートを構成するために、カード20の追加が可能
であり、必要に応じて、アクティブ冗長ノード・ポート
により高い使用可能性を提供することもできる。低待ち
時間スイッチ12の各ポートは、例えば25Mバイト/
秒の全2重通信チャネルを可能にする。
【0019】情報はスイッチ12を介してパケットにて
転送される。各パケットは、各スイッチ・チップ内の個
々のクロスバー・スイッチ・ポイントのスイッチング状
態を制御するヘッダ部分を含む。制御ノード18は他の
ノード(記憶ノード16、17及び通信ノード14)
に、低待ち時間スイッチ12を介して、ピア・ツー・ピ
ア・オペレーションを可能にするために必要な情報を提
供する。
【0020】図3は、テープ記憶ノード17の内部詳細
を示す。以降で説明されるように、テープ記憶ノード1
7は、ビデオ・プレゼンテーションのデジタル表現の記
憶のための高容量記憶機構を提供する。
【0021】ここではビデオ・プレゼンテーションは、
表示または処理のための1つ以上のイメージを含むこと
ができ、また音声部分も含みうる。フィルム、映画また
は動画シーケンスの順次フレームなどの、1つ以上のイ
メージが論理的に関連される。これらのイメージは元
来、カメラ、デジタル・コンピュータ、またはカメラと
デジタル・コンピュータの組合わせにより生成されう
る。音声部分は連続イメージの表示に同期される。ここ
では、ビデオ・プレゼンテーションのデータ表現は、1
つ以上のイメージに加え、音声も表現できる、任意の適
切なデジタル・データ・フォーマットである。デジタル
・データは符号化または圧縮されうる。
【0022】図3を再度参照すると、テープ記憶ノード
17は、テープ・ライブラリ26に含まれる複数のテー
プ・レコードへのアクセスを可能にするテープ・ライブ
ラリ制御装置インタフェース24を含む。別のインタフ
ェース28は、SCSIバス相互接続を介して、他のテ
ープ・ライブラリへのアクセスを可能にする。内部シス
テム・メモリ30は、インタフェース24または28か
ら受信される、或いはDMAデータ転送パス32を介し
て受信されるビデオ・データのバッファリングを可能に
する。システム・メモリ・ブロック30はPC34の1
部であり、テープ・ライブラリ及びファイル管理アクシ
ョンのためのソフトウェア36を含む。スイッチ・イン
タフェース及びバッファ・モジュール38(ディスク記
憶ノード16、通信ノード14及び制御ノード18でも
使用される)は、テープ記憶ノード17と低待ち時間ス
イッチ12との間の相互接続を可能にする。すなわち、
モジュール38はデータ転送をパケットに区分し、スイ
ッチ12がパケットを経路指定するために使用するヘッ
ダ部分を各パケットに追加する役割をする。パケットを
スイッチ12から受信すると、モジュール38は受信デ
ータを局所的にバッファリングするか、処理する以前に
ヘッダ部分を除去する役割をする。
【0023】テープ・ライブラリ26からのビデオ・デ
ータは、最初のバッファリング・アクションにおいて、
システム・メモリ30に入力される。次に、制御ノード
18からの初期命令に応答して、ビデオ・データは低待
ち時間スイッチ12を介して、ディスク記憶ノード16
に経路指定され、要求されたときの実質的な即時アクセ
スに備える。
【0024】図4は、ディスク記憶ノード16の詳細を
示す。各ディスク記憶ノード16は、スイッチ・インタ
フェース及びバッファ・モジュール40を含み、このモ
ジュールは、RAIDバッファ・ビデオ・キャッシュ及
び記憶インタフェース・モジュール42との間のデータ
転送を可能にする。インタフェース42は受信ビデオ・
データを複数のディスク45に渡し、データは擬似RA
ID式に複数のディスクに渡って分散される。RAID
メモリ記憶装置の詳細は既知であり、Pattersonらによ
る"A Case for Redundant Arrays of Inexpensive Disk
s(RAID)"(ACMSIGMOD Conference、Chicago、IL、Jun
e 1-3、1988 pages 109-116)で述べられている。
【0025】ディスク記憶ノード16は更に、ソフトウ
ェア・モジュール46及び48を含む内部PC44を有
し、これらのモジュールは、それぞれ、記憶ノード制御
及びビデオ・ファイル・システム、及びディスク制御及
びディスク45上の記憶データのRAIDマッピングを
提供する。本質的に、各ディスク記憶ノード16は、テ
ープ記憶ノード17よりもより即時性のあるビデオ・デ
ータの使用可能性を提供する。各ディスク記憶ノード1
6は更に、ビデオ・データの要求に際してビデオ・デー
タのより早い使用可能性を提供するために、ビデオ・デ
ータをスイッチ・インタフェース及びバッファ・モジュ
ール40の半導体メモリに(キャッシュ形式に)バッフ
ァリングすることができる。
【0026】一般に、記憶ノードは、大容量記憶ユニッ
ト(または大容量記憶ユニットとのインタフェース)
と、大容量記憶ユニットから読み書きされるデータを局
所的にバッファリングする能力とを有する。記憶ノード
は、1つ以上のテープ・ドライブ形式またはディスク・
ドライブ形式の順次アクセス大容量記憶装置、及びラン
ダム・アクセス形式にアクセスされる1つ以上のディス
ク・ドライブまたは半導体メモリなどのランダム・アク
セス記憶装置を含みうる。
【0027】図5は、通信ノード14の内部コンポーネ
ントのブロック図を示す。上述の各ノードと同様、通信
ノード14は、上述のように低待ち時間スイッチ12と
の通信を可能にするスイッチ・インタフェース及びバッ
ファ・モジュール50を含む。ビデオ・データは、スイ
ッチ・インタフェース及びバッファ・モジュール50と
ストリーム・バッファ及び通信インタフェース52との
間で直接転送され、ユーザ端末(図示せず)に転送され
る。PC54はソフトウェア・モジュール56及び58
を含み、これらはそれぞれ、通信ノード制御(例えばス
トリームの開始/停止アクション)及び等時性データ・
ストリームの連続的生成を可能にする。ストリーム・バ
ッファ及び通信インタフェース52への追加の入力60
は、出力データのフレーム同期を可能にする。このデー
タは、ストリーム・サーバ10の全体的な動作制御を司
るシステム制御装置64により制御される自動制御装置
62から受信される(図1参照)。システム制御装置6
4はユーザ制御セット・トップ・ボックス(set top bo
x)65からの入力に応答して、媒体ストリーマ10が
要求ビデオ・プレゼンテーションをアクセスすることを
可能にするコマンドを生成する。システム制御装置64
は更にユーザ・インタフェース及び表示機構66を提供
され、これはユーザがハードまたはソフト・ボタンなど
によりコマンドを入力したり、ビデオ・プレゼンテーシ
ョンの識別、ビデオ・プレゼンテーションのスケジュー
リング、及びビデオ・プレゼンテーションの再生の制御
を可能にする他のデータを入力することを可能にする。
【0028】各制御ノード18はPCとして構成され、
低待ち時間スイッチ12とインタフェースするスイッチ
・インタフェース・モジュールを含む。各制御ノード1
8はシステム制御装置64からの入力に応答して、情報
を通信ノード14及び記憶ノード16、17に提供し、
所望の相互接続が低待ち時間スイッチ12を介して生成
される。更に制御ノード18は、1つ以上のディスク記
憶ノード16からの要求ビデオ・データのステージン
グ、並びにストリーム配布インタフェースを介するビデ
オ・データのユーザ表示端末への配布を可能にするソフ
トウェアを含む。制御ノード18は更に、低待ち時間ス
イッチ12を通じて送信されるコマンドを介して、テー
プ及びディスク記憶ノード16、17の両方のオペレー
ションを制御する。
【0029】媒体ストリーマ10は、図1に示されるよ
うに、3つの体系化された外部インタフェースを有す
る。これらの外部インタフェースを次に示す。 1)制御インタフェース:TCP/IPプロトコル(イ
ーサネットLAN、トークンリングLAN、シリアル・
ポート、モデムなど)を実行するオープン・システム・
インタフェース。 2)ストリーム配布インタフェース:データ・ストリー
ムの配布のために設計された複数の業界標準(NTS
C、D1など)の1つ。 3)自動制御インタフェース:ストリーム出力の正確な
同期のための業界標準制御インタフェースの集合(GenL
ock、BlackBurst、SMPTEクロックなど)。
【0030】アプリケーション・コマンドは、制御イン
タフェースを介して、媒体ストリーマ10に発行され
る。データ・ロード・コマンドが発行されると、制御ノ
ードは入力データ・ファイルをセグメント(すなわちデ
ータ・ブロック)に分断し、それらを1つまたは複数の
記憶ノードに分配する。マテリアル密度及びデータの同
時ユーザ数が、記憶ノード16、17上のデータの配置
に影響する。密度または同時ユーザが増えると、容量及
び帯域幅のために、より多くの記憶ノードを使用するこ
とになる。
【0031】エンド・ユーザへのデータのストリーミン
グを開始するコマンドが、制御インタフェースを介して
発行されると、制御ノード18は適切な通信ノード14
を選択して活動化し、記憶ノード16、17上のデータ
・ファイル・セグメントの位置を示す制御情報を渡す。
通信ノード14は関連する記憶ノード16、17を活動
化し、低待ち時間スイッチ12を通じて送信されるコマ
ンド・パケットを介してこれらのノードと通信し、デー
タ転送を開始する。
【0032】データがディスク記憶ノード16と通信ノ
ード14との間を低待ち時間スイッチ12を介して、"
ジャスト・イン・タイム"(just in time)・スケジュ
ーリング・アルゴリズムに従い転送される。スケジュー
リング及びデータ・フロー制御に使用される技法は以降
で詳細に述べられる。通信ノード・インタフェース14
から発行されたデータ・ストリームは、単一の通信ノー
ド・ストリームが各ディスク記憶ノード16の容量及び
帯域幅の1部を使用するように、ディスク記憶ノード1
6に(またはディスク記憶ノードから)多重化(multip
lex)される。このように多くの通信ノード14が、デ
ィスク記憶ノード16上の同一のまたは異なるデータへ
のアクセスを多重化しうる。例えば、媒体ストリーマ1
0は1500の個々に制御されるエンド・ユーザ・スト
リームを、通信ノード14のプールから提供することが
でき、これらのストリームの各々は、ディスク記憶ノー
ド16に渡り分散される単一のマルチメディア・ファイ
ルへのアクセスを多重化する。この能力は"単一コピー
多重ストリーム"(single copy multiple stream)と称
される。
【0033】制御インタフェースを介して受信されるコ
マンドは、2つの異なるカテゴリにおいて実行される。
データを管理し、ストリーム制御に直接関係しないコマ
ンドは、"低優先順位"で実行される。これにより、エン
ド・ユーザへのデータ・ストリームの配布が妨害される
ことなく、アプリケーションが媒体ストリーマ10に新
たなデータをロードすることができる。ストリームの配
布に影響するコマンド(すなわち出力)は、"高優先順
位"で実行される。
【0034】制御インタフェース・コマンドが図6に示
される。媒体ストリーマ10においてデータをロードし
管理する低優先順位のデータ管理コマンドには、VS-CRE
ATE、VS-OPEN、VS-READ、VS-WRITE、VS-GET-POSITION、
VS-SET_POSITION、VS-CLOSE、VS-RENAME、VS-DELETE、G
ET_ATTRIBUTES、及びVS-GET_NAMESが含まれる。
【0035】ストリーム出力を開始し管理する高優先順
位のストリーム制御コマンドには、VS-CONNECT、VS-PLA
Y、VS-RECORD、VS-SEEK、VS-PAUSE、VS-STOP及びVS-DIS
CONNECTが含まれる。制御ノード18は、要求が実行さ
れることを保証するためにストリーム制御コマンドをモ
ニタする。制御ノード18におけるこの"容認制御"(ad
mission control)機構は、媒体ストリーマ10の能力
を越えたときのストリーム開始要求を拒絶しうる。こう
した場合は次に示すような幾つかの状況において発生し
うる。 1)あるコンポーネントがシステム内で故障し、最大オ
ペレーションを阻止するとき。 2)データ・ファイルへの同時ストリームの指定数(VS
-CREATEコマンドのパラメータにより指定される)を越
えたとき。 3)システムからの同時ストリームの指定数(導入構成
(installation configuration)により指定される)を
越えたとき。
【0036】通信ノード14は、各々が潜在的に異なる
帯域幅(ストリーム)能力及び物理定義を有する異種の
グループとして管理される。VS-CONNECTコマンドが媒体
ストリーマ10に、通信ノード14と、等時性データ・
ストリームの配布を可能にするその特定のまたは全ての
関連帯域幅とを割当てるように命令する。例えば媒体ス
トリーマ10は、圧縮データ・ストリームをかなり低い
データ・レート(通常1Mビット/秒乃至16Mビット
/秒)で他の通信ノード14上に再生しながら、非圧縮
データ・ストリームを通信ノード14を通じて、270
Mビット/秒で同時に再生することができる。
【0037】記憶ノード16、17は、各々が潜在的に
異なる帯域幅(ストリーム)能力及び物理定義を有する
異種のグループとして管理される。VS-CREATEコマンド
は媒体ストリーマ10に、1つまたは複数の記憶ノード
16、17に、マルチメディア・ファイル及びその関連
メタデータのための記憶域を割当てるように命令する。
VS-CREATEコマンドは、ストリーム密度及び要求される
同時ユーザの最大数の両方を指定する。
【0038】放送業界においては、VS-CONNECT-LIST、V
S-PLAY-AT-SIGNAL、及びVS-RECORD-AT-SIGNALの3つの
追加のコマンドが、自動制御システムをサポートする。
VS-CONNECT-LISTは、アプリケーションがサブシステム
への単一のコマンド内に、再生コマンド・シーケンスを
指定することを可能にする。媒体ストリーマ10は、各
再生コマンドをあたかも制御インタフェースを介して発
行されたかのように実行するが、ストリームをつなぎめ
無しに配布する。シーケンス例を次に示す。 1)制御ノード18が、FILE1、FILE2及びFILE3の1部
または全部が順次再生されるべきことを示す再生サブコ
マンドと一緒に、VS-CONNECT-LISTを受信する。制御ノ
ード18はファイルの最大データ・レートを決定し、そ
の資源を通信ノード14に割当てる。割当てられた通信
ノード14は、詳細な再生リストを与えられ、等時性ス
トリームの配布を開始する。 2)FILE1の配布の終りに近づくと、通信ノード14はF
ILE2の配布を開始するが、ノードの出力ポートへはまだ
許可しない。FILE1が完了するか、自動制御インタフェ
ースから信号が発生すると、通信ノード14は出力ポー
トを第1のストリームから第2のストリームに切り替え
る。これは1/30秒または1標準ビデオ・フレーム時
間内に行われる。 3)通信ノード14は、FILE1に関連する資源を割当て
解除する。
【0039】VS-PLAY-AT-SIGNAL及びVS-RECORD-AT-SIGN
ALコマンドにより、外部自動制御インタフェースからの
信号が、ビデオ・フレーム境界への再生及び記録オペレ
ーションのためのデータ転送を可能にする。上述の例で
は、VS-CONNECT-LISTコマンドは、外部自動制御インタ
フェース信号にもとづきFILE1からFILE2への遷移を可能
にするPLAY-AT-SIGNALサブコマンドを含む。代わりにサ
ブコマンドがVS-PLAYの場合には、遷移はFILE1転送が完
了したときにのみ発生する。
【0040】媒体ストリーマ10が実行する他のコマン
ドは、記憶階層を管理する能力を提供する。これらのコ
マンドには、VS-DUMP、VS-RESTORE、VS-SEND、VS-RECEI
VE、及びVS-RECEIVE_AND_PLAYが含まれる。これらのコ
マンドの各々は、記憶ノード16と2つの外部定義階層
エンティティとの間での、1つまたは複数のマルチメデ
ィア・ファイルの転送を発生する。 1)VS-DUMP及びVS-RESTOREコマンドは、制御ノード1
8がアクセスできるディスク記憶ノード16とテープ記
憶ユニット17との間のデータ転送を可能にする。デー
タ転送は制御アプリケーションにより、或いは制御ノー
ド18により自動的に開始されうる。 2)VS-SEND及びVS-RECEIVEコマンドは、マルチメディ
ア・ファイルを別の媒体ストリーマに伝送する方法を提
供する。任意選択的に受信媒体ストリーマは、入力ファ
イルをファイル全体を待機することなく、即時、予め割
当てられた通信ノードに再生することができる。
【0041】媒体ストリーマ・アーキテクチャにおいて
定義されるモジュール設計及び機能セットに加え、デー
タ・フローが等時性データ転送に対応して最適化され、
コストを多大に低減する。特に、 1)低待ち時間スイッチの帯域幅が接続ノードの帯域幅
を上回り、ノード間の通信に、ほとんどブロッキングが
生じなくなる。 2)プロセッサ・メモリへのデータ転送が回避され、よ
り大きな帯域幅が提供される。 3)データの処理が回避され、高価な処理ユニットが排
除される。 4)データ転送が慎重にスケジュールされ、大きなデー
タ・キャッシュが回避される。
【0042】従来のコンピュータ用語では、媒体ストリ
ーマ10は、相互接続されるアダプタのシステムとして
機能し、これらのアダプタは低待ち時間スイッチ12を
介して、ピア・ツー・ピアのデータ転送を実行する能力
を有する。低待ち時間スイッチ12はデータ記憶装置へ
のアクセスを有し、"ホスト・コンピュータ"の介入無し
に、あるアダプタのメモリから別のアダプタのメモリへ
データ・セグメントを転送する。
【0043】B.等時的配布のためのデジタル圧縮ビデ
オ・データの階層的管理 媒体ストリーマ10は階層的記憶要素を提供する。これ
は非常に小規模なビデオ・システムから、非常に大規模
なシステムに及ぶスケーラビリティを可能にする設計で
ある。更にビデオ・オン・デマンド、準ビデオ・オン・
デマンド、コマーシャル挿入、高品質非圧縮ビデオの記
憶、捕獲及び再生の機能を満足するために必要な様々な
要求に適応する、記憶管理の柔軟性を提供する。
【0044】B1.テープ記憶装置 媒体ストリーマ10において、ビデオ・プレゼンテーシ
ョンは高性能デジタル・テープからディスクに転送さ
れ、エンド・ユーザにより要求されるより低いデータ・
レートで再生される。このようにして、ビデオ時間の最
小量だけがディスク・サブシステム上に記憶される。シ
ステムが"準ビデオ・オン・デマンド"の場合、例えば各
映画の5分間だけが、任意の時刻において、ディスク記
憶装置に存在する必要がある。典型的な2時間映画で
は、それぞれが5分間のセグメントが22個だけ必要と
なる。結果的に任意の時刻において、全てのビデオ・プ
レゼンテーションがディスク・ファイル上に保持される
ことがないので、ビデオ・プレゼンテーションのための
総ディスク記憶要求が低減される。再生されるプレゼン
テーションの1部分だけが、ディスク・ファイル内に存
在することが必要である。
【0045】換言すると、ビデオ・プレゼンテーション
がその全体を再生するために時間Tを要し、Nデータ・
ブロックを有するデジタル表現として記憶される場合、
各データ・ブロックはビデオ・プレゼンテーションの約
T/N期間に相当する当該ビデオ・プレゼンテーション
の1部を記憶する。Nデータ・ブロックの最後のデータ
・ブロックは、T/N期間よりも少ない期間を記憶す
る。
【0046】システムに対する要求が大きくなり、スト
リーム数が増加すると、統計的平均として、ビデオ・ス
トリーム要求の約25%が同じ映画に対するものとな
る。しかしながら、異なるサブ秒単位の時間間隔では、
観賞者への配布は、これらのサブ秒の要求の50%以上
が15の映画セグメントのグループに入る結果となる。
【0047】本発明の1態様は、この要求を満足する最
適な技術を利用することである。(例えばIBM社によ
り生産される)ランダム・アクセス・カートリッジ・ロ
ーダは、1テープ当たりの大きな記憶容量、1ドロワ
(drawer)当たり100本のテープを有する機械式ロボ
ット・ローディング、及び1ドロワ当たり最大2個のテ
ープ・ドライブを有する、デジタル・テープ・システム
である。結果的に、"ムービ・オン・デマンド"・システ
ムに対応する有効なテープ・ライブラリが提供される。
しかしながら、本発明は映画のための大容量記憶装置を
提供する非常に低コストのデジタル・テープ記憶ライブ
ラリ・システムを可能にし、更に、低い要求度の映画を
テープから速度マッチング・バッファに、そして次にビ
デオ伸長及び配布チャネルに直接再生することを可能に
する。
【0048】階層テープ記憶を任意のビデオ・システム
に結合する第2の利点は、ディスクが不動作状態になっ
たときに、ディスク上に記憶される任意の映画に迅速な
バックアップを提供することである。通常のシステムで
は、あるディスクが故障したとき、映画がテープから再
ロードされるように"予備"のディスクを保持する。これ
は通常、RAIDまたはRAID式システムと結合され
る。
【0049】B2.ディスク記憶システム ビデオ・ストリームに対する要求レベルが高くなると、
映画全体をディスク上に記憶して、ビデオ・データをテ
ープからディスクに連続的に転送するために要求される
システム性能オーバヘッドを低減することが、より効率
的となる。通常のシステムは、依然としてテープ上に記
憶される映画のライブラリを含む。なぜなら、ライブラ
リ内の通常の映画の数は、任意の時刻に再生される映画
の数の10倍乃至100倍多いからである。ユーザが特
定の映画を要求すると、その映画のセグメントがディス
ク記憶ノード16にロードされ、そこから開始される。
【0050】同一の映画を観賞したい多くのユーザが存
在する場合、ディスク上にその映画を保持することが有
利である。これらの映画は通常、その週の"ホットな"映
画であり、ピークの観賞時間帯に先立ち、テープからデ
ィスクにプリロードされる。これにより、ピーク時間帯
の間のシステムの作業負荷が軽減される。
【0051】B3.キャッシュからの映画 "ホット"映画に対する要求が多くなると、媒体ストリー
マ10はMRUベースのアルゴリズムを通じ、主要映画
をキャッシュに転送するように決定する。これは実質的
なキャッシュ・メモリを必要とするが、コスト対アクテ
ィブ・ストリーム数の比率に関しては、キャッシュから
サポートされる高ボリュームが、媒体ストリーマ10の
総コストを押し下げる。
【0052】ビデオ・データの性質、システムが常に再
生中のビデオ、及び次に要求されるデータ、再生に要す
る時間が予め認識されることから、キャッシュ、内部バ
ッファ、ディスク記憶装置、テープ・ローダ、バス性能
などの使用を最適化する方法が提供される。
【0053】全ての記憶媒体に渡り内容の配置及び分配
を制御するアルゴリズムが、広帯域スペクトル要求への
等時性データの配布を可能にする。等時性データの配布
は実質的に100%予測可能であるので、これらのアル
ゴリズムは、コンピュータ業界の他のセグメントで使用
される従来のアルゴリズム、すなわちアクセス・データ
のキャッシングが常に予測可能ではないアルゴリズムと
は非常に異なる。
【0054】C.媒体ストリーマ・データ・フロー・ア
ーキテクチャ 上述のように、媒体ストリーマ10はビデオ・ストリー
ムを、TVセットやLAN、ATMなどのネットワーク
を介して接続されるセット・トップ・ボックスなどの、
様々な出力に配布する。記憶容量及び同時ストリーム数
に対する要求に適合するために、複数の記憶ノード及び
通信ノードを含む分散アーキテクチャが好適である。デ
ータは記憶ノード16、17上に記憶され、通信ノード
により配布される。通信ノード14は、適切な記憶ノー
ド16、17からデータを獲得する。制御ノード18は
単一のシステム・イメージを外界に提供する。ノードは
相互接続低待ち時間スイッチ12により接続される。
【0055】データ・レート及び配布データは、各スト
リームに対応して予測可能である。本発明はこの予測可
能性を利用することにより、資源を完全に利用し、各ス
トリームのデータが必要な時に、あらゆるステージにお
いて使用可能なことを保証するデータ・フロー・アーキ
テクチャを構成する。
【0056】記憶ノード16、17と通信ノード14と
の間のデータ・フローは、多数の異なる方法によりセッ
ト・アップされる。
【0057】通信ノード14は一般に、複数のストリー
ムを配布する役割をする。通信ノードは、これらのスト
リームの各々に対応する保留のデータ要求を有するかも
しれず、要求データが異なる記憶ノード16、17から
到来するかもしれない。データを同一の通信ノードに送
信するために、異なる記憶ノードが同時に試行すると、
1つの記憶ノードだけがデータを送ることができ、他の
記憶ノードは妨害される。この妨害はこれらの記憶ノー
ドにデータの送信を再試行させ、スイッチの利用度を低
下させ、記憶ノードから通信ノードにデータを送信する
ために要する時間に大きな変化をもたらす。本発明で
は、異なる記憶ノード16、17の間で、通信ノード1
4の入力ポートの競合は発生しない。
【0058】要求されるバッファリング量は、次のよう
にして決定される。通信ノード14が要求を記憶ノード
16、17に送信し、データを受信するために要する平
均時間を判断する。この時間は、要求を記憶ノードに送
信するための時間と、応答を受信するための時間、すな
わち記憶ノードが要求を処理するために要する時間とを
加算して決定される。記憶ノードは、ディスクからデー
タを読出すために要する平均時間と、要求の処理に関連
する遅延とを加算することにより、要求を処理するため
に要する平均時間を決定する。これが要求を処理する待
ち時間となる。要求バッファリング量はストリームのデ
ータ・レートにおいて、この待ち時間をカバーするため
に必要なメモリ記憶である。以降で述べられる解決策
は、媒体ストリーマ環境の特殊状態を利用することによ
り、待ち時間を低減し、それにより要求資源を低減す
る。待ち時間は、以前のステージからのデータの要求を
予想しながら、データのあらゆるステージ(例えば記憶
ノード内及び通信ノード内)において、"ジャスト・イ
ン・タイム"・スケジューリング・アルゴリズムを用い
ることにより低減される。
【0059】記憶ノード16、17による通信ノード1
4の入力ポートの競合が、次の2つの基準を用いること
により回避される。 1)記憶ノード16、17は特定の要求の受信に際して
のみ、通信ノード14にデータを送信する。 2)所与の通信ノード14が、記憶ノードから読出され
るデータに対する全ての要求を直列化し、通信ノード1
4からデータを受信する1つの要求だけが、通信ノード
14が配布するストリーム数に関係なく、任意の時点に
おいて優先される。
【0060】上述のように、待ち時間の低減は、あらゆ
るステージにおけるジャスト・イン・タイム・スケジュ
ーリングにもとづく。基本原理は、ストリームのデータ
・フローのあらゆるステージにおいて、データに対する
要求が到来するとき、そのデータが使用可能であること
である。これにより待ち時間は、要求を送信し、任意の
データ転送を実行するのに要する時間に低減される。従
って、制御ノード18が特定のストリームに対応するデ
ータの要求を記憶ノード16に送信すると、記憶ノード
16はこの要求にほとんど即時に応答することができ
る。この特徴は、上述の競合問題の解決策にとって重要
である。
【0061】媒体ストリーマ環境において、データへの
アクセスは順次的であり、ストリームのデータ・レート
は予測可能であるので、記憶ノードは、特定のストリー
ムのデータの次の要求が期待される時期を予想すること
ができる。要求に応じて供給されるデータの識別も知る
ことができる。記憶ノード16は、データが記憶されて
いる場所、及び他のストリームに対応して期待される要
求も知ることができる。この情報と、ディスクから読出
し要求を処理する予想時間から、記憶ノード16は読出
しオペレーションをスケジュールし、要求が通信ノード
14から到来する直前に、データが使用可能となる。例
えばストリーム・データ・レートが250KB/秒で、
記憶ノード16が4セグメント目毎にビデオを含む場
合、そのストリームに対応するデータに対する要求は4
秒毎に到来する。読出し要求の処理時間が500ミリ秒
であると(読出し要求が500ミリ秒以内で完了するこ
とが必要条件)、その要求は、通信ノード14から要求
が受信されると予想されるよりも、少なくとも500ミ
リ秒以前にスケジュールされる。
【0062】C1.制御ノード18機能 制御ノード18の機能は、制御フローのために、媒体ス
トリーマ10と外界との間のインタフェースを提供する
ことである。これはまた、たとえ媒体ストリーマ10自
身が分散システムとして実現されたとしても、単一のシ
ステム・イメージを外界に提供する。制御ノードの機能
は、定義アプリケーション・プログラム・インタフェー
ス(API)により実行される。APIはビデオ・デー
タの再生/記録などの実時間機能の他に、媒体ストリー
マ10においてビデオ内容を生成する機能を提供する。
制御ノード18は通信ノード14に、ビデオを再生また
は停止するための実時間要求を送る。
【0063】C2.通信ノード14 通信ノード14は、実時間ビデオ・インタフェースを専
用に処理する(同一プロセス内の)次のスレッド、すな
わち接続/切断要求を処理するスレッド、再生/停止要
求及び休止/再開要求を処理するスレッド、及びジャン
プ(前方検索または後方検索)要求を処理するスレッド
を有する。更に記憶ノード16からストリームに対応す
るデータを読出す入力スレッド、及びデータを出力ポー
トに書込む出力スレッドを有する。
【0064】通信ノード14におけるビデオ再生の間の
データ処理のデータ・フロー構造が、図7に示される。
データ・フロー構造は、記憶ノード16からデータを獲
得する入力スレッド100を含む。入力スレッド100
は記憶ノードからのデータの受信を直列化するので、任
意の時点において1つの記憶ノードだけがデータを送信
することになる。入力スレッド100は、出力スレッド
102がバッファからストリームに対応して書込む必要
があるときに、バッファが既にデータにより充填されて
いることを保証する。更にストリームの入力及び出力オ
ペレーションの両方をスケジュールするスケジュール機
能104が存在する。この機能は、入力スレッド100
及び出力スレッド102の両方により使用される。
【0065】各スレッドは要求をキューから取り出す。
出力スレッド102に対応する要求キュー106は、ス
トリームを識別する要求、及び空にすべき関連バッファ
を指し示す要求を含む。これらの要求は、ビデオ出力イ
ンタフェースに書込まれるべき時間順に整列される。出
力スレッド102がバッファを空にすると、出力スレッ
ドはバッファを空とマークし、そのストリームに対する
入力キュー108内の要求を入力スレッドに待機する
(バッファを充填する)ように、スケジューラ機能10
4を呼出す。入力スレッド100に対応するキュー10
8もまた、バッファが充填されるべき時間順に整列され
る。
【0066】入力スレッド100もまた、要求時間順に
整列される要求キュー108を処理する。そのタスクは
バッファを記憶ノード16から充填することである。そ
のキュー内の各要求に対応して、入力スレッド100は
次のアクションを実行する。すなわち入力スレッド10
0は、ストリームの次のデータ・セグメントを有する記
憶ノード16を決定する(ビデオ・ストリーム・データ
は好適には多数の記憶ノードに渡り、ストライプされ
る)。入力スレッド100は次に、ストリーム・データ
の要求を決定された記憶ノードに送信し(スイッチ12
を通じてメッセージを送信する)、データの到来を待機
する。
【0067】このプロトコルは、任意の時刻に1つの記
憶ノード16だけが特定の通信ノード14にデータを送
信することを保証し、記憶ノードが非同期にデータを通
信ノード14に送信する場合に起こりうる競合を回避す
る。要求データが記憶ノード16から受信されると、入
力スレッド100はバッファをフルとマークし、要求を
(ストリームのデータ・レートにもとづき)出力スレッ
ド102にバッファリングし、バッファを空にするため
にスケジューラ104を呼出す。
【0068】C3.記憶ノード16 ストリームの再生をサポートする記憶ノード16のデー
タ・フロー構造が、図8に示される。記憶ノード16
は、ビデオ・データを含むバッファのプールを有する。
これは各論理ディスク・ドライブに対応する入力スレッ
ド110と、スイッチ・マトリックス12を介して通信
ノード14にデータを書込む出力スレッド112とを有
する。記憶ノード16は更に、入力スレッド110及び
出力スレッド112により使用され、オペレーションを
スケジュールするスケジューラ機能114、並びにデー
タを要求する通信ノード14からの要求を処理するメッ
セージ・スレッド116を有する。
【0069】データ要求メッセージが通信ノード14か
ら受信されると、メッセージ・スレッド116が既にバ
ッファされた要求データを順当に見い出し、要求(キュ
ー118)を出力スレッド112に待機する。要求は時
間順に待機される。出力スレッド112はバッファを空
にし、それをフリー・バッファのリストに追加する。各
入力スレッド110は固有の要求キューを有する。関連
ディスク・ドライブ上にビデオ・データを有する各アク
ティブ・ストリームに対応して、キュー120は要求時
間順(データ・レート、ストライプ・レベルなどにもと
づく)に次のバッファを充填するように整列される。ス
レッドはキュー120内の最初の要求を取り出し、それ
にフリー・バッファを対応付け、バッファをディスク・
ドライブからのデータにより充填するように入出力要求
を発行する。バッファが充填されると、それがフル・バ
ッファのリストに追加される。このリストは、ストリー
ムに対応するデータ要求が受信されるとき、メッセージ
・スレッド116によりチャックされる。データ要求メ
ッセージが通信ノード14から受信され、要求バッファ
がフルでない場合、これは誤りデッドライン(missed d
eadline)と見なされる。
【0070】C4.ジャスト・イン・タイム・スケジュ
ーリング ジャスト・イン・タイム・スケジューリング技法は、通
信ノード14及び記憶ノード16の両方で使用される。
この技法は次のパラメータを使用する。 bc=通信ノード14におけるバッファ・サイズ bs=記憶ノード16におけるバッファ・サイズ r=ビデオ・ストリーム・データ・レート n=ビデオ・ストリームに対応するデータを含むビデオ
のストライプ数 sr=ストライプ・データ・レート sr=r/n
【0071】使用アルゴリズムは次のようである。 (1)sfc=ストリームに対応する通信ノードにおけ
る要求の頻度で、r/bcである。 (2)dfc=記憶ノードにおけるディスク読出し要求
の頻度で、sr/bsである。 ビデオ・データの"ストライピング"については、後述の
セクションHで詳細に述べられる。
【0072】要求は上記式により決定される頻度でスケ
ジュールされ、データが必要とされるより以前に完成す
る。これはビデオ・ストリームの再生の開始時に、デー
タ・パイプにデータを予め"注入する"(prime)ことに
より達成される。
【0073】sfc及びdfcの計算は、接続時にスト
リームを再生する通信ノード14と、ビデオ・データを
含む記憶ノード16の両方において、実施される。頻度
(またはその逆数すなわち時間間隔)は、記憶ノード1
6(図8参照)内において、ディスクからの入力をスケ
ジュールするために、また通信ノード14(図7参照)
内において、ポートへの出力(及び記憶ノードからの入
力)をスケジュールするために使用される。
【0074】ジャスト・イン・タイム・スケジューリン
グ例:4つの記憶ノード上にストライプされるビデオか
ら、2.0Mビット/秒(250000バイト/秒)で
ストリームを再生すると仮定する。また、通信ノードに
おけるバッファ・サイズが250000バイトで、ディ
スク・ノードにおけるバァファ・サイズが250000
バイトとする。更にデータが250000バイト/秒で
セグメントにストライプされるものとする。
【0075】ジャスト・イン・タイム・アルゴリズムの
様々なパラメータ値を次に示す。 bc=250000バイト(通信ノード14におけるバ
ッファ・サイズ) bs=250000バイト(記憶ノードにおけるバッフ
ァ・サイズ) r=250000バイト/秒(ストリーム・データ・レ
ート) n=4(ストリームに対応するビデオのストライプ数) sr=r/n=6250バイト/秒または250000
バイト/4秒、すなわち毎4秒ごとに250000バイ
ト sfc=r/bc=1/秒(通信ノード14における要
求の頻度) dfc=sr/bs=1/秒(記憶ノード16における
要求の頻度)
【0076】ストリームを再生する役割をする通信ノー
ド14は、入力及び出力要求を1/秒の頻度または1.
0秒の間隔でスケジュールする。通信ノード14がスト
リームに専用の2つのバッファを有すると仮定すると、
通信ノード14はビデオ・ストリームの出力を開始する
以前に、両方のバッファが充填されることを保証する。
【0077】接続時に、通信ノード14は、ビデオ・デ
ータのストライプを含む4つの全ての記憶ノード16に
メッセージを送信する。最初の2つの記憶ノードは、ス
トライプからの最初のセグメントに対する要求を予想
し、バッファを充填するようにディスク要求をスケジュ
ールする。通信ノード14は、それぞれが250000
バイトのサイズを有する2つのバッファに、最初の2つ
のセグメントを読出すように、入力要求(図7参照)を
スケジュールする。再生要求が到来すると、通信ノード
14は最初に2つのバッファがフルであることを保証
し、次に全ての記憶ノード16に再生が開始することを
通知し、ストリームの再生を開始する。第1のバッファ
が出力されると(これは2Mビット/秒または2500
00バイト/秒で1秒を要する)、通信ノード14は記
憶ノード16からデータを要求する。通信ノード14は
次に各記憶ノードから順番に1秒間隔でデータを要求す
る。すなわち、通信ノードは特定の記憶ノードからは4
秒間隔でデータを要求する。通信ノードは常に2500
00バイトのデータを1度に要求する。通信ノードが記
憶ノード16からデータを要求する頻度の計算は、接続
時に通信ノード14により実行される。
【0078】記憶ノード16はストリーム・データに対
する要求を次のように予想する。ストライプ3を含む記
憶ノード16(後述のセクションH参照)は、再生が開
始した1秒後に、そしてそれ以降は4秒毎に、次の25
0000バイト・セグメントに対する要求を予想するこ
とができる。ストライプ4を含む記憶ノード16は、再
生が開始した2秒後に、そしてそれ以降は4秒毎に、要
求を予想することができる。ストライプ2を含む記憶ノ
ード16は、再生が開始した4秒後に、そしてそれ以降
も4秒毎に、要求を予想することができる。すなわち、
各記憶ノード16は、(上述のような)特定の開始時点
から4秒毎に250000バイトの頻度でディスクから
の入力をスケジュールする。このスケジューリングは記
憶ノード16において、再生コマンドの受信後、及びス
トリームに対応するバッファが出力された後に達成され
る。要求頻度の計算は、接続要求の受信時に実行され
る。
【0079】通信ノード14及び記憶ノード16におい
て、異なるバッファ・サイズを使用することも可能であ
る。例えば通信ノード14におけるバッファ・サイズが
50000バイトで、記憶ノード16におけるバッファ
・サイズが250000バイトであってもよい。この場
合、通信ノード14における要求の頻度は5/秒(=2
50000/50000)すなわち0.2秒間隔とな
り、記憶ノード16における頻度は1/秒のままであ
る。通信ノード14は、最初のストライプを含む記憶ノ
ードから、最初の2つのバッファ(100000バイ
ト)を読出す(ここでセグメント・サイズは25000
0バイトであり、最初のセグメントを含む記憶ノード1
6は、接続時にディスクからの入力をスケジュールす
る)。再生が開始するとき、通信ノード14は記憶ノー
ド16にそのことを通知し、第1のバッファを出力す
る。バッファが空になると、通信ノード14は次の入力
をスケジュールする。バッファは0.2秒毎に空にな
り、通信ノード14はこの頻度で記憶ノード16から入
力を要求し、また同じ頻度で出力をスケジュールする。
【0080】この例では、記憶ノード16は0.2秒間
隔で到来する5つの要求を予想できる。(但し、100
000バイトが既に読出されている最初のセグメントの
場合を除く。従って、初期には再生の開始後に、3つの
要求が0.2秒毎に到来する。すなわち、5つの要求
(各々が50000バイトに対応)の次のシーケンス
は、前のシーケンスの最後の要求の4秒後に到来す
る。)記憶ノードのバッファ・サイズは250000バ
イトなので、記憶ノード16はディスクからの入力を、
4秒毎にスケジュールする(先に述べた例と同様)。
【0081】C5.再生アクションの詳細 次のステップでは、ストリームの再生アクションの制御
及びデータ・フローを追跡する。再生のためにビデオを
セットアップするステップが、図9に時間順に示され
る。 1.ユーザが、以前にロードされた特定のビデオを有す
るポートをセットアップするコマンドを呼出す。要求が
制御ノード18に送信される。 2.制御ノード18内のスレッドが、要求及びVS-CONNE
CTコマンドを受信する。 3.制御ノードのスレッドがビデオのカタログ・エント
リをオープンし、ストライプ・ファイル情報を有するビ
デオのメモリ記述子をセットアップする。 4.制御ノード18が要求に対応して、通信ノード14
及びそのノード上の出力ポートを割当てる。 5.次に制御ノード18が、割当てられた通信ノード1
4にメッセージを送信する。 6.通信ノード14内のスレッドが、制御ノード18か
らメッセージを受信する。 7.通信ノードのスレッドが、ストライプ・ファイルを
含む記憶ノードにオープン要求を送信する。 8、9.オープン要求を送信される各記憶ノード16の
スレッドが、要求を受信し、要求ストライプ・ファイル
をオープンし、任意の必要な資源を割当てると同時に、
ディスクからの入力をスケジュールする(ストライプ・
ファイルが最初の数セグメントを含む場合)。 10.記憶ノードのスレッドが、ストライプ・ファイル
のハンドル(識別子)を有する応答を通信ノード14に
返送する。 11.通信ノード14のスレッドが全ての関連記憶ノー
ドから応答を待機し、成功裡に応答を受信すると、スト
リームのために資源を割当てる。これには出力ポートの
セットアップが含まれる。 12.通信ノード14が次に、ビデオ・データ・パイプ
ラインを注入するための入力をスケジュールする。 13.通信ノード14が次に応答を制御ノード18に返
送する。 14.制御ノードのスレッドが、通信ノード14から成
功裡に応答を受信すると、このストリーム・インスタン
スに関連する続く要求に対応して使用されるハンドルを
ユーザに返却する。
【0082】次に、ビデオ・ストリームが成功裡にセッ
トアップされた後に、再生要求の受信に際し実行される
ステップを、時間順に示す。これらのステップは図10
に示される。 1.ユーザが再生コマンドを呼出す。 2.制御ノード18のスレッドが要求を受信する。 3.制御ノード18のスレッドが、要求がセットアップ
されたストリームに対応することを確認し、再生要求を
割当てられた通信ノード14に送信する。 4.通信ノード14のスレッドが再生要求を受信する。 5.通信ノード14が再生要求を全ての関連記憶ノード
16に送信し、これらのノードが、このストリームの続
く要求の予想に対応して、独自のオペレーションをスケ
ジュールできるようにする。ここで"関連"記憶ノードと
は、対象のビデオ・プレゼンテーションの少なくとも1
つのストライプを記憶する記憶ノードをさす。 6.各関連記憶ノード16のスレッドが要求を受信し、
このストリームの将来の要求をサービスするためのスケ
ジュールをセットアップする。各関連記憶ノード16は
応答を通信ノード14に返送する。 7.通信ノードのスレッドは、パイプラインが注入され
る(ビデオ・データによりプリロードされる)ことを保
証し、ストリームの出力を可能にする。 8.通信ノード14が次に応答を制御ノード18に返送
する。 9.制御ノード18が、ストリームが再生されているこ
とを示す応答をユーザに返送する。
【0083】入力及び出力スレッドは、停止/休止コマ
ンドが受信されるか、ビデオが終了するまで、ビデオ・
プレゼンテーションを指定ポートに配布し続ける。
【0084】D.媒体ストリーマとのユーザ・インタフ
ェース及びアプリケーション・インタフェース 媒体ストリーマ10は受動サーバであり、外部制御シス
テムから制御コマンドを受信すると、ビデオ・サーバ・
オペレーションを実行する。図11は媒体ストリーマ1
0アプリケーションのシステム構成を示し、システム内
に存在するインタフェースを示す。
【0085】媒体ストリーマ10は、そのオペレーショ
ンを制御するために、ユーザ及びアプリケーション・プ
ログラムに対応した2レベルのインタフェース、すなわ
ちユーザ・インタフェース(図11の(A))と、アプ
リケーション・プログラム・インタフェース(図11の
(B))を提供する。
【0086】両レベルのインタフェースはクライアント
制御システム上に提供され、これらは遠隔プロシージャ
呼出し(RPC)機構を通じて、媒体ストリーマ10と
通信する。媒体ストリーマ10上の代わりに、クライア
ント制御システム上にインタフェースを提供することに
より、媒体ストリーマ10からのアプリケーション・ソ
フトウェアの分離が達成される。このことは、クライア
ント制御システム上のアプリケーション・ソフトウェア
の変更または置換を必要としないため、媒体ストリーマ
のアップグレードまたは置換を容易にする。
【0087】D1.ユーザ通信 媒体ストリーマ10は、次の2タイプのユーザ・インタ
フェースを提供する。 ・コマンド・ライン・インタフェース ・グラフィカル・ユーザ・インタフェース
【0088】D1.1.コマンド・ライン・インタフェ
ース コマンド・ライン・インタフェースは、ユーザ・コンソ
ールまたはインタフェース(図1の65、66)上にプ
ロンプトを表示する。コマンド・プロンプトの後、ユー
ザはコマンドを入力する。実際にはコマンド・キーワー
ドに続いてパラメータを入力する。コマンドが実行され
ると、インタフェースは再度プロンプトを表示し、次の
コマンド入力を待機する。媒体ストリーマ・コマンド・
ライン・インタフェースは、特に次に示す2タイプのオ
ペレーションに好適である。
【0089】バッチ制御:バッチ制御は、一連のビデオ
制御コマンドを含むコマンド・スクリプトの実行の開始
に関連する。例えば放送業界では、拡張期間における事
前記録済みのスケジュール番組を含むコマンド・スクリ
プトが、予め用意される。スケジュールされた開始時間
に、単一のバッチ・コマンドによりコマンド・スクリプ
トが実行され、オペレータの介入無しに放送が開始され
る。
【0090】自動制御:自動制御は、プログラムにより
生成されたコマンド・リストの実行に関連し、媒体スト
リーマ10上に記憶されたマテリアルを更新/再生す
る。例えばニュース機関が、毎日、新たなマテリアルを
媒体ストリーマ10にロードする。新たなマテリアルを
管理するアプリケーション制御プログラムが、媒体スト
リーマ10を新たなマテリアルにより更新する媒体スト
リーマ・コマンド(例えば、ロード(Load)、消去(De
lete)、アンロード(Unload))を生成する。生成され
たコマンドが、その実行のために、コマンド・ライン・
インタフェースに送られる。
【0091】D1.2.グラフィカル・ユーザ・インタ
フェース 図12は、媒体ストリーマ・グラフィカル・ユーザ・イ
ンタフェースの例を示す。このインタフェースは、再生
(Play)、休止(Pause)、巻戻し(Rewind)、停止(S
top)などの制御ボタンを有するビデオ・カセット・レ
コーダの制御パネルに類似する。更にこれは、オペレー
ションがユーザによる選択に関連するときに(例えばロ
ード(Load)は、ユーザにビデオ・プレゼンテーション
のロードを選択するように要求する)、選択パネルを提
供する。グラフィカル・ユーザ・インタフェースは、直
接ユーザ対話において特に有用である。
【0092】"バッチ"(Batch)・ボタン130及び"イ
ンポート/エクスポート"・ボタン132が、グラフィ
カル・ユーザ・インタフェースに含まれる。これらの機
能については後述される。
【0093】D2.ユーザ機能 媒体ストリーマ10は、次の3つの汎用タイプのユーザ
機能を提供する。 ・インポート/エクスポート ・VCR式再生制御 ・拡張ユーザ制御
【0094】D2.1.インポート/エクスポート インポート/エクスポート機能は、ビデオ・データを媒
体ストリーマ10に、または媒体ストリーマから転送す
るために使用される。ビデオがクライアント制御システ
ムから媒体ストリーマ10に転送されるとき(インポー
ト)、ビデオ・データのソースが、クライアント制御シ
ステムのファイルまたはデバイスとして指定される。ビ
デオ・データのターゲットは、媒体ストリーマ10内の
特定の名前で指定される。ビデオが媒体ストリーマ10
からクライアント制御システムに転送されるときには
(エクスポート)、ビデオ・データのソースは、媒体ス
トリーマ10内のその名前により指定され、ビデオ・デ
ータのターゲットは、クライアント制御システムのファ
イルまたはデバイスとして指定される。
【0095】ユーザ機能のインポート/エクスポート・
カテゴリでは、媒体ストリーマ10はビデオを除去す
る"消去"(delete)機能、及び記憶ビデオに関する情報
を獲得する"属性獲得"(get attributes)機構を提供す
る。
【0096】グラフィカル・ユーザ・インタフェースを
介して、インポート/エクスポート機能を呼出すため
に、ユーザは"インポート/エクスポート"・ソフト・ボ
タン132(図12)をクリックする。すると、個々の
機能を呼出すために、"インポート"、"エクスポー
ト"、"消去"及び"属性獲得"ボタンを含む新たなパネル
(図示せず)が現れる。
【0097】D2.2.VCR式再生制御 媒体ストリーマ10は、一連のVCR式再生制御を提供
する。図12の媒体ストリーマ・グラフィカル・ユーザ
・インタフェースは、次の機能、すなわちロード、取出
し、再生、スロー、休止、停止、巻戻し、早送り、及び
無声(Mute)が使用可能であることを示す。これらの機
能は、グラフィカル・ユーザ・インタフェース上の対応
するソフト・ボタンをクリックすることにより活動化さ
れる。媒体ストリーマ・コマンド・ライン・インタフェ
ースは、次に示す類似の機能セットを提供する。 セットアップ:特定の出力ポートに対応して、ビデオを
セットアップする。VCRへのビデオ・カセットのロー
ディングに類似。 再生:セットアップされたビデオの再生を開始するか、
休止されていたビデオの再生を再開する。 休止:ビデオの再生を休止する。 切離し(Detach):VCRからのビデオ・カセットの取
出しに類似。 状態(Status):再生中のビデオ、再生経過時間などの
ポートの状態を表示する。
【0098】D2.3.拡張ユーザ制御 放送業界などの特定のアプリケーション要求をサポート
するために、本発明は次の幾つかの拡張ユーザ制御を提
供する。 再生リスト(Play list):複数のビデオ及びポート上
に再生されるそれらのシーケンスをセットアップする。 再生長(Play length):ビデオの再生時間を制限す
る。 バッチ・オペレーション:コマンド・ファイルに記憶さ
れるオペレーション・リストを実行する。
【0099】再生リスト及び再生長の制御は、グラフィ
カル・ユーザ・インタフェース上の"ロード"・ボタン1
34により達成される。各"セットアップ"・コマンド
は、特定のポートに対応する再生リストに追加されるビ
デオを指定する。これはまた、ビデオが再生される時間
制限を指定する。図13は、グラフィカル・ユーザ・イ
ンタフェース上の"ロード"・ソフト・ボタン134のク
リックに応答して、再生リストに追加されるビデオを選
択し、ビデオ再生の時間制限を指定するために現れるパ
ネルを示す。ユーザが"ファイル"・ボックス136内の
ファイル名をクリックすると、その名前が"ファイル名"
ボックス138に入力される。ユーザが"追加"ボタン1
40をクリックすると、"ファイル名"ボックス138内
のファイル名が、その時間制限と一緒に"再生リスト"・
ボックス142に追加され、現在の再生リストを(再生
リスト上の各ビデオの時間制限と一緒に)表示する。
【0100】バッチ・オペレーションは、グラフィカル
・ユーザ・インタフェース上の"バッチ"・ソフト・ボタ
ン130(図12参照)を使用することにより実行され
る。
【0101】"バッチ"・ボタン130が活動化される
と、ユーザがコマンド・ファイル名(図14参照)を選
択または入力するためのバッチ選択パネルが表示され
る。バッチ選択パネル上の"実行"ボタン144を押下す
ることにより、選択コマンド・ファイル内のコマンドの
実行が開始する。図14は、グラフィカル・ユーザ・イ
ンタフェース上の"バッチ"及び"実行"オペレーションの
例である。例えば、ユーザは最初に、c:/batchcmdディ
レクトリ内のファイル"batch2"にコマンド・スクリプト
を生成する。ユーザは次に、図12に示されるグラフィ
カル・ユーザ・インタフェース上の"バッチ"・ボタン1
30をクリックし、バッチ選択パネルを呼出す。次にユ
ーザは、バッチ選択パネルの"ディレクトリ"・ボックス
146内の"c:/batchcmd"をクリックする。すると、"フ
ァイル"・ボックス148内にファイルのリストが表示
される。"ファイル"・ボックス148内の"batch2"の行
をクリックすると、これが"ファイル名"ボックス150
に入力される。最後に、ユーザは"実行"ボタン144を
クリックし、"batch2"ファイル内に記憶されるコマンド
を順次実行する。
【0102】D3.アプリケーション・プログラム・イ
ンタフェース 媒体ストリーマ10は、上述のアプリケーション・プロ
グラム・インタフェース(API)を提供する。それに
より、アプリケーション制御プログラムは媒体ストリー
マ10と対話し、そのオペレーションを制御することが
できる(図11参照)。
【0103】APIは遠隔プロシージャ呼出し(RP
C)ベースのプロシージャを含む。アプリケーション制
御プログラムは、プロシージャ呼出しにより、API機
能を呼出す。プロシージャ呼出しのパラメータが、実行
される機能を指定する。アプリケーション制御プログラ
ムは、媒体ストリーマ10の論理及び物理ロケーション
を考慮することなく、API機能を呼出す。ビデオ・サ
ービスを提供する媒体ストリーマ10の識別は、クライ
アント制御システムのスタートアップ時、または任意選
択的に、アプリケーション制御プログラムの開始時のい
ずれかに確立される。媒体ストリーマ10の識別が確立
されると、プロシージャ呼出しがサービスに対応する適
正な媒体ストリーマ10に仕向けられる。
【0104】後述される以外では、API機能は同期式
に処理される。すなわち、機能呼出しが呼出し人に返却
されると、その機能は実行され、媒体ストリーマ10に
おいて追加の処理は必要とされない。API機能を同期
オペレーションとして構成することにより、コンテキス
ト・スイッチングのための追加の処理オーバヘッド、非
同期信号送信、及びフィードバックが回避される。この
性能は厳しい実時間要求のために、ビデオ・サーバ・ア
プリケーションにおいては重要である。
【0105】API機能の処理は、要求が受信される順
に実行される。このことはユーザ・オペレーションが正
しい順序で処理されることを保証する。例えば、ビデオ
はその再生以前に接続(セットアップ)されなければな
らない。別の例では、"再生"要求に続く"休止"要求によ
る順序の切替えが、完全に異なる結果をユーザに与え
る。
【0106】VS-PLAY機能はビデオの再生を開始し、
(ビデオ再生の完了まで待機することなく、)制御を呼
出し人に即時返却する。このアーキテクチャの論理的根
拠は、ビデオ再生の時間は通常、長く(数分から数時
間)、予測できないために(休止または停止コマンドが
発生しうる)、VS-PLAY機能を非同期にすることによ
り、予測不能なまま長時間割当てられうる資源を解放す
ることである。
【0107】ビデオ再生の終了時に、媒体ストリーマ1
0は、アプリケーション制御プログラムにより指定され
るシステム/ポート・アドレスに非同期呼出しを生成
し、アプリケーション制御プログラムにビデオ完了事象
を通知する。システム/ポート・アドレスは、アプリケ
ーション制御プログラムがビデオを接続するために、AP
I VS-CONNECT機能を呼出す際に指定する。ここでVS-PLA
Yに対応するコールバック・システム/ポート・アドレ
スが、個々のビデオ・レベルにおいて指定されることを
述べておく。このことは、アプリケーション制御プログ
ラムが、自由にビデオ完了メッセージを任意の制御ポイ
ントに転送できることを意味する。例えば、あるアプリ
ケーションが、多くのまたは全てのクライアント制御シ
ステムに対するビデオ完了メッセージを処理するため
に、1つの中央システム/ポートの使用を望むかもしれ
ない。一方、別のアプリケーションにおいて、複数の異
なるシステム/ポート・アドレスが、あるクライアント
制御システムに対するビデオ完了メッセージを処理する
ために使用されうる。
【0108】APIアーキテクチャにより、媒体ストリ
ーマ10は、異種のハードウェア及びソフトウェア・プ
ラットフォームを有する複数の並行クライアント制御シ
ステムをサポートできるようになり、オペレーション要
求の正しい順序を保証する上で、同期及び非同期タイプ
の両方のオペレーションを効率的に処理可能となる。例
えば媒体ストリーマ10は、PS/2システム上で実行
されるIBM OS/2オペレーティング・システムを
使用し、一方、クライアント制御システムは、RS/6
000システム上で実行されるIBM AIXオペレー
ティング・システムを使用することができる(IBM、
OS/2、PS/2、AIX、及びRS/6000は全
てIBM社の商標である)。
【0109】D4.クライアント/媒体ストリーマ通信 クライアント制御システムと媒体ストリーマ10との間
の通信は、例えば既知のタイプの遠隔プロシージャ呼出
し(RPC)機構を通じて達成される。図15は、クラ
イアント制御システム11と媒体ストリーマ10との間
の通信のためのRPC構造を示す。媒体ストリーマ機能
の呼出しにおいて、クライアント制御システム11はR
PCクライアントとして機能し、媒体ストリーマ10は
RPCサーバとして機能する。これは図15の(A)に
示される。しかしながら、非同期機能、すなわちVS-PLA
Yでは、その完了により媒体ストリーマ10がクライア
ント制御システム11へ呼出しを生成する。この場合、
クライアント制御システム11はRPCサーバとして機
能し、媒体ストリーマ10はRPCクライアントとして
機能する。これは図15の(B)に示される。
【0110】D4.1.クライアント制御システム11 クライアント制御システム11では、ユーザ・コマンド
・ライン・インタフェースが3つの内部並列プロセス
(スレッド)を含む。第1のプロセスはユーザ・コマン
ド・ライン入力を解析し、API機能を呼出すことによ
り、要求オペレーションを実行する。その結果、RPC
呼出しが媒体ストリーマ10に発行される(図15の
(A))。このプロセスはまた、様々な出力ポートに対
応してセットアップされ再生されるビデオの状態を追跡
する。第2のプロセスは、周期的に、各ビデオの経過再
生時間を、その指定時間制限に対してチェックする。ビ
デオがその時間制限に達すると、ビデオは停止されて切
断され、同一出力ポートに対応する待機キュー内の次の
ビデオが、(もし存在する場合には)開始される。クラ
イアント制御システム11における第3のプロセスは、
RPCサーバとして機能し、媒体ストリーマ10からVS
-PLAY非同期終了通知を受信する(図15の(B))。
【0111】D4.2.媒体ストリーマ10 媒体ストリーマ10のスタートアップの間、クライアン
ト制御システム11と媒体ストリーマ10との間のRP
Cをサポートするために、2つの並列プロセス(スレッ
ド)が呼出される。第1のプロセスは、クライアント制
御システム11から到来するAPI機能呼出しに対し、
RPCサーバとして機能する(図15の(A))。第1
のプロセスはRPC呼出しを受信し、要求機能(VS-CON
NECT、VS-PLAY、VS-DISCONNECTなど)を実行するため
に、適切なプロシージャをディスパッチする。第2のプ
ロセスは、適切なクライアント制御システム・アドレス
を呼出すRPCクライアントとして機能し、アプリケー
ション制御プログラムに非同期終了事象を通知する。こ
のプロセスは内部パイプ上で待機して、自身をブロック
する。このパイプは、ビデオの再生を処理する他のプロ
セスにより書込まれる。後者すなわち他のプロセスがビ
デオの終りまたは異常終了状態に達すると、これはパイ
プにメッセージを書込む。ブロックされたプロセスはメ
ッセージを読出し、適切なクライアント制御システム1
1のポート・アドレスにRPC呼出しを生成し(図15
の(B))、それによりクライアント制御システムはそ
の状態を更新し、適宜アクションを起こすことができ
る。
【0112】E.ビデオ配布のための媒体ストリーマ・
メモリ構成及び最適化 本発明の1態様は、キャッシュ管理及び関連入出力オペ
レーションをビデオ配布環境に個別に適合化する統合機
構を提供する。次に、本発明のこの態様について詳細に
説明する。
【0113】E1.従来のキャッシュ管理 従来のキャッシュ管理機構は、キャッシュ制御装置及び
オペレーティング・システムのファイル・サブシステム
内に組込まれる。これらは汎用使用に対応して設計され
ており、ビデオ配布のニーズに適合するように特殊化さ
れていない。
【0114】図16は、ビデオ配布に対応して、従来の
キャッシュ管理機構が構成される1つの方法を示す。こ
の技法は、2つのディスク・ファイル160、162の
間でのビデオの分離(なぜならビデオが1ファイルにと
って大き過ぎるので)と、ファイル・システム166、
媒体サーバ168及びビデオ・ドライバ170を含むプ
ロセッサとを使用する。更に図には、2つのビデオ・ス
トリームに対応する2つのビデオ・アダプタ・ポート1
72、174が示される。また、ディスク・ファイル1
60のセグメントを主記憶に読出し、順次データを第1
のビデオ・ポート172に書込むデータ・フロー、並び
に同一のセグメントを読出し、それを第2のビデオ・ポ
ート174に書込むデータ・フローが示される。図16
は、本発明の媒体ストリーマ10により克服される従来
技術の問題を説明するために使用される。
【0115】図16のステップA1乃至A12の説明: A1.セグメントSKをビデオ・ドライバ170内のバ
ッファに読出すために、媒体サーバ168がファイル・
システム166を呼出す。 A2.ファイル・システム166がSKの1部をファイ
ル・システム166内のキャッシュ・バッファに読出
す。 A3.ファイル・システム166がキャッシュ・バッフ
ァを媒体サーバ168内のバッファにコピーする。 ステップA2及びA3が複数回繰返される。 A4.SKをビデオ・ポート1(172)に書込むため
に、媒体サーバ168がビデオ・ドライバ170を呼出
す。 A5.媒体サーバ168がSKの1部を、ビデオ・ドラ
イバ170内のバッファにコピーする。 A6.ビデオ・ドライバ170がバッファをビデオ・ポ
ート1(172)に書込む。 ステップA5及びA6が複数回繰返される。
【0116】ステップA7乃至A12は、ポート1がポ
ート2に変更される以外は、同様に機能する。ポート2
に対応して要求されるとき、SKの1部がファイル・シ
ステム166のキャッシュ内に存在すれば、ステップA
8がスキップされうる。
【0117】上述の説明から理解されるように、ビデオ
配布は複数のデータ・ストリームによる大量のデータの
転送を含む。全体的使用パターンは、キャッシングを最
適化するために使用される従来の2つのパターン、すな
わちランダム及び順次のいずれにも適合しない。ランダ
ム・オプションが選択されると、大部分のキャッシュ・
バッファが、最近読出されたビデオ・セグメントからの
データを含みうるが、消滅以前に読出される見込みのあ
るビデオ・ストリームを有さないであろう。順次オプシ
ョンが選択されると、大部分の最近使用されたキャッシ
ュ・バッファが最初に再使用されるので、ファイル・シ
ステム・キャッシュ内で、必要セグメント部分を見い出
す機会は稀である。上述のように、ビデオ配布の重要な
要素は、観賞者またはユーザが不快に感じるような中断
無しに、データ・ストリームを等時的に配布することで
ある。従来のキャッシング機構は、図示のように、ユー
ザへのビデオ・データ・ストリームの等時的配布を保証
することができない。
【0118】図16に示される別の問題点を次に示す。 a.ディスク及びビデオ・ポート入出力が、一般のファ
イル・システム要求を満足する比較的小さなセグメント
において実行される。このことは、ビデオ・セグメント
・サイズのセグメントにより要求されるよりも、より大
きな処理時間、ディスク・シーク・オーバヘッド、及び
バス・オーバヘッドを要求する。 b.ファイル・システム・キャッシュ・バッファと媒体
サーバ・バッファとの間、及び媒体サーバ・バッファと
ビデオ・ドライバ・バッファとの間でデータをコピーす
るために要する処理時間は、排除されるべき好ましくな
いオーバヘッドである。 c.同一ビデオ・セグメントのコピーを同時に含むため
に、2つのビデオ・バッファ(すなわち172、17
4)を使用することは、主メモリの使用を非効率的にす
る。更に、同一データがファイル・システム・キャッシ
ュ及びビデオ・ドライバ・バッファの両方に記憶される
ときには、より大きな無駄が生じる。
【0119】E2.ビデオ用に最適化されたキャッシュ
管理 本発明のこの態様によれば、キャッシュ管理オペレーシ
ョンの3つの主要な面(facet)が存在する。それら
は、ストリームに渡るセグメント・サイズのキャッシュ
・バッファの共有化、予測キャッシング、及びキャッシ
ングの最適化のための同期化である。
【0120】E2.1.ストリームに渡るセグメント・
サイズのキャッシュ・バッファの共有化 ビデオは固定サイズのセグメントに記憶され、管理され
る。セグメントは順次番号付けされ、例えばセグメント
5は、セグメント6よりもプレゼンテーションの開始に
より近いビデオ・プレゼンテーション部分を記憶する。
セグメント・サイズは、ディスク入出力、ビデオ入出
力、バス使用度、及びプロセッサ使用度を最適化するよ
うに選択される。ビデオのセグメントは、ビデオ名だけ
に依存する固定の内容、及びセグメント番号を有する。
ディスク及びビデオ出力への全ての入出力、及び全ての
キャッシング・オペレーションは、セグメント境界上に
整列されて実行される。
【0121】本発明のこの態様は、基礎となるハードウ
ェアがピア・ツー・ピア・オペレーションをサポートす
るかどうか、すなわち、通信ノード内のキャッシュ・メ
モリを介することなく、ディスクと通信ノード14内の
ビデオ出力カードとの間の直接データ・フローをサポー
トするかどうかにより、2つの形態を取る。ピア・ツー
・ピア・オペレーションでは、キャッシングがディスク
記憶ユニット16で実行される。ピア・ツー・ピア・オ
ペレーションをサポートしないハードウェアでは、デー
タがセグメント・サイズのブロックにより、(通信ノー
ド14内の)ページ変え連続キャッシュ・メモリに直接
読出され、入出力オペレーション及びデータ転送を最小
化する(F.ビデオ用に最適化されたデジタル・メモリ
割当てを参照)。
【0122】データは同一ロケーションに留まり、ビデ
オ・セグメントがもはや必要とされなくなるまで、この
ロケーションから直接書込まれる。ビデオ・セグメント
がキャッシングされる間、ビデオ・セグメントを出力す
る必要のある全てのビデオ・ストリームが、同一のキャ
ッシュ・バッファをアクセスする。従って、ビデオ・セ
グメントの単一のコピーが多くのユーザにより使用さ
れ、同一ビデオ・セグメントの追加のコピーを読出すた
めの追加の入出力、並びにプロセッサ及びバッファ・メ
モリの使用が回避される。ピア・ツー・ピア・オペレー
ションでは、残りの入出力の半分、並びにほとんど全て
のプロセッサ及び主メモリの使用が、通信ノード14に
おいて回避される。
【0123】図17は、ピア・ツー・ピア・オペレーシ
ョンを持たないシステムの場合の本発明の実施例を示
す。ビデオ・データがディスク記憶ノード16上でスト
ライプされ、奇数番号のセグメントが第1のディスク記
憶ノード180に、また偶数番号のセグメントが第2の
ディスク記憶ノード182上に配置される(後述のセク
ションH参照)。
【0124】この構成におけるデータ・フローもまた図
17に示される。図からわかるように、セグメントSK
がディスク182から通信ノード186内のキャッシュ
・バッファ184に読出され、次にビデオ出力ポート1
及び2に書込まれる。SKビデオ・データ・セグメント
は、1入出力オペレーションによりキャッシュ・バッフ
ァ184に直接読出され、次にポート1に書込まれる。
次にSKビデオ・データ・セグメントが1入出力オペレ
ーションにより、キャッシュ・バッファ184からポー
ト2に書込まれる。
【0125】以上から理解されるように、図16の従来
のアプローチに関連して述べられた全ての問題が、図1
7に示されるシステムにより克服される。
【0126】図18は、ディスク記憶ノードとビデオ出
力カードとの間のピア・ツー・ピア・オペレーションを
サポートする構成の場合のデータ・フローを示す。1対
のディスク・ドライブ190、192が、ストライプさ
れたビデオ・プレゼンテーションを含み、これが介入す
る通信ノード14の主メモリを通過することなく、1対
のビデオ・ポート194、196に直接供給される。
【0127】この構成のデータ・フローは、(1入出力
オペレーションにより、)セグメントSKをディスク1
92からディスク・キャッシュ・バッファ198を介し
て、直接ポート1に読出す。
【0128】セグメントSKをポート2に読出す呼出し
が続く場合、(1入出力オペレーションにより)セグメ
ントSKがディスク・キャッシュ・バッファ198から
ポート2に直接読出される。
【0129】ポート1に対応してディスク・キャッシュ
・バッファ198に読出されたデータが、ポート2への
書込みに対応してまだ存在すると、メモリ、バス及びプ
ロセッサ資源の最適な使用により、ポート1及び2への
ビデオ・セグメントの転送が達成される。
【0130】ピア・ツー・ピア及び主メモリ・キャッシ
ング機構を組合わせることが可能である。例えば、通信
ノード14の1つのポートだけに再生されているビデオ
・プレゼンテーションに対応して、ピア・ツー・ピア・
オペレーションを使用し、通信ノード14の複数のポー
トに再生されているビデオ・プレゼンテーションに対応
して、通信ノード14内にキャッシングする。
【0131】ディスク記憶ノードと通信ノードとの間で
キャッシングの役割を分割する方法は、所与のハードウ
ェア構成によりサポートされるビデオ・ストリーム数を
最大化するために選択される。サポートされるストリー
ムの数が知られている場合には、キャッシング記憶の容
量及び配置が決定されうる。
【0132】E2.2.予測キャッシング 予測キャッシング機構は、ビデオ配布に好適なキャッシ
ング方法のニーズに適合する。ビデオ・プレゼンテーシ
ョンは、一般に、非常に予測可能である。通常、これら
は最初から再生を開始し、かなり長い所定時間を固定の
レートで再生し、終りに達したときにのみ停止する。媒
体ストリーマ10のキャッシング・アプローチはこの予
測性を利用し、任意の時にキャッシングされるビデオ・
セグメントのセットを最適化する。
【0133】この予測性は、キャッシュ・バッファを充
填する読出しオペレーションのスケジューリングと、キ
ャッシュ・バッファの再使用のためのアルゴリズムの駆
動の両方に対応して使用される。消滅以前の使用が予測
されない内容を有するバッファは即時再使用され、より
高い優先順位の使用のためにその空間を解放する。それ
に対して、合理的な時間内に使用される見込みのある内
容を有するバッファは、たとえそれらの最後の使用がず
っと以前であっても再使用されない。
【0134】より詳細には、ビデオv1、v
2、...、及びストリームs1、s2、...、が与
えられ、これらのビデオを再生する場合、各ストリーム
sjは1つのビデオv(sj)を再生し、v(sj)の
k番目のセグメントを書込むために予測される時間は、
次の線形関数で表される。
【数1】t(sj、k)=a(sj)+r(sj)k
【0135】ここでa(sj)は開始時間及び開始セグ
メント番号に依存し、r(sj)はセグメントを再生す
るために要する一定時間であり、t(sj、k)はスト
リームsjのk番目のセグメントを再生するためにスケ
ジュールされる時間である。
【0136】この情報はキャッシュ・バッファを充填す
る読出しオペレーションのスケジューリングと、キャッ
シュ・バッファを再使用するアルゴリズムの駆動の両方
に対応して使用される。キャッシュ管理アルゴリズムの
オペレーションの幾つかの例について、次に示す。
【0137】例A:現在再生中の任意のビデオ・ストリ
ームによる再生が予測されないビデオ・セグメントを含
むキャッシュ・バッファが、再生が予測される任意のバ
ッファより先に再使用される。この制約を満足した後、
ビデオの再生頻度及びセグメント番号が、キャッシュ済
みのビデオ・セグメントを保存するための優先順位を決
定する重みとして使用される。このグループ内の最も高
い保存優先順位が、頻繁に再生されるビデオの早期に発
生するビデオ・セグメントに割当てられる。
【0138】例B:再生が予測されるビデオ・セグメン
トを含むキャッシュ・バッファに対して、次の予測再生
時間及びビデオ・セグメントを再生するために残された
ストリーム数が、キャッシュ済みのビデオ・セグメント
を保存するための優先順位を決定する重みとして使用さ
れる。これらの重みは、実質的に、あるキャッシュ・バ
ッファの保存優先順位を、(任意のビデオ・セグメント
に対応して)再使用されるキャッシュ・バッファを有す
る入出力の予測数と、保存されるキャッシュ・バッファ
を有する入出力の予測数との差にセットする。
【0139】例えば、v5がs7上で再生されており、
v8がs2及びs3上で再生されており、s2がs3よ
りも5秒遅れており、v4がストリームs12乃至s2
0上で再生されており、各ストリームが次のストリーム
より30秒遅れるとすると、s7により既に使用された
v5データを含むバッファが最初に再使用され、次にs
2により既に使用されたv8データを含むバッファ、続
いてs12により既に使用されたv4データを含むバッ
ファが再使用され、次に最も低い保存優先順位を有する
残りのバッファが再使用される。
【0140】キャッシュ管理アルゴリズムは、接続オペ
レーション(ビデオ・セグメントが近い将来再生される
ことが予測されるが、その時期を正確に予測することが
できない)、及び停止オペレーション(以前の予測が修
正されなければならない)などの特殊な場合に対応して
変化を提供する。
【0141】E2.3.キャッシングを最適化する同期
ストリーム 所与のビデオ・セグメントを要求する全てのストリーム
をクラスタ化し、そのセグメントを含むキャッシュ・バ
ッファが記憶されなければならない時間を最小化し、そ
れにより、より多くのシステム容量を他のビデオ・スト
リームのために使用可能にすることが望ましい。ビデオ
再生において、通常、セグメントの再生レートにほとん
ど柔軟性はない。しかしながら、ビデオ配布の特定のア
プリケーションでは、再生レートに柔軟性がある(すな
わち、人間の逆反応を引き起こすこと無く、ビデオ及び
音声が僅かに加速または減速されうる)。更にビデオが
即時観賞以外の目的で配布されることもありうる。レー
トの変化が可能な場合、ストリーム間のギャップを無く
し、セグメントがバッファリングされていなければなら
ない時間を低減するために、時間的に先に出力されるス
トリームが最小許容レートで再生され、後に出力される
ストリームが最大許容レートで再生される。
【0142】同一のビデオ・プレゼンテーションを使用
するストリームのクラスタ化は、接続及び再生オペレー
ションの間にも考慮される。例えば、VS-PLAY-AT-SIGNA
Lは、複数ストリーム上で同時にビデオの再生を開始す
るときに使用される。これはクラスタ化を改良し、他の
ビデオ・ストリームのためにより多くのシステム資源を
残し、システムの有効容量を拡張する。より詳細には、
1番目のストリームを2番目のストリームに一致させる
ように、短い時間遅延させることによるクラスタ化は、
キャッシュ内のセグメントの1つのコピーを両方のスト
リームに対応して使用可能とし、処理資産を節約する。
【0143】F.ビデオ用に最適化されたデジタル・メ
モリ割当て デジタル・ビデオ・データは、非ランダムすなわち順次
的で、大容量で、内容に厳格ではなく時間に厳格である
点で、通常のデータ処理データとは異なる属性を有す
る。データ経路における全ての非本質的なオーバヘッド
を最小化するように、複数のデータ・ストリームが高ビ
ット・レートで配布されなければならない。媒体ストリ
ーマ10の効率及び容量を最大化するために、慎重なバ
ッファ管理が要求される。メモリ割当て、割当て解除及
びアクセスがこのプロセスにおける主要な要素であり、
不適切な使用はメモリ断片化(fragmentation)、効率
の低下、及びビデオ・データの遅延または破損(破壊)
を招きうる。
【0144】本発明の媒体ストリーマ10は、高レベル
・アプリケーションがデジタル・ビデオ・データに対応
して、スワップ不能なページ変え連続メモリ・セグメン
ト(ブロック)を割当て及び割当て解除することを可能
にする、メモリ割当てプロシージャを使用する。このプ
ロシージャは、ビデオ伝送アプリケーションに、単純で
高レベルのインタフェースを提供し、要求サイズのメモ
リ・ブロックを割当てるために、低レベルのオペレーテ
ィング・システム・モジュール及びコード・セグメント
を使用する。メモリ・ブロックは連続的であり、物理メ
モリ内に固定され、仮想メモリのスワッピングまたはペ
ージングにおいて生じうる遅延または破壊(corruptio
n)、並びにデータ伝送ソフトウェアにおいて必要な収
集/分散(gather/scatter)ルーチンによる複雑化を排
除する。
【0145】高レベル・インタフェースは更に、要求メ
モリ・ブロックに対応して様々なアドレッシング・モー
ド値を返却し、媒体ストリーマ環境において並行に動作
しうる様々なメモリ・モデルに適合するための、高価な
動的アドレス変換の必要を排除する。物理アドレスは、
様々なアプリケーションによりプロセス・リニア・アド
レス及びプロセス・セグメント化アドレスとして使用さ
れる以外に、固定ディスク・ドライブなどの他のデバイ
ス・ドライバによる直接アクセスに対しても使用されう
る。メモリ・ブロックをシステムに返却する割当て解除
ルーチンも提供され、断片化問題を回避する。なぜな
ら、メモリは全て単一ブロックとして返却されるからで
ある。
【0146】F1.メモリ割当てに使用されるコマンド 1.物理メモリの割当て:要求サイズのメモリ・ブロッ
クを割当て、制御ブロックがメモリ領域の様々なメモリ
・モデル・アドレス及びブロック長と共に返却される。 2.物理メモリの割当て解除:メモリ・ブロックをオペ
レーティング・システムに返却し、関連メモリ・ポイン
タを解放する。
【0147】F2.アプリケーション・プログラム・イ
ンタフェース デバイス・ドライバはシステム構成ファイル内で定義さ
れ、システムが起動するとき、自動的に初期化される。
アプリケーションが次にデバイス・ドライバを擬似デバ
イスとしてオープンし、そのラベルを獲得し、次にイン
タフェースを用いてコマンド及びパラメータを受渡す。
サポートされるコマンドは、メモリ割当て及びメモリ割
当て解除であり、パラメータにはメモリ・サイズ及び論
理メモリ・アドレスをさすポインタが含まれる。これら
のアドレスは、メモリの物理ブロックが割当てられ、物
理アドレスが論理アドレスに変換されると、デバイス・
ドライバによりセットされる。割当てが失敗すると、ヌ
ル(null)が返却される。
【0148】図19は、このプロシージャを使用するア
プリケーションの典型的なセットを示す。データに対応
してバッファ1が32ビット・アプリケーションにより
要求され、データが変更されてバッファ2に配置され
る。このバッファは次に、セグメント化アドレスを用い
る16ビット・アプリケーションにより、または固定デ
ィスク・ドライブなどの物理装置により直接処理され
る。この割当て機構により、固定の物理連続バッファを
予め割当てることにより、各アプリケーションは、その
固有の直接アドレッシングによりデータをアクセスでき
るようになり、アドレス変換遅延及び動的メモリ割当て
遅延が排除される。ビデオ・アプリケーションはこのア
プローチにより、デジタル・ビデオ・データを直接物理
ディスクからバッファに転送し、次にプロセス内でデー
タを複数回転送することなく、出力装置に直接転送する
ことにより、データ転送を最小化することもできる。
【0149】G.ビデオ・アプリケーション用に最適化
されたディスク・ドライブ ビデオ・ストリームはそれらの宛先に等時的に配布され
ることが重要である。すなわち、人間の目により動作が
不連続と感じられたり、耳により音の中断として感じら
れるような遅延が生じないことが重要である。現ディス
ク技術は、例えば予測故障分析の実行など、データ・ア
クセスにおいて相当の遅延を生じうる周期的アクション
を含んだりする。ほとんどの入出力オペレーションは1
00ms以内に完了するが、100msの周期的遅延は
一般的であり、丸々3秒の遅延が発生しうる。
【0150】媒体ストリーマ10は、高データ転送レー
トを効率的に支持できなければならない。汎用データ記
憶及び検索用に構成されたディスク・ドライブは、ビデ
オ・サーバ・アプリケーション用に最適化されないと、
メモリ、ディスク・バッファ、SCSIバス、及びディ
スク容量の使用において、非効率化を招く。
【0151】本発明の1態様によれば、ディスク・ドラ
イブがディスク・パラメータの最適化により、大量のデ
ータを円滑かつタイムリに配布するように、個別に適合
化される。パラメータは、ビデオ・サーバとして特殊化
されるディスク・ドライブの製造に組込まれたり、コマ
ンド機構を通じてセットされる変数であったりする。
【0152】周期的アクションを制御するパラメータ
は、遅延を最小化または排除するようにセットされる。
バッファ使用度に影響するパラメータは、単一の読出し
または書込みオペレーションにより、非常に大量のデー
タの転送を可能にするようにセットされる。SCSIバ
スとプロセッサ・バス間の速度マッチングに影響するパ
ラメータは、データ転送の開始が早過ぎたり遅すぎたり
しないように、調整される。ディスク媒体自身は、有効
容量及び帯域幅を最大化するセクタ・サイズによりフォ
ーマットされる。
【0153】最適化を達成するために、物理ディスク媒
体は、最大可能な物理セクタ・サイズによりフォーマッ
トされる。このフォーマット化オプションは、セクタ間
のギャップで浪費される空間を最小化し、装置容量及び
バースト・データ・レートを最大化する。好適な実施例
は744バイト・セクタである。
【0154】ディスクは関連バッファを有してもよい。
このバッファは、データ転送のためのバスの使用可能
とは非同期に、ディスク媒体からデータを読出すために
使用される。同様にバッファは、ディスク媒体へのデー
タの転送とは非同期に、バスから到来するデータを保持
するためにも使用される。バッファは多数のセグメント
に分割され、その数はパラメータにより制御される。余
りに多くのセグメントが存在すると、各セグメントは1
回の転送で要求されるデータ量を保持することができな
くなる。バッファがフルの時、装置は再接続を開始し、
転送を開始しなければならない。この時バスまたは装置
が使用可能でないと、回転遅延が続いて発生する。好適
な実施例では、この値は、任意のバッファ・セグメント
が少なくともデータ転送サイズの大きさを有するよう
に、例えば1にセットされる。
【0155】バッファ・セグメントが読出しにおいて充
填を開始すると、ディスクはホストへのデータ転送を可
能にするように、バスへの再接続を試行する。ディスク
がこの再接続を試行する時点は、バス利用の効率に影響
を及ぼす。バス及びディスクの相対速度が、充填オペレ
ーションの間における、ホストへのデータ転送を開始す
る最適な時点を決定する。同様に書込みオペレーション
の間にも、バッファはホストからのデータの到来により
充填され、充填プロセスにおける特定の時点で、ディス
クがバスへの再接続を試行するべきである。正確な速度
マッチングは、SCSIバス上における切断/再選択サ
イクルを低減し、最大スループットを向上させる。
【0156】再接続の時期を制御するパラメータは、"
読出しバッファ・フル率(read buffer full ratio)"
及び"書込みバッファ・エンプティ率(write buffer em
pty ratio)"と呼ばれる。ビデオ・データでは、これら
の比率を計算する好適なアルゴリズムは、256×(瞬
間SCSIデータ転送レート−最大ディスク・データ転
送レート)/(瞬間SCSIデータ転送レート)であ
る。現在使用される好適なバッファ・フル率及びバッフ
ァ・エンプティ率の値は、約204である。
【0157】ディスク・ドライブの設計において、温度
変化により、ヘッド位置の周期的な再較正を要求するも
のがある。これらのディスク・ドライブ・タイプの中に
は、更に、アセンブリ内の全てのヘッドに対して温度補
償を同時に実行するものと、1度に1ヘッドだけの温度
補償を実行するものとが存在する。全てのヘッドが1度
に実行される場合、ビデオ・データの読出しオペレーシ
ョンの間に、数100ミリ秒の遅延が発生しうる。読出
し時における遅延が長くなるほど、マルチメディア・プ
レゼンテーションにおけるデータ・フローを円滑化し、
不自然さを回避するために、より大きな主メモリ・バッ
ファを必要とする。好適なアプローチは、1度に1ヘッ
ドの補償を可能にする温度補償ヘッド制御機能をプログ
ラムすることである。
【0158】エラー・ログの保管及び予測故障分析の実
行は、数秒を要する。これらの遅延は、マルチメディア
・プレゼンテーションにおける遅延を円滑化し、不自然
さを回避するための非常に大きな主メモリ・バッファ無
しには、ビデオ・サーバ・アプリケーションにより個別
に適合化され得ない。遊休時間制限機能パラメータは、
エラー・ログの保管機能及び遊休時間の実行機能を禁止
するために使用される。好適な実施例では、これらの機
能を制限するように、パラメータをセットする。
【0159】H.ビデオ・データに対応したデータ・ス
トライピング ビデオ・アプリケーションでは、同一データ(例えば映
画)から複数のストリームを配布する必要が存在する。
この要求は高データ・レートでデータを読出す必要性を
意味する。すなわち、1ストリームを配布するのに必要
なデータ・レートに、同一データを同時にアクセスする
ストリームの数を乗じたレートが要求される。従来、こ
の問題は、一般にデータの複数のコピーを有することで
解決されたが、これは追加の費用を要する。本発明の媒
体ストリーマ10は、データの単一のコピーから多くの
同時ストリームをサービスする技法を使用する。この技
法は、個々のストリームのデータ・レートと、データを
同時にアクセスしうるストリーム数を考慮する。
【0160】上述のデータ・ストライピングは、データ
がストライプと呼ばれる複数のファイル要素に存在する
ように区分化される論理ファイルの概念を含む。各スト
ライプは異なるディスク・ボリューム上に存在するよう
にされ、それにより論理ファイルは複数の物理ディスク
に跨ることになる。ディスクは局所的であったり、遠隔
的であったりする。
【0161】データが論理ファイルに書込まれるとき、
データは論理長(すなわちセグメント)に分離され、こ
れらが順次ストライプに配置される。図20に示される
ように、ビデオに対応する論理ファイル(ビデオ1)
が、各々が特定のサイズ、例えば256KBのM個のセ
グメントまたはブロックに区分化される。最後のセグメ
ントは部分的にデータが充填されうる。1番目のデータ
・セグメントは第1のストライプに配置され、2番目の
セグメントは第2のストライプに配置され、以降同様に
して配置される。セグメントが各ストライプに書込まれ
ると、次のセグメントが第1のストライプに書込まれ
る。従って、ファイルがN個のストライプにストライプ
される場合、ストライプ1はセグメント1、N+1、2
N+1などを含み、ストライプ2はセグメント2、N+
2、2N+2などを含む。
【0162】データの類似のストライピングが、RAI
D構成のデータ処理で知られており、ここではストライ
ピングの目的は、ディスクが失われた場合のデータの保
全性を保証することである。こうしたRAID記憶シス
テムは、N個のディスクの1個を、データ回復の際に使
用されるパリティ・データの記憶に充当させる。媒体ス
トリーマ10のディスク記憶ノード16は、RAID式
構造に構成されるが、パリティ・データは要求されない
(ビデオ・データのコピーがテープ記憶から使用可能に
なるので)。
【0163】図21は、このデータ構成の重要な態様を
示す。すなわち、各ビデオ・プレゼンテーションが、複
数の使用可能なディスク・ドライブに渡り、データ・ブ
ロックまたはセグメントに分離され、各ビデオ・プレゼ
ンテーションが複数のコピーを要求すること無しに、複
数のドライブから同時にアクセスされる。従って、概念
的にはストライピングの1つであるが、その目的はデー
タ保全性または性能的な理由ではなく、同時並行性また
は帯域幅の理由による。このように媒体ストリーマ10
は、ビデオ・プレゼンテーションをバイト・ブロックに
よるのではなく、再生セグメントによりストライプす
る。
【0164】図21に示されるように、ビデオ・データ
・ファイル1はM個のセグメントに区分化され、4個の
ストライプに分割される。ストライプ1はビデオ・ファ
イル1のセグメント1、5、9などを含むファイルであ
り、ストライプ2はビデオ・ファイル1のセグメント
2、6、10などを含むファイルであり、ストライプ3
はビデオ・ファイル1のセグメント3、7、11などを
含むファイルであり、ストライプ4はビデオ・ファイル
1のセグメント4、8、12などを含むファイルであ
り、このようにして、ビデオ・ファイル1のM個の全て
のセグメントが、4つのストライプ・ファイルのいずれ
かに含まれる。
【0165】上述のストライピング方法により、各個々
のビデオのストライピングをカストマイズすなわち個別
化するために、次のように計算される。
【0166】最初に、ディスクから合理的な有効なデー
タ・レートを獲得するように、セグメント・サイズが選
択される。しかしながら、これは待ち時間に逆効果を及
ぼすほど大きくあってはならず、またメモリにバッファ
/キャッシュできるように、十分小さいことが必要であ
る。好適なセグメント・サイズは256KBであり、1
28KB/秒乃至512KB/秒の範囲のデータ・レー
トのビデオ・プレゼンテーションにおいて一定である。
ビデオ・データ・レートがより高い場合には、より大き
なセグメント・サイズを使用することが好ましい。セグ
メント・サイズは、同一媒体上に記憶されるビデオ・プ
レゼンテーションの範囲における入出力オペレーション
の基本単位に依存する。採用する原理は、約0.5秒乃
至2秒のビデオ・データを含むセグメント・サイズを使
用することである。
【0167】次に、ストライプ数すなわちビデオ・デー
タが配布されるディスクの数が決定される。この数は要
求される総データ・レートを支持するように、十分大き
くなければならず、予想使用レートにもとづき、各ビデ
オ・プレゼンテーションに対応して個々に計算される。
より詳しくは、各ディスクは、関連付けられる論理ボリ
ュームを有する。各ビデオ・プレゼンテーションは、必
要とされるストライプ数と同じ数の要素ファイルに分割
される。各要素ファイルは、異なる論理ボリューム上に
記憶される。例えば、ビデオ・データが1ストリーム当
たり250KB/秒で配布されなければならず、30の
同時ストリームが同一ビデオから例えば15秒間隔で開
始してサポートされる場合、少なくとも7.5MB/秒
の総データ・レートが獲得される。ディスク・ドライブ
が平均3MB/秒をサポートできる場合、少なくとも3
つのストライプがビデオ・プレゼンテーションにおいて
要求される。
【0168】ディスクからデータが読出される有効レー
トは、読出しオペレーションのサイズにより影響され
る。例えば、データがディスクから4KBブロックで読
出される場合(ディスク上のランダム位置)、有効デー
タ・レートは1MB/秒である。それに対して、データ
が256KBブロックで読出される場合、レートは3M
B/秒である。しかしながら、データが非常に大きなブ
ロックで読出される場合には、バッファとして要求され
るメモリも増加し、読出されたデータを使用する待ち時
間及び遅延も増加する。なぜなら、読出しオペレーショ
ンが、データがアクセスされる以前に完了しなければな
らないからである。データ転送のサイズを選択する上
で、トレードオフが存在する。サイズは装置の特性及び
メモリ構成にもとづき選択される。好適には、データ転
送のサイズは、選択セグメント・サイズに等しい。所与
のセグメント・サイズに対応して、装置からの有効デー
タ・レートが決定される。例えば、特定のディスク・ド
ライブでは、256セグメント・サイズが、ディスク・
ドライブの有効使用(有効データ・レート3MB/秒)
とバッファ・サイズ(256KB)間の良好なバランス
を提供する。
【0169】ストライピングが使用されない場合、支持
されるストリームの最大数は、ディスクの有効データ・
レートにより制限される。例えば、有効データ・レート
が3MB/秒で、ストリーム・データ・レートが200
KB/秒の場合、15ストリームほどがディスクから供
給されうる。例えば60ストリームの同一ビデオが必要
とされる場合、データは4つのディスク上に複製される
必要がある。しかしながら、本発明によるストライピン
グが使用される場合、4分の1の容量の4つのディスク
が使用できる。15のストリームが4つの各ストライプ
から同時に再生され、合計60の同時ストリームが、ビ
デオ・データの単一のコピーから再生される。ストリー
ムの開始時には、60ストリームに対する要求がストラ
イプ間で等間隔になるようにスキューされる。ここでス
トリームが互いに接近して開始されると、入出力に対す
るニーズが、キャッシュされるビデオ・データを使用す
ることにより低減されることを述べておく。
【0170】所与のビデオに対するストライプ数は、2
つのファクタにより影響される。その第1は、任意の時
点において、ビデオから供給されうるストリームの最大
数であり、第2のファクタは、任意の時点で、そのビデ
オと同じディスク上に記憶される全てのビデオから供給
されるべきストリームの総数である。
【0171】ビデオに対応するストライプ数sは次のよ
うに決定される。
【数2】s=最大(r*n/d、r*m/d)
【0172】ここで、rはストリームが再生される名目
データ・レート、nはこのビデオ・プレゼンテーション
からの名目データ・レートの同時ストリームの最大数、
dはディスクからの有効データ・レート(ディスクから
の有効データ・レートはセグメント・サイズに影響され
る)、mはこのビデオ・プレゼンテーションの1部を含
む全てのディスクからの名目データ・レートの同時スト
リームの最大数、sはビデオ・プレゼンテーションのス
トライプ数である。
【0173】ビデオ・プレゼンテーションのデータがス
トライプされるディスクの数は、セットとして管理さ
れ、非常に大きな物理ディスクとして考えられる。スト
ライピングにより、ビデオ・ファイルは、システムの物
理ファイル・システムが許容する最大ファイルのサイズ
限界を越えることができる。ビデオ・データは一般に、
常にセット内の全てのディスク上に、同量の記憶を要求
する訳ではない。ディスクの使用を均等化するために、
ビデオがストライプされるとき、ストライピングは最も
多くの自由空間を有するディスクから開始される。
【0174】例えば、2Mビット/秒(250000バ
イト/秒)、すなわちr=250000バイト/秒で再
生される必要のあるビデオ・プレゼンテーションの場合
について考えてみよう。ここでこのビデオから、最大3
0の同時ストリームを配布する必要があると仮定する。
すなわち、n=30である。またこの例では、mも3
0、すなわち全てのディスクから配布されるストリーム
の総数も30とする。更に、データが250000バイ
トのセグメントにストライプされ、所与のセグメント・
サイズ(250000バイト)に対応するディスクから
の有効データ・レートが、3000000バイト/秒と
する。従って、必要なストライプ数nは2.5(=25
0000*30/3000000)となり、切り上げら
れて3となる(s=上限(r*n/d))。
【0175】このデータを含む全てのディスクからのス
トリームの最大数が、例えば45の場合、250000
*45/3000000すなわち3.75ストライプが
必要となり、実際には切り上げられて4ストライプとな
る。
【0176】ビデオを3つのストライプに分割すること
が、ビデオの単一のコピーから30のストリームを配布
する要求に十分適合するとしても、そのビデオを含むデ
ィスクが他の内容を含み、そのビデオからサポートされ
るストリームの総数が45であれば、4つのディスク・
ドライブが必要となる(ストライピング・レベル4)。
【0177】媒体ストリーマ10においてこのアルゴリ
ズムが使用される様子を次に述べる。記憶装置(複数の
ディスク・ドライブ)が、ディスクのグループに分けら
れる。各グループは特定の容量、及び所与の数の同時ス
トリームを(所定のセグメント・サイズにもとづく1デ
ィスク当たりの有効データ・レートで)配布する能力を
有する。各グループのセグメント・サイズは一定であ
る。異なるグループは異なるセグメント・サイズを選択
しうる(従って、異なる有効データ・レートを有しう
る)。ビデオ・プレゼンテーションがストライプされる
とき、グループが次に述べる基準により、最初に選択さ
れる。
【0178】セグメント・サイズはビデオのデータ・レ
ートと整合する。すなわち、ストリーム・データ・レー
トが250000バイト/秒の場合、セグメント・サイ
ズは125KB乃至500KBの範囲である。次の基準
は、グループ内のディスクの数が同時ストリームの最大
数をサポートするのに十分であるように保証することで
ある。すなわち、"r"がストリーム・データ・レー
ト、"n"が同時ストリームの最大数、"d"がグループ内
のディスクの有効データ・レートとすると、必要ディス
ク数はr*n/dである。最後に、ディスク・グループ
内の全てのビデオからサポートされる必要のある同時ス
トリームの合計が、その容量を越えないことである。す
なわち、"m"がグループの容量とすると、"m−n"がグ
ループ内に既に記憶されているビデオから同時に再生さ
れうる全てのストリームの総数以上であるべきである。
【0179】計算は、ビデオ・データが媒体ストリーマ
10にロードされるときに、制御ノード18において実
行される。最も単純な場合では、全てのディスクが、記
憶及びサポート可能なストリーム数の両方の点で、媒体
ストリーマ10の総容量を定義する単一のプール内に存
在する。この場合には、所与の同時ストリーム数をサポ
ートするために必要なディスク(またはストライプ)の
数が、式m*r/dから計算され、ここでmはストリー
ム数、rはストリームのデータ・レート、dはディスク
の有効データ・レートである。ストリームが異なるレー
トの場合には、上述の式のm*rは最大(全ての同時ス
トリームのデータ・レートの合計)により置換される。
【0180】データの書込みにこの技法を使用すること
により、ビデオ・プレゼンテーションのデジタル表現の
複数のコピーを必要とすること無く、データを読出し、
多くのストリームを指定レートで配布することができ
る。複数のディスク・ボリュームに渡りデータをストラ
イプすることにより、あるストリームの配布のためのフ
ァイルの1部の読出しが、別のストリームの配布のため
のそのファイルの別の部分の読出しを妨害しない。
【0181】I.媒体ストリーマ・データ転送及び変換
プロシージャ I1.スイッチ18へのビデオ配布のための動的帯域幅
割当て 従来、ビデオ・サーバは一般に、2つのプロファイルの
いずれかに適合する。すなわち、低コストの(しかしな
がら低帯域幅の)ビデオ・サーバを生成するためにPC
技術を用いるか、高帯域幅の(しかしながら高価な)ビ
デオ・サーバを生成するためにスーパー・コンピュータ
技術を使用する。本発明の目的は、高コストのスーパー
・コンピュータ技術を使用せずに、高帯域幅のビデオを
配布することである。
【0182】低コストで高帯域幅を達成する1つのアプ
ローチは、低待ち時間スイッチ(クロスバー回路スイッ
チ・マトリックス)12により、低コストのPCベース
の"ノード"をビデオ・サーバに相互接続することである
(図1参照)。媒体ストリーマ・アーキテクチャの重要
な態様は、各記憶ノード16及び通信ノード14内で使
用可能なビデオ・ストリーム帯域幅を効率的に使用する
ことである。帯域幅はビデオ・データの特殊な性質(1
回の書込み及び複数回の読出し)と、低コストのスイッ
チ技術による動的で実時間の帯域幅割当て能力とを組合
わせることにより最大化される。
【0183】図22は、スイッチ・インタフェースと記
憶ノードとの間の従来の論理接続を示す。スイッチ・イ
ンタフェースは全2重であり(すなわち情報が同時に双
方向に送信される)、記憶ノードへ入力及び記憶ノード
から出力されるビデオ(及び制御情報)の転送を可能に
する。ビデオ内容は記憶ノードへ1回書込まれ、複数回
読出されるので、記憶ノードに対する帯域幅要求の大部
分はスイッチに向かう方向を取ることになる。通常のス
イッチ・インタフェースでは、記憶ノードの帯域幅の利
用度は低い。なぜなら、書込み機能に充当される帯域幅
の半分が稀にしか使用されないからである。
【0184】図23は、本発明によるスイッチ・インタ
フェースを示す。このインタフェースはノードの現要求
に適合するように、その総帯域幅を実時間でスイッチ1
8にまたはスイッチ18から割当てる(図では1例とし
て記憶ノード16が使用される)。通信ノード14は類
似の要求を有するが、それらの帯域幅の大部分はスイッ
チ18から向かう方向となる。
【0185】動的割当ては、スイッチ12に対する適切
なルーティング・ヘッダを用い、複数の物理スイッチ・
インタフェースを1つの論理スイッチ・インタフェース
18aにグループ化することにより達成される。(例え
ば読出しに対応する)ビデオ・データが次に2つの物理
インタフェース間で分離される。これは上述のように、
データを複数の記憶ユニットに渡りストライプすること
により可能になる。受信ノードはビデオ・データを単一
の論理ストリームに再結合する。
【0186】例えば図22では、スイッチ・インタフェ
ースが全2重2X MB/秒、すなわち各方向において
X MB/秒で規定される。しかしながら、ビデオ・デ
ータは通常、一方向にのみ送信される(記憶ノードから
スイッチへ)。従って、たとえノードが2倍の能力(2
X)を有するとしても、X MB/秒の帯域幅だけが記
憶ノードから配布されることになる。図23のスイッチ
・インタフェースは、2X MB/秒の帯域幅全部を、
記憶ノードからスイッチへ送信されるビデオに動的に割
当てる。その結果、ノードからの帯域幅が増加し、ビデ
オ・サーバからの帯域幅が高くなり、1ビデオ・ストリ
ーム当たりのコストが低下する。
【0187】J.通信アダプタによる等時性ビデオ・デ
ータの配布 デジタル・ビデオ・データは順次的で、連続的で、大容
量であり、内容的に厳格ではないが時間的に厳格であ
る。ビデオ・データのストリームは高ビット・レートで
等時的に配布されなければならず、データ経路における
全ての非本質的なオーバヘッドが最小化されることを要
求する。通常、受信ハードウェアはビデオ・セット・ト
ップ・ボックスまたは他の好適なビデオ・データ・レシ
ーバである。標準のシリアル通信プロトコルは、同期及
びデータ検証のために、しばしばハードウェア・レベル
において、追加のデータ・ビット及びバイトをストリー
ムに挿入する。レシーバが透過的にこの追加データを除
去できないと、ビデオ・ストリームは破損してしまう。
これらのビット及びバイトにより導入される追加のオー
バヘッドもまた、有効データ・レートを低下させ、ビデ
オ伸長エラー及び変換エラーを生成する。
【0188】標準の通信アダプタを介するビデオ・デー
タ伝送において、ユーザへの等時的配布を保証するため
に、大部分の標準シリアル通信プロトコル属性を無効に
することが合意決定された。これを達成する方法は、使
用される通信アダプタに依存して変わるが、その基本的
な概念について次に述べることにする。図24におい
て、通信ノード14内のシリアル通信チップ200が、
データ・フォーマッティング、並びにパリティ、スター
ト及びストップ・ビット、巡回冗長検査(CRC)コー
ド及び同期バイトなどの保全情報を無効にし、アイドル
文字の生成を禁止する。データ・ブロックのロードのた
めのバス・サイクルを可能にする一方で、一定(等時
性)出力ビデオ・データ・ストリームを保証するため
に、入力FIFOバッファ202、204、206など
が使用される。1000バイトのFIFOバッファ20
8が、CPU及びバス・ローディング論理を単純化す
る。
【0189】シリアル通信チップ200が初期同期(sy
nc)バイト生成を禁止しないと、同期バイトの値は各デ
ータ・ブロックの第1バイトの値にプログラムされる
(そして、データ・ブロック・ポインタが第2バイトに
増分される)。バイト合わせも実時間で管理されなけれ
ばならない。なぜなら、埋込みバイトが実際の圧縮ビデ
オ・データの1部でないと、これらがデータ・ストリー
ムを壊す(corrupt)からである。
【0190】高品質レベルの圧縮ビデオ・データに要求
される一定の高速シリアル・データ出力を達成するため
に、循環バッファまたは複数の大きなバッファ(例えば
202、204、206)が使用されなければならな
い。これは、前回充填されたバッファからデータを出力
しながら、入力バッファを充填するのに十分な時間を許
容するために必要となる。バッファの詰め込みがビデオ
・データ・ストリーム経路において早期に実行されない
と、ビデオの終りの状態が非常に小さなバッファとな
り、これが次のバッファ転送が完了する以前に出力され
て、データのアンダーランを生じうることになる。この
ためには最低でも3つの大きな独立のバッファが必要と
なる。デュアル・モード・メモリ(読出し中に書込み可
能)の循環バッファの使用も好適である。
【0191】J1.圧縮MPEG−1、1+、またはM
PEG−2デジタル・データ・フォーマットから、業界
標準テレビジョン・フォーマット(NTSCまたはPA
L)へのビデオ・イメージ及び映画の変換 上述のように、デジタル・ビデオ・データは、ディスク
からバッファ・メモリに転送される。十分なデータがバ
ッファ・メモリに存在すると、これはメモリから通信ノ
ード14内のインタフェース・アダプタに転送される。
使用されるインタフェースはSCSI 20MB/秒、
高速/広帯域インタフェースまたはSSAシリアルSC
SIインタフェースである。SCSIインタフェースは
15アドレスを扱うように拡張され、SSAアーキテク
チャは最大256アドレスをサポートする。他の好適な
インタフェースには、RS422、V.35、V.36
などが含まれる。
【0192】図25に示されるように、インタフェース
からのビデオ・データは、通信ノード14から通信バス
210を介して、NTSCアダプタ212に渡され(図
24も参照のこと)、ここでバッファリングされる。ア
ダプタ212はデータを局所バッファ214から引き出
すが、ここにはバスの性能を最大化するために複数のデ
ータ・ブロックが記憶される。アダプタ212の主要な
目的は、メモリ214からMPEGチップ216、21
8、そしてNTSCチップ220、及びD/A222へ
のデータの等時的フローを維持することであり、それに
よりビデオ及び音声の配布に中断が生じないように保証
する。
【0193】MPEG論理モジュール216、218
は、デジタル(圧縮)ビデオ・データを要素レベルのビ
デオ及び音声に変換する。NTSCエンコーダ220
は、信号をNTSCベースバンド・アナログ信号に変換
する。MPEG音声デコーダ216は、デジタル音声を
パラレル・デジタル・データに変換し、これが次にデジ
タル−アナログ変換器222を通過し、フィルタリング
されて、左右の音声出力を生成する。
【0194】速度マッチング及び等時的配布問題に対す
る解決策は、システムの帯域幅の配布を最大化するだけ
でなく、最も少ない性能的制限を課すアプローチであ
る。
【0195】通常、アプリケーション開発者は、プロセ
ッサとディスク・ファイル、テープ・ファイル、光記憶
ユニットなどの機械的記憶装置との間のデータの制御及
び配布のために、SSA及びSCSIなどのバス構造を
使用する。これらの両方のバスは、ビデオ・データの速
度及び等時的配布を制御する手段が取られるならば、ビ
デオ・データの高帯域幅の配布に好適な属性を含む。
【0196】SCSIバスは、20MB/秒でのデータ
のバースト転送を許容するので、任意のビデオ信号がバ
ッファ・メモリから特定のNTSCアダプタに転送され
る時間量を最小化する。アダプタ・カード212は大き
なバッファ214を含み、これはデータをバス210か
らメモリに高いピーク・レートでバースト転送し、デー
タをバッファ214からより低いレートで取り出し、M
PEGデコーダ・チップ216、218に配布する性能
を有する。バッファ214は更に小さなバッファにセグ
メント化され、ソフトウェア制御により、循環式に接続
される複数のバッファとして機能するように接続され
る。
【0197】このことは、システムが可変ブロック・サ
イズのデータを別々のバッファに配布することを可能に
し、再生シーケンスを制御する。このアプローチの利点
は、ビデオ・データの要求に先立ち、ビデオ・データの
ブロックを非常に高い転送レートで配布する必要からソ
フトウェアを解放する。それにより媒体ストリーマ10
は、動的なスループット要求により、多くのビデオ・ス
トリームを管理する能力を提供される。通信ノード内の
プロセッサが時間を有するとき、プロセッサは順番に再
生される複数の大きなデータ・ブロックを配布すること
ができる。これが実行されると、プロセッサは解放さ
れ、即時低速の連続等時性データを各ポートに配布する
必要無しに、他のストリームを制御する。
【0198】デコーダ・システムのコスト有効性を更に
改良するために、小さなFIFOメモリ224が、大き
なデコーダ・バッファ214とMPEGデコーダ21
6、218との間に挿入される。FIFOメモリ224
は、制御装置226がバッファ214からFIFO22
4に小データ・ブロック(通常は512バイト)を転送
することを可能にし、FIFO224は次にこのデータ
をシリアル・ビット・ストリームに変換して、MPEG
デコーダ216、218に配布する。音声及びビデオの
デコーダ・チップ216、218は、それぞれの入力を
同じシリアル・データ・ストリームから受取り、内部的
に要求データを分離し復号化する。FIFOメモリ22
4の出力からのデータの伝送は、等時的または実質的に
等時的に発生し、ユーザまたは利用者への中断の無いビ
デオ・プレゼンテーションの配布を保証する。
【0199】K.SCSI装置へのデジタル・ビデオの
伝送 図26に示されるように、バッファ・メモリからの圧縮
デジタル・ビデオ・データ及びコマンド・ストリーム
は、デバイス・レベルのソフトウェアによりSCSIコ
マンド及びデータ・ストリームに変換され、SCSIバ
ス210を介して、SCSI II高速データ・レート
でターゲット・アダプタ212に転送される。データは
次にバッファリングされ、要求内容出力レートでMPE
G論理に供給されて伸長され、アナログ・ビデオ及び音
声データに変換される。データ・フローの速度を一定に
維持し、適正なバッファ管理を保証するために、SCS
Iバス210を通じてフィードバックが提供される。
【0200】SCSI NTSC/PALアダプタ21
2は、標準のSCSIプロトコルのサブセットをサポー
トする高レベルのインタフェースをSCSIバス210
に提供する。通常の動作モードではアダプタ212を開
放して、データ(ビデオ及び音声)ストリームをそれに
書込み、書込みの完了に際してのみアダプタ212を閉
鎖する。アダプタ212は、通信ノード14及び記憶ノ
ード16がデータ・ブロックを提供し続ける間に、その
バッファ・フルを維持するのに必要な速度でデータを引
き出す。ここでデータ・ブロックは、バス・データ転送
を最適化し、バス・オーバヘッドを最小化するようにサ
イズ化される。
【0201】システム・パラメータは必要に応じて、モ
ード選択SCSIコマンドにより、制御パケットを介し
て上書きされる。ビデオ/音声同期はアダプタ212内
で実施され、外部制御は必要とされない。自動再同期化
及び継続する音声/ビデオ出力により、エラーは最小化
される。
【0202】K1.SCSIレベルのコマンド記述 SCSIビデオ出力アダプタの機能に適合するために、
標準のコマンドと同様に、直接アクセス装置コマンドと
逐次装置コマンドとの混合が使用される。全てのSCS
Iコマンドでは、有効ステータス・バイトがあらゆるコ
マンドの後に返却され、チェック状態が返却されると、
センス・データ領域にエラー状態がロードされる。使用
される標準SCSIコマンドには、RESET、INQUIRY、RE
QUEST SENSE、MODE SELECT、MODE SENSE、READ、WRIT
E、RESERVE、RELEASE、TEST UNIT READYが含まれる。
【0203】ビデオ・コマンド:ビデオ制御コマンドは
ユーザ・レベルのビデオ出力制御コマンドであり、上記
リストされた標準コマンドの拡張である。これらは低レ
ベル・オペレーティング・システムへの単純化されたユ
ーザ・レベル・フロント・エンド、またはSCSIビデ
オ出力アダプタ212と直接インタフェースするSCS
Iコマンドを提供する。各コマンドはマイクロコードを
用いて達成され、必要なビデオ装置機能をエミュレート
し、無効な制御状態により生じるビデオ及び音声異常を
回避する。単一のSCSIコマンドすなわちSCSI START
/STOP UNITコマンドにより、ビデオ制御コマンドがター
ゲットSCSIビデオ出力アダプタ212に変換され、
コマンドと共に、必要なパラメータが転送される。これ
によりユーザ・アプリケーション・インタフェース及び
アダプタ・カード212のマイクロコードの両方が単純
化される。次に示すコマンドが使用される。
【0204】Stop(SCSI START/STOP 1 - parameter =
mode) MPEGチップ・セット(216、218)へのデータ
入力が停止され、音声が無声化され、ビデオがブランキ
ングされる。パラメータ・フィールドは停止モードを選
択する。通常モードでは、バッファ及び位置ポインタが
現状を維持し、従って、再生はビデオ・ストリームの同
じ位置から継続する。第2のモード(映画の終了または
アボート)では、バッファ・ポインタは次のバッファの
開始にセットされ、現バッファを解放する。第3のモー
ドも映画の終了状態に対応するが、データ・バッファが
空になるまで、停止(無声化及びブランキング)が遅延
される。第4のモードは特定のMPEGデコーダと一緒
に使用され、音声の遅延停止を提供するが、フレームに
ついては、データが尽きたときの最後の有効フレームで
フリーズ(freeze)する。これらのそれぞれの場合にお
いて、ビデオ・アダプタ212のマイクロコードが停止
ポイントを決定し、ビデオ及び音声出力が適切な境界上
で停止され、明確な再スタートを可能にする。
【0205】Pause(SCSI START/STOP 2 - no paramete
rs) MPEGチップ・セット(216、218)へのデータ
入力が停止され、音声が無声化され、ビデオがブランキ
ングされる。MPEGビデオ・チップ・セット(21
6、218)が、最後の良好なフレームをフリーズす
る。これはビデオ・チューブのバーンイン(burn-in)
を回避するために制限される。Stopコマンドは好適には
制御ノード18により発行されるが、コマンドが5分以
内に受信されない場合には、ビデオ出力は自動的にブラ
ンクとなる。アダプタ212のマイクロコードはバッフ
ァ位置及びデコーダ状態を維持し、再生への円滑な遷移
を可能にする。
【0206】Blank-Mute(SCSI START/STOP 3 - parame
ter = mode) このコマンドは、音声出力に影響すること無くビデオ出
力をブランキングするか、ビデオ出力に影響すること無
く音声出力を無声化するか、或いはそれらの両方を実行
する。無声化及びブランキングの両者は、モード・パラ
メータを用いる単一のコマンドによりオフされ、円滑な
遷移及びコマンドのオーバヘッドの低減を可能にする。
これらのことが伸長及びアナログへの変換後に、ハード
ウェア制御によりビデオ・アダプタ212上において実
行され、確実で円滑な遷移を保証する。
【0207】Slow Play(SCSI START/STOP 4 - paramet
er = rate) このコマンドは、MPEGチップ・セット(216、2
18)へのデータ入力レートを低速化し、フレームを断
続的にフリーズさせ、VCR上での低速再生機能をシミ
ュレートする。デジタル・エラー・ノイズを回避するた
めに音声が無声化される。パラメータ・フィールドは、
相対速度を0乃至100に指定する。別の例では、デコ
ーダ・チップ・セット(216、218)のエラー処理
を禁止し、デコーダ・チップ・セットへのデータ・クロ
ッキング速度を、所望の再生速度に変更する。これはビ
デオ・アダプタのクロック・アーキテクチャの柔軟性に
依存する。
【0208】Play(SCSI START/STOP 5 - parameter =
buffer) このコマンドはMPEGチップ・セット(216、21
8)へのデータ供給プロセスを開始し、音声及びビデオ
出力を可能にする。再生シーケンスを開始するバッファ
を決定するバッファ選択番号が渡され、ゼロ値は現再生
バッファが使用されるべきことを示す(通常のオペレー
ション)。非ゼロ値は、アダプタ212が停止モードの
場合にのみ受諾され、休止モードでは、バッファ選択パ
ラメータは無視され、再生が現バッファ選択及び位置に
より再開される。
【0209】再生中、制御装置226がバッファを順次
回転させ、MPEGチップ・セット(216、218)
への安定なデータ・ストリームを維持する。データはバ
ッファのアドレス0から開始して、Nバイトが読出され
るまで、適切なレートでMPEGバスに読出され、次に
制御装置226が次のバッファに切り替え、データの読
出しを継続する。アダプタ・バス及びマイクロコード
が、アダプタ・バッファ214へのSCSI高速データ
転送、並びにMPEG伸長チップ(216、218)に
データを供給する出力FIFO224へのデータの安定
ローディングの両方に対応する、十分な帯域幅を提供す
る。
【0210】Fast Forward(SCSI START/STOP 6 - para
meter = rate) このコマンドは、VCRの高速先送りをエミュレートす
るようにデータを走査する。レート・パラメータにより
決定される2つの動作モードが存在する。レート0は、
ビデオ及び音声がそれぞれブランキング及び無声化され
る高速先送りを意味し、バッファはフラッシュ(flus
h)され、データがビデオ・ストリームの順方向の新た
な位置から受信されると再生が暗黙的に実行される。1
乃至10の整数値は、入力ストリームが先送りされるレ
ートを示す。ビデオは指定の平均データ・レートを達成
するために、データ・ブロックをスキップしてサンプリ
ングされる。アダプタ212はほぼ通常のレートでデー
タの1部を再生し、前方へ飛び越した後、次の部分を再
生し、高速先送り動作をエミュレートする。
【0211】Rewind(SCSI START/STOP 7 - parameter
= buffer) このコマンドは、VCRの巻戻しをエミュレートするよ
うに、データを後方走査する。レート・パラメータによ
り決定される2つの動作モードが存在する。レート0
は、ビデオ及び音声がそれぞれブランキング及び無声化
される高速巻戻しを意味し、バッファはフラッシュさ
れ、データがビデオ・ストリームの逆方向の新たな位置
から受信されると、再生が暗黙的に実行される。1乃至
10の整数値は、入力ストリームが巻戻されるレートを
示す。ビデオは指定の平均データ・レートを達成するた
めに、データ・ブロックをスキップしてサンプリングさ
れる。巻戻しデータ・ストリームは、ビデオ・ストリー
ムの順次的に早い位置からサンプリングされる小さなデ
ータ・ブロックを組合わせることにより生成される。ア
ダプタ・カード212は、遷移及び同期を円滑に処理し
て通常のレートで再生し、次のサンプル部分にスキップ
して戻ることにより、巻戻し走査をエミュレートする。
【0212】K2.バッファ管理 デジタル・ビデオ・サーバは多くの並行出力装置にデー
タを提供するが、デジタル・ビデオ・データ伸長及び変
換は、一定のデータ・ストリームを要求する。データの
バッファリング技法が、SCSIデータ・バースト・モ
ード伝送を利用するために使用され、データのアンダー
ランまたはバッファのオーバランを回避する一方、媒体
ストリーマ10が最小の介入により、データを多くのス
トリームに送信することを可能にする。SCSIビデオ
・アダプタ・カード212(図25、26参照)は、S
CSIバースト・モード・データ転送プロセスを完全に
使用可能にするビデオ・データ用の大きなバッファ21
4を含む。一般的な構成は768Kの1つのバッファ2
14であり、局所論理により循環回路バッファとして処
理される。循環バッファは、可変データ・ブロック・サ
イズを動的に処理する場合に固定長バッファよりも好適
である。後者は、デジタル・ビデオ・データを転送する
ときの記憶オーバヘッド及び管理オーバヘッドの両方の
点で、非効率的である。
【0213】ビデオ・アダプタ・カード212のマイク
ロコードは、複数のバッファ・ポインタをサポートし、
データの現在の長さ及び先頭の他に、データの最後の先
頭を保持する。このことは必要に応じて、失敗伝送を上
書きする再試行を可能にしたり、ポインタを現バッファ
内のバイト位置に配置することを可能にする。データ・
ブロック長は、デコード・チップ・セット(216、2
18)への有効データの転送を保証するように、送信時
と同じに維持される(たとえ中間論理によりロング・ワ
ード構成が使用されるとしても、バイトまたはワード特
有である)。このアプローチは、データ・バッファの柔
軟な制御を維持しながら、安定状態動作のオーバヘッド
を最小化する。
【0214】K2.1.バッファ選択及び位置 複数のバッファ・セットが要求される場合、全てのバッ
ファ関連オペレーションにおいて、複数のポインタが使
用可能である。例えば、第1のセットは再生バッファ及
びそのバッファ内の現在位置を選択するために使用さ
れ、第2のセットはデータ・プリロード・オペレーショ
ンに対応して、書込みバッファ及びそのバッファ内の位
置(通常は0)を選択するために使用される。受信され
る各データ・ブロックに対応して、現在長及び最大長が
保持される。なぜなら、可変長データ・ブロックもサポ
ートされるからである。
【0215】K2.2.自動モード バッファ・オペレーションはビデオ・アダプタの制御装
置226により管理され、Nバイトのデータが次の使用
可能なバッファ空間のアドレス0から配置される。制御
装置226は、各バッファ内のデータ長及びそのデータ
が再生されたかどうかを追跡する。十分なバッファ空間
が解放されていると、アダプタ・カードは次のWRITEコ
マンドを受諾し、データをそのバッファにDMA転送す
る。完全なデータ・ブロックを受入れるのに十分なバッ
ファ空間が解放されていないと(典型的には低速再生
(Slow Play)または休止状態)、WRITEコマンドは受諾
されず、バッファ・フル復帰コードが返却される。
【0216】K2.3.マニュアル・モード LOCATEコマンドは、各バッファ・アクセス・コマンド
(WRITE、ERASEなど)に対応して、現書込みバッファ及
びそのバッファ内の位置(通常は0)を選択するために
使用される。バッファ位置は、成功裡に伝送された最後
のデータ・ブロックのデータの開始に関連付けられる。
これは好適にはビデオ・ストリーム遷移管理のために実
行され、システム内のコマンド・オーバヘッドを最小化
するために、自動モードができる限り早く再活動化され
る。
【0217】K2.4.エラー管理 デジタル・ビデオ・データ転送は、データ処理アプリケ
ーションにおいて、通常、SCSIを使用するランダム
・データ・アクセスの場合とは異なるエラー管理要求を
有する。少量のデータ損失は伝送の中断に比較して重要
ではなく、従来の再試行及びデータ検証方法が変更また
は使用禁止にされる。通常のSCSIエラー処理プロシ
ージャでは、ステータス・フェーズの間の各コマンドの
完了時に、ステータス・バイトが戻される。ステータス
・バイトは、ターゲットSCSIチップ227がコマン
ドを受諾できないと、良好(00)状態またはビジー
(08h)を示し、エラーが発生すると、チェック状態
(02h)を示す。
【0218】K2.5.エラー回復 SCSIビデオ・アダプタ212の制御装置226は、
チェック状態応答の際に、要求センス・コマンドを自動
的に生成し、エラー及びステータス情報をロードし、回
復プロシージャが可能かどうかを決定する。通常の回復
プロシージャはエラー状態をクリアし、破壊されたデー
タを廃棄し、できるだけ早く通常の再生を再開する。最
悪の場合、アダプタ212はリセットされ、再生以前に
再ロードされたデータが再開されうる。エラー状態は記
録され、次の問合わせ(INQUIRY)または要求センス(R
EQUEST SENSE)SCSIオペレーションにおいて、ホス
ト・システムに報告される。
【0219】K2.6.自動再試行 バッファ・フルまたは装置ビジー状態では、再試行がス
トリーム・データ・レートに依存して、最高X回自動的
に実行される。これは次のデータ・バッファが到来した
時点にのみ許可される。その時点で、その状態が予想で
きない場合には(例えば休止または低速再生モードでな
いのにバッファ・フルである)、エラーが記憶され、ビ
デオ再生を回復し継続するためには、装置リセットまた
はクリアが必要となりうる。
【0220】これまで主にビデオ・プレゼンテーション
をユーザに配布する内容について述べてきたが、双方向
ビデオ・アダプタを使用することにより、ビデオ・プレ
ゼンテーションを受信し、それをデータ表現としてデジ
タル化し、データ表現をバス210を介して通信ノード
14に伝送し、低待ち時間スイッチ18を介して、制御
ノード18により指定される記憶ノード16、17に記
憶することが可能であることが理解されよう。
【0221】上述の説明は本発明の単なる1実施例に過
ぎず、当業者には、本発明の範囲を逸脱すること無く、
様々な代替例及び変更が考案されよう。従って、本発明
はこうした全ての代替例及び変更を含むものである。
【0222】
【0223】
【0224】
【発明の効果】以上説明したように、本発明によれば、
コンピュータ業界の従来のインタフェースにより、マル
チメディア環境における等時的データ・ストリーム転送
を可能にする"ビデオ・フレンドリ"なコンピュータ・サ
ブシステムを提供することができる。
【図面の簡単な説明】
【図1】本発明を組込んだ媒体ストリーマのブロック図
である。
【図2】図1の回路スイッチの詳細を示すブロック図で
ある。
【図3】図1のテープ記憶ノードの詳細を示すブロック
図である。
【図4】図1のディスク記憶ノードの詳細を示すブロッ
ク図である。
【図5】図1の通信ノードの詳細を示すブロック図であ
る。
【図6】高優先順位で実行されるビデオ・ストリーム出
力制御コマンドのリストと、低優先順位で実行されるデ
ータ管理コマンドのリストである。
【図7】通信ノードのデータ・フローを示すブロック図
である。
【図8】ディスク記憶ノードのデータ・フローを示すブ
ロック図である。
【図9】接続を可能にする制御メッセージ・フローを示
す図である。
【図10】再生を可能にする制御メッセージ・フローを
示す図である。
【図11】媒体ストリーマとクライアント制御システム
との間に存在するインタフェースを示す図である。
【図12】媒体ストリーマを動作するために使用される
複数の"ソフト"・キーを示す表示パネルを示す図であ
る。
【図13】図12のLOADソフト・キーの選択時に表示さ
れるLOAD選択パネルを示す図である。
【図14】図12のバッチ・キーの選択時に表示される
バッチ選択パネルを示す図である。
【図15】クライアント制御システムと媒体ストリーマ
の間に存在する複数のクライアント/サーバ関係を示す
図である。
【図16】ビデオ・データをアクセスし、それを1つ以
上の出力ポートに供給する従来技術を示す図である。
【図17】複数のビデオ・ポートが、通信ノード・キャ
ッシュ・メモリに含まれる単一のビデオ・セグメントを
アクセスする様子を示すブロック図である。
【図18】複数のビデオ・ポートが、ディスク記憶ノー
ド上のキャッシュ・メモリに含まれるビデオ・セグメン
トを直接アクセスする様子を示す図である。
【図19】本発明により使用されるメモリ割当て機構を
示す図である。
【図20】ビデオ1に対応するセグメント化論理ファイ
ルを示す図である。
【図21】ビデオ1の様々なセグメントが複数のディス
ク・ドライブに渡りストライプされる様子を示す図であ
る。
【図22】記憶ノードとクロス・バー・スイッチとの間
の従来のスイッチ・インタフェースを示す図である。
【図23】記憶ノードに対応して拡張出力帯域幅を提供
するように、図22に示される従来のスイッチ・インタ
フェースが変更される様子を示す図である。
【図24】ビデオ出力バスへの一定ビデオ出力を保証す
るプロシージャを示すブロック図である。
【図25】デジタル・ビデオ・データをアナログ・ビデ
オ・データに変換するために使用されるビデオ・アダプ
タのブロック図である。
【図26】図25のビデオ・アダプタ・カードの制御の
ためにSCSIバス・コマンドの使用を可能にする制御
モジュールのブロック図である。
【符号の説明】
2、3、4 ストライプ 10 ビデオ最適化ストリーム・サーバ・システム(媒
体ストリーマ) 12 低待ち時間スイッチ 14 通信ノード 15 ビデオ・ポート 16、17 記憶ノード 18 制御ノード 20 クロスバー・スイッチ・カード 24 制御装置インタフェース 26 テープ・ライブラリ 28 インタフェース 30 内部システム・メモリ 32 DMAデータ転送パス 34、54 PC 36 ソフトウェア 38、50 バッファ・モジュール 44 内部PC 45 ディスク 46、48、56、58 ソフトウェア・モジュール 52 通信インタフェース 60 入力 62 自動制御装置 64 システム制御装置 65 ユーザ制御セット・トップ・ボックス 66 表示機構 100、110 入力スレッド 104、114 スケジュール機能 102、112 出力スレッド 106 要求キュー 108 入力キュー 116 メッセージ・スレッド 130 バッチ・ボタン 132 インポート/エクスポート・ボタン 134 "ロード"・ソフト・ボタン 136 "ファイル"・ボックス 138、150 "ファイル名"ボックス 140 "追加"ボタン 142 "再生リスト"・ボックス 144 "実行"ボタン 146 "ディレクトリ"・ボックス 160、162 ディスク・ファイル 166 ファイル・システム 168 媒体サーバ 170 ビデオ・ドライバ 172、174 ビデオ・アダプタ・ポート 180、182 ディスク記憶ノード 186 通信ノード 190、192 ディスク・ドライブ 194、196 ビデオ・ポート 198 ディスク・キャッシュ・バッファ 200 シリアル通信チップ 202、204、206 入力FIFOバッファ 208 FIFOバッファ 210 SCSIバス 212 NTSCアダプタ 214 局所バッファ 216、218 MPEGチップ(論理モジュール) 220 NTSCエンコーダ 222 D/A変換器 224 FIFOメモリ 226 制御装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーサ・アール・ヘンレィ アメリカ合衆国、カリフォルニア州モー ガン・ヒル、ジョン・テルファー・ドラ イブ 17660 (72)発明者 ロレンゾ・ファルコン、ジュニア アメリカ合衆国95123、カリフォルニア 州サン・ホセ、オウミラ・ドライブ 253 (72)発明者 トーマス・イー・フレイン アメリカ合衆国95125、カリフォルニア 州サン・ホセ、バーンサイド・ドライブ 6858 (72)発明者 メイ−ラン・ルオ アメリカ合衆国95120、カリフォルニア 州サン・ホセ、パソ・ロス・チェリトス 6066 (72)発明者 アショク・ラジャ・サクセナ アメリカ合衆国95120、カリフォルニア 州サン・ホセ、バレイ・クワイル・サー クル 1236 (56)参考文献 特開 平4−287217(JP,A) 実開 平1−178641(JP,U) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 G06F 12/00 G06F 12/08

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】少なくとも1つのビデオ・プレゼンテーシ
    ョンのデジタル表現を記憶する少なくとも1つの記憶ノ
    ードであって、前記少なくとも1つのビデオ・プレゼン
    テーションが、それを完全に表示するために時間Tを要
    し、各々が前記少なくとも1つのビデオ・プレゼンテー
    ションのT/N部分を含む複数のNデータ・ブロックと
    して記憶され、前記少なくとも1つの記憶ノードが、前
    記Nデータ・ブロックの少なくとも1つをバッファリン
    グする第1のデータ・バッファを含む、前記記憶ノード
    と、 各々が回路スイッチを介し、前記第1のデータ・バッフ
    ァの出力に接続される入力ポートを有し、該データ・バ
    ッファから複数の前記Nデータ・ブロックを順次受信す
    る複数の通信ノードであって、前記順次受信されるNデ
    ータ・ブロックが、同一のビデオ・プレゼンテーション
    または異なるビデオ・プレゼンテーションに関連付けら
    れ、前記複数の各通信ノードが複数の出力ポートを有
    し、前記複数の個々の出力ポートが特定のビデオ・プレ
    ゼンテーションのデジタル表現を出力し、前記複数の個
    々の通信ノードが更に、前記Nデータ・ブロックの少な
    くとも1つを出力する以前に、当該データ・ブロックを
    バッファリングする第2のデータ・バッファを含む、前
    記通信ノードと、 第1の動作状態に応答して、前記Nデータ・ブロックの
    1つを前記第1のデータ・バッファから第1の前記通信
    ノードの出力ポート、並びに第2の前記通信ノードの出
    力ポートへ転送させる少なくとも1つの制御ノードであ
    って、前記少なくとも1つの制御ノードが更に、第2の
    動作状態に応答して、前記Nデータ・ブロックの1つを
    前記第1のデータ・バッファから前記通信ノードの1つ
    の前記第2のデータ・バッファへ、更に前記第2のデー
    タ・バッファから前記通信ノードの前記1つの複数の前
    記出力ポートへ転送させる、前記制御ノードと、 を含む、媒体ストリーマ。
  2. 【請求項2】前記Nデータ・ブロックの1つが所定時間
    内に前記通信ノードの少なくとも1つから出力されると
    予測される場合、当該データ・ブロックを前記第1のデ
    ータ・バッファ内に選択的に保存する手段を含む、請求
    項1記載の媒体ストリーマ。
  3. 【請求項3】前記Nデータ・ブロックの1つが所定時間
    内に前記通信ノードの前記出力ポートの少なくとも1つ
    から出力されると予測される場合、当該データ・ブロッ
    クを前記第2のデータ・バッファ内に選択的に保存する
    手段を含む、請求項1記載の媒体ストリーマ。
  4. 【請求項4】保存されるべきでない前記Nデータ・ブロ
    ックの1つに対し、前記媒体ストリーマが当該データ・
    ブロックを前記第1のデータ・バッファ内で置換する手
    段を含み、前記置換手段が、関連ビデオ・プレゼンテー
    ションに対して予測される要求、及び前記Nデータ・ブ
    ロックの前記1つの対応データ表現内におけるロケーシ
    ョンに応答して、当該データ・ブロックを前記第1のデ
    ータ・バッファ内に保存する優先順位を、該バッファ内
    に記憶される前記Nデータ・ブロックの他のデータ・ブ
    ロックに対して決定する、請求項2記載の媒体ストリー
    マ。
  5. 【請求項5】データ表現の開始または開始近くに配置さ
    れるデータ・ブロックに、前記データ・ブロックの終り
    または終り近くに配置されるデータ・ブロックよりも高
    い優先順位を割当てる、請求項4記載の媒体ストリー
    マ。
  6. 【請求項6】保存されるべきでない前記Nデータ・ブロ
    ックの1つに対し、前記媒体ストリーマが当該データ・
    ブロックを前記第2のデータ・バッファ内で置換する手
    段を含み、前記置換手段が、関連ビデオ・プレゼンテー
    ションに対して予測される要求、及び前記Nデータ・ブ
    ロックの前記1つの対応データ表現内におけるロケーシ
    ョンに応答して、当該データ・ブロックを前記第2のデ
    ータ・バッファ内に保存する優先順位を、該バッファ内
    に記憶される前記Nデータ・ブロックの他のデータ・ブ
    ロックに対して決定する、請求項記載の媒体ストリー
    マ。
  7. 【請求項7】データ表現の開始または開始近くに配置さ
    れるデータ・ブロックに、前記データ・ブロックの終り
    または終り近くに配置されるデータ・ブロックよりも高
    い優先順位を割当てる、請求項6記載の媒体ストリー
    マ。
  8. 【請求項8】保存されるべき前記Nデータ・ブロックの
    1つに対して、前記媒体ストリーマが、当該データ・ブ
    ロックが前記通信ノードの少なくとも1つから出力され
    るように要求される次の予測時刻、及び当該データ・ブ
    ロックが関連付けられるデジタル表現を出力する前記出
    力ポート数に応答して、当該データ・ブロックを前記第
    1のデータ・バッファ内で置換する手段を含む、請求項
    2記載の媒体ストリーマ。
  9. 【請求項9】保存されるべき前記Nデータ・ブロックの
    1つに対し、前記媒体ストリーマが、当該データ・ブロ
    ックが関連通信ノードの前記出力ポートの少なくとも1
    つから出力されるように要求される次の予測時刻、及
    該データ・ブロックが関連付けられるデジタル表現を
    出力する前記出力ポート数に応答して、当該データ・ブ
    ロックを前記第2のデータ・バッファ内で置換する手段
    を含む、請求項3記載の媒体ストリーマ。
  10. 【請求項10】前記少なくとも1つの制御ノードが、第
    1の出力データ表現を第2の出力データ表現に同期させ
    る手段を含み、前記第1のデータ表現及び前記第2のデ
    ータ表現が、前記Nデータ・ブロックの同一ブロックか
    らのデータを同時に出力する、請求項1記載の媒体スト
    リーマ。
  11. 【請求項11】前記第1のデータ・バッファ及び前記第
    2のデータ・バッファがほぼ等しいサイズを有する、請
    求項1記載の媒体ストリーマ。
  12. 【請求項12】前記第1のデータ・バッファ及び前記第
    2のデータ・バッファが単一のデータ・バッファの要素
    であり、前記少なくとも1つの記憶ノーと前記複数の
    通信ノードとの間で分散される、請求項1記載の媒体ス
    トリーマ。
JP22994495A 1994-09-08 1995-09-07 媒体ストリーマ Expired - Fee Related JP3234752B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US302619 1994-09-08
US08/302,619 US5586264A (en) 1994-09-08 1994-09-08 Video optimized media streamer with cache management

Publications (2)

Publication Number Publication Date
JPH0887385A JPH0887385A (ja) 1996-04-02
JP3234752B2 true JP3234752B2 (ja) 2001-12-04

Family

ID=23168532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22994495A Expired - Fee Related JP3234752B2 (ja) 1994-09-08 1995-09-07 媒体ストリーマ

Country Status (4)

Country Link
US (1) US5586264A (ja)
EP (1) EP0702491A1 (ja)
JP (1) JP3234752B2 (ja)
CA (1) CA2153444A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3381260B2 (ja) 1996-08-23 2003-02-24 ダイキン工業株式会社 フッ素ゴム塗料組成物

Families Citing this family (377)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7379900B1 (en) * 1992-03-20 2008-05-27 Variant Holdings Llc System for marketing goods and services utilizing computerized central and remote facilities
US7849393B1 (en) 1992-12-09 2010-12-07 Discovery Communications, Inc. Electronic book connection to world watch live
US7509270B1 (en) 1992-12-09 2009-03-24 Discovery Communications, Inc. Electronic Book having electronic commerce features
US6675386B1 (en) 1996-09-04 2004-01-06 Discovery Communications, Inc. Apparatus for video access and control over computer network, including image correction
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
US7168084B1 (en) 1992-12-09 2007-01-23 Sedna Patent Services, Llc Method and apparatus for targeting virtual objects
US7835989B1 (en) 1992-12-09 2010-11-16 Discovery Communications, Inc. Electronic book alternative delivery systems
US9286294B2 (en) 1992-12-09 2016-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content suggestion engine
EP0856993B1 (en) 1992-12-09 2002-07-31 Discovery Communications, Inc. Set top terminal for cable television delivery systems
JP3456018B2 (ja) * 1993-07-26 2003-10-14 ソニー株式会社 情報送出システム
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US7865567B1 (en) 1993-12-02 2011-01-04 Discovery Patent Holdings, Llc Virtual on-demand electronic book
US7861166B1 (en) 1993-12-02 2010-12-28 Discovery Patent Holding, Llc Resizing document pages to fit available hardware screens
US8095949B1 (en) 1993-12-02 2012-01-10 Adrea, LLC Electronic book with restricted access features
JP3104953B2 (ja) * 1993-12-17 2000-10-30 日本電信電話株式会社 多重読み取り特殊再生方法
US5712976A (en) * 1994-09-08 1998-01-27 International Business Machines Corporation 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
CA2159416A1 (en) * 1994-09-30 1996-03-31 Masayoshi Hirashima Signal distribution apparatus
US5758151A (en) * 1994-12-09 1998-05-26 Storage Technology Corporation Serial data storage for multiple access demand
JP2833507B2 (ja) * 1995-01-31 1998-12-09 日本電気株式会社 サーバ装置のデータアクセス制御方式
JP3184763B2 (ja) * 1995-06-07 2001-07-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチメディア直接アクセス記憶装置及びフォーマット方法
JP3154921B2 (ja) * 1995-06-09 2001-04-09 富士通株式会社 ビデオ・オン・デマンドシステムにおける映像再生位置割り出し方式
US5724646A (en) * 1995-06-15 1998-03-03 International Business Machines Corporation Fixed video-on-demand
US5724543A (en) * 1995-06-19 1998-03-03 Lucent Technologies Inc. Video data retrieval method for use in video server environments that use striped disks
US5758076A (en) * 1995-07-19 1998-05-26 International Business Machines Corporation Multimedia server system having rate adjustable data retrieval based on buffer capacity
US5787472A (en) * 1995-07-31 1998-07-28 Ibm Corporation Disk caching system for selectively providing interval caching or segment caching of vided data
US5815662A (en) * 1995-08-15 1998-09-29 Ong; Lance Predictive memory caching for media-on-demand systems
US5768681A (en) * 1995-08-22 1998-06-16 International Business Machines Corporation Channel conservation for anticipated load surge in video servers
JPH0983979A (ja) * 1995-09-08 1997-03-28 Fujitsu Ltd 多重ビデオサーバ装置
JPH0981497A (ja) * 1995-09-12 1997-03-28 Toshiba Corp 実時間ストリームサーバ並びに実時間ストリームデータの格納方法および転送方法
US5721823A (en) * 1995-09-29 1998-02-24 Hewlett-Packard Co. Digital layout method suitable for near video on demand system
US6160547A (en) * 1995-10-12 2000-12-12 Asc Audio Video Corporation Shared video data storage system with separate video data and information buses
US5948062A (en) * 1995-10-27 1999-09-07 Emc Corporation Network file server using a cached disk array storing a network file directory including file locking information and data mover computers each having file system software for shared read-write file access
US5737747A (en) * 1995-10-27 1998-04-07 Emc Corporation Prefetching to service multiple video streams from an integrated cached disk array
US5829046A (en) * 1995-10-27 1998-10-27 Emc Corporation On-line tape backup using an integrated cached disk array
US6061504A (en) * 1995-10-27 2000-05-09 Emc Corporation Video file server using an integrated cached disk array and stream server computers
US5933603A (en) * 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
US5781226A (en) * 1995-11-13 1998-07-14 General Instrument Corporation Of Delaware Network virtual memory for a cable television settop terminal
US6321293B1 (en) * 1995-11-14 2001-11-20 Networks Associates, Inc. Method for caching virtual memory paging and disk input/output requests
US6003061A (en) 1995-12-07 1999-12-14 Microsoft Corporation Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
US5784571A (en) * 1995-12-14 1998-07-21 Minerva Systems, Inc. Method for reducing the bandwidth requirement in a system including a video decoder and a video encoder
US5719983A (en) * 1995-12-18 1998-02-17 Symbios Logic Inc. Method and apparatus for placement of video data based on disk zones
JP2914261B2 (ja) * 1995-12-20 1999-06-28 富士ゼロックス株式会社 外部記憶制御装置及び外部記憶装置制御方法
US5768520A (en) * 1996-01-29 1998-06-16 International Business Machines Corporation Method for determining load capacity by grouping physical components into logical components whose loads represent fixed proportional loads of physical components
US7577782B2 (en) 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US5991520A (en) 1996-02-02 1999-11-23 Sony Corporation Application programming interface for managing and automating data transfer operations between applications over a bus structure
US6631435B1 (en) 1996-02-02 2003-10-07 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
JP3456085B2 (ja) * 1996-03-05 2003-10-14 ソニー株式会社 データ処理システムおよびデータ処理方法
US6233637B1 (en) 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US6519268B1 (en) 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US5784649A (en) * 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
US5797043A (en) * 1996-03-13 1998-08-18 Diamond Multimedia Systems, Inc. System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
US5918012A (en) * 1996-03-29 1999-06-29 British Telecommunications Public Limited Company Hyperlinking time-based data files
US5870551A (en) * 1996-04-08 1999-02-09 Lucent Technologies Inc. Lookahead buffer replacement method using ratio of clients access order offsets and buffer data block offsets
US5745756A (en) * 1996-06-24 1998-04-28 International Business Machines Corporation Method and system for managing movement of large multi-media data files from an archival storage to an active storage within a multi-media server computer system
US5860091A (en) * 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
US5909693A (en) * 1996-08-12 1999-06-01 Digital Video Systems, Inc. System and method for striping data across multiple disks for continuous data streaming and increased bus utilization
US5737577A (en) * 1996-08-12 1998-04-07 Digital Video Systems, Inc. Complementary block storage for breater minimumdata transfer rate
US6298386B1 (en) 1996-08-14 2001-10-02 Emc Corporation Network file server having a message collector queue for connection and connectionless oriented protocols
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
US5894584A (en) * 1996-08-28 1999-04-13 Eastman Kodak Company System for writing digitized X-ray images to a compact disc
US5920700A (en) * 1996-09-06 1999-07-06 Time Warner Cable System for managing the addition/deletion of media assets within a network based on usage and media asset metadata
US5881245A (en) * 1996-09-10 1999-03-09 Digital Video Systems, Inc. Method and apparatus for transmitting MPEG data at an adaptive data rate
JPH1091360A (ja) * 1996-09-12 1998-04-10 Fujitsu Ltd ディスク制御方式
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
KR100270354B1 (ko) * 1996-11-20 2000-11-01 정선종 이기종망간의 중계 서버 및 실시간 중계 방법
US5873100A (en) * 1996-12-20 1999-02-16 Intel Corporation Internet browser that includes an enhanced cache for user-controlled document retention
US6253375B1 (en) * 1997-01-13 2001-06-26 Diva Systems Corporation System for interactively distributing information services
US6166730A (en) * 1997-12-03 2000-12-26 Diva Systems Corporation System for interactively distributing information services
US6305019B1 (en) 1997-01-13 2001-10-16 Diva Systems Corporation System for interactively distributing information services having a remote video session manager
US7069575B1 (en) 1997-01-13 2006-06-27 Sedna Patent Services, Llc System for interactively distributing information services
JPH10207639A (ja) * 1997-01-28 1998-08-07 Sony Corp 高速データ記録/再生装置および方法
US6803964B1 (en) 1997-03-21 2004-10-12 International Business Machines Corporation Method and apparatus for processing digital data
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
FR2762416B1 (fr) * 1997-04-16 1999-05-21 Thomson Multimedia Sa Methode et dispositif d'acces a des ensembles de donnees contenus dans une memoire de masse
JPH10303840A (ja) * 1997-04-25 1998-11-13 Sony Corp マルチチャンネル放送システム
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US5892915A (en) * 1997-04-25 1999-04-06 Emc Corporation System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
US5991894A (en) * 1997-06-06 1999-11-23 The Chinese University Of Hong Kong Progressive redundancy transmission
JPH114446A (ja) * 1997-06-12 1999-01-06 Sony Corp 情報信号デコード方法及び装置
WO1999001808A2 (en) * 1997-07-02 1999-01-14 Koninklijke Philips Electronics N.V. System for supplying data streams
US6032219A (en) * 1997-08-01 2000-02-29 Garmin Corporation System and method for buffering data
CN1224258C (zh) * 1997-09-04 2005-10-19 赛德娜专利服务有限责任公司 通过计算机网络对包含图象校正的图象访问与控制的装置
WO1999014954A1 (en) * 1997-09-18 1999-03-25 Microsoft Corporation Continuous media file server system and method for scheduling disk reads while playing multiple files having different transmission rates
US6070228A (en) * 1997-09-30 2000-05-30 International Business Machines Corp. Multimedia data storage system and method for operating a media server as a cache device and controlling a volume of data in the media server based on user-defined parameters
FR2769728B1 (fr) * 1997-10-09 2000-01-28 St Microelectronics Sa Procede et systeme perfectionnes de controle d'acces partages a une memoire vive
US6502137B1 (en) 1997-10-09 2002-12-31 International Business Machines Corporation System and method for transferring information over a computer network
FR2769727B1 (fr) * 1997-10-09 2000-01-28 St Microelectronics Sa Procede et systeme de controle d'acces partages a une memoire vive
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
US6070254A (en) * 1997-10-17 2000-05-30 International Business Machines Corporation Advanced method for checking the integrity of node-based file systems
CA2251456C (en) * 1997-10-31 2007-02-13 Sony Corporation An apparatus for storing and transmitting data
JPH11231849A (ja) 1997-11-04 1999-08-27 Matsushita Electric Ind Co Ltd 画像合成装置
JP3606729B2 (ja) 1997-12-10 2005-01-05 松下電器産業株式会社 リッチテキスト素材の表示方法及び映像情報提供システム
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
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
US6292844B1 (en) 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
US6167496A (en) * 1998-02-18 2000-12-26 Storage Technology Corporation Data stream optimization system for video on demand
JP3886243B2 (ja) * 1998-03-18 2007-02-28 富士通株式会社 情報配信装置
US6961801B1 (en) * 1998-04-03 2005-11-01 Avid Technology, Inc. Method and apparatus for accessing video data in memory across flow-controlled interconnects
US6128623A (en) 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
US6289358B1 (en) 1998-04-15 2001-09-11 Inktomi Corporation Delivering alternate versions of objects from an object cache
US6128627A (en) * 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
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
US6230162B1 (en) * 1998-06-20 2001-05-08 International Business Machines Corporation Progressive interleaved delivery of interactive descriptions and renderers for electronic publishing of merchandise
US6704846B1 (en) * 1998-06-26 2004-03-09 Lsi Logic Corporation Dynamic memory arbitration in an MPEG-2 decoding System
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
US6138186A (en) * 1998-07-20 2000-10-24 Hewlett-Packard Company Burst transfer management system utilizing pointers to ensure that there is enough space in a buffer to receive burst transfers without corrupting data
US6215486B1 (en) * 1998-07-20 2001-04-10 Hewlett-Packard Company Event handling in a single logical screen display using multiple remote computer systems
US8577205B2 (en) 1998-07-30 2013-11-05 Tivo Inc. Digital video recording system
US7558472B2 (en) 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US8380041B2 (en) 1998-07-30 2013-02-19 Tivo Inc. Transportable digital video recorder system
US6233389B1 (en) 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US6353878B1 (en) * 1998-08-13 2002-03-05 Emc Corporation Remote control of backup media in a secondary storage subsystem through access to a primary storage subsystem
US6366987B1 (en) 1998-08-13 2002-04-02 Emc Corporation Computer data storage physical backup and logical restore
US6269431B1 (en) 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US6167471A (en) 1998-10-14 2000-12-26 Sony Corporation Method of and apparatus for dispatching a processing element to a program location based on channel number of received data
US6859799B1 (en) 1998-11-30 2005-02-22 Gemstar Development Corporation Search engine for video and graphics
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6330366B1 (en) * 1998-12-21 2001-12-11 Intel Corporation Method and apparatus for buffer management in video processing
US6389494B1 (en) 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
JP3419334B2 (ja) * 1999-01-14 2003-06-23 日本電気株式会社 データ処理装置および方法
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
WO2000057635A1 (en) * 1999-03-23 2000-09-28 Koninklijke Philips Electronics N.V. Multimedia server
US6748440B1 (en) * 1999-05-12 2004-06-08 Microsoft Corporation Flow of streaming data through multiple processing modules
US6247069B1 (en) 1999-05-12 2001-06-12 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US6859846B2 (en) 1999-05-12 2005-02-22 Sony Corporation Method of distributed recording whereby the need to transition to a second recording device from a first recording device is broadcast by the first recording device
US7069571B1 (en) 1999-06-15 2006-06-27 Wink Communications, Inc. Automated retirement of interactive applications using retirement instructions for events and program states
US7634787B1 (en) * 1999-06-15 2009-12-15 Wink Communications, Inc. Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs
US7222155B1 (en) 1999-06-15 2007-05-22 Wink Communications, Inc. Synchronous updating of dynamic interactive applications
EP1065584A1 (en) * 1999-06-29 2001-01-03 Telefonaktiebolaget Lm Ericsson Command handling in a data processing system
US6742019B1 (en) * 1999-07-23 2004-05-25 International Business Machines Corporation Sieved caching for increasing data rate capacity of a heterogeneous striping group
US6728776B1 (en) * 1999-08-27 2004-04-27 Gateway, Inc. System and method for communication of streaming data
US6467028B1 (en) * 1999-09-07 2002-10-15 International Business Machines Corporation Modulated cache for audio on the web
US6704772B1 (en) * 1999-09-20 2004-03-09 Microsoft Corporation Thread based email
US7318090B1 (en) * 1999-10-20 2008-01-08 Sony Corporation Method for utilizing concurrent context switching to support isochronous processes
US6721859B1 (en) 1999-10-21 2004-04-13 Sony Corporation Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data
EP1103973A3 (en) * 1999-11-18 2002-02-06 Pioneer Corporation Apparatus for and method of recording and reproducing information
US6523108B1 (en) 1999-11-23 2003-02-18 Sony Corporation Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string
US6651113B1 (en) * 1999-12-22 2003-11-18 Intel Corporation System for writing data on an optical storage medium without interruption using a local write buffer
KR100364401B1 (ko) * 1999-12-31 2002-12-11 엘지전자 주식회사 가상 서버를 이용한 멀티미디어 서비스 시스템
US6701528B1 (en) 2000-01-26 2004-03-02 Hughes Electronics Corporation Virtual video on demand using multiple encrypted video segments
US7028327B1 (en) 2000-02-02 2006-04-11 Wink Communication Using the electronic program guide to synchronize interactivity with broadcast programs
US7631338B2 (en) * 2000-02-02 2009-12-08 Wink Communications, Inc. Interactive content delivery methods and apparatus
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
CA2403198A1 (en) * 2000-03-13 2001-09-20 Media Arts & Images Corporation Video data management, transmission, and control system and method employing distributed video segments microcasting
US7398312B1 (en) 2000-03-29 2008-07-08 Lucent Technologies Inc. Method and system for caching streaming multimedia on the internet
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US6654766B1 (en) * 2000-04-04 2003-11-25 International Business Machines Corporation System and method for caching sets of objects
US7278153B1 (en) * 2000-04-12 2007-10-02 Seachange International Content propagation in interactive television
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6757796B1 (en) * 2000-05-15 2004-06-29 Lucent Technologies Inc. Method and system for caching streaming live broadcasts transmitted over a network
IL136176A (en) * 2000-05-16 2004-02-19 Lightscape Networks Ltd Rearrangement of data streams
US8082572B1 (en) 2000-06-08 2011-12-20 The Directv Group, Inc. Method and apparatus for transmitting, receiving, and utilizing audio/visual signals and other information
US6970937B1 (en) 2000-06-15 2005-11-29 Abacast, Inc. User-relayed data broadcasting
US7720821B1 (en) 2000-06-30 2010-05-18 Sony Corporation Method of and apparatus for writing and reading time sensitive data within a storage device
US7203311B1 (en) 2000-07-21 2007-04-10 The Directv Group, Inc. Super encrypted storage and retrieval of media programs in a hard-paired receiver and storage device
US7203314B1 (en) 2000-07-21 2007-04-10 The Directv Group, Inc. Super encrypted storage and retrieval of media programs with modified conditional access functionality
US7457414B1 (en) 2000-07-21 2008-11-25 The Directv Group, Inc. Super encrypted storage and retrieval of media programs with smartcard generated keys
US8140859B1 (en) 2000-07-21 2012-03-20 The Directv Group, Inc. Secure storage and replay of media programs using a hard-paired receiver and storage device
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
US20020059499A1 (en) * 2000-09-06 2002-05-16 Hudson Michael D. System and methods for performing last-element streaming
US7103906B1 (en) 2000-09-29 2006-09-05 International Business Machines Corporation User controlled multi-device media-on-demand system
US20030069985A1 (en) * 2000-10-02 2003-04-10 Eduardo Perez Computer readable media for storing video data
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
DE60135567D1 (de) 2000-10-11 2008-10-09 United Video Properties Inc Systeme und verfahren zur bereitstellung von datenspeichern in servern in einem medien-auf-anfrage liefersystem
US6904475B1 (en) 2000-11-06 2005-06-07 Sony Corporation Programmable first-in first-out (FIFO) memory buffer for concurrent data stream handling
US6993604B2 (en) * 2000-11-15 2006-01-31 Seagate Technology Llc Dynamic buffer size allocation for multiplexed streaming
US7206854B2 (en) * 2000-12-11 2007-04-17 General Instrument Corporation Seamless arbitrary data insertion for streaming media
US7246369B1 (en) * 2000-12-27 2007-07-17 Info Valve Computing, Inc. Broadband video distribution system using segments
US7263714B2 (en) * 2001-01-18 2007-08-28 Blackarrow, Inc. Providing content interruptions
US7519273B2 (en) * 2001-01-19 2009-04-14 Blackarrow, Inc. Content with advertisement information segment
US7085842B2 (en) 2001-02-12 2006-08-01 Open Text Corporation Line navigation conferencing system
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US6973666B1 (en) * 2001-02-28 2005-12-06 Unisys Corporation Method of moving video data thru a video-on-demand system which avoids paging by an operating system
AU2002247257A1 (en) 2001-03-02 2002-09-19 Kasenna, Inc. Metadata enabled push-pull model for efficient low-latency video-content distribution over a network
JP2002268999A (ja) * 2001-03-09 2002-09-20 Toshiba Corp コンテンツ再生方法及び装置
US6941252B2 (en) * 2001-03-14 2005-09-06 Mcdata Corporation Striping data frames across parallel fibre channel links
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US20020147827A1 (en) * 2001-04-06 2002-10-10 International Business Machines Corporation Method, system and computer program product for streaming of data
US6779057B2 (en) 2001-04-18 2004-08-17 International Business Machines Corporation Method, system, and program for indicating data transmitted to an input/output device as committed
US20020157113A1 (en) * 2001-04-20 2002-10-24 Fred Allegrezza System and method for retrieving and storing multimedia data
WO2002093389A1 (en) * 2001-05-17 2002-11-21 Decru, Inc. A stream-oriented interconnect for networked computer storage
US7124292B2 (en) 2001-05-21 2006-10-17 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
BR0209696A (pt) * 2001-06-05 2004-09-14 Nortel Networks Ltd Escalonador de limite múltiplo para escalonar a transmissão de pacotes de dados para terminais móveis com base em uma relativa margem de produtividade
US7155531B1 (en) 2001-06-12 2006-12-26 Network Appliance Inc. Storage methods and apparatus for streaming media data
US6742082B1 (en) * 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
US7076560B1 (en) 2001-06-12 2006-07-11 Network Appliance, Inc. Methods and apparatus for storing and serving streaming media data
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7478164B1 (en) 2001-06-12 2009-01-13 Netapp, Inc. Methods and apparatus for pacing delivery of streaming media data
US7444662B2 (en) * 2001-06-28 2008-10-28 Emc Corporation Video file server cache management using movie ratings for reservation of memory and bandwidth resources
US7027247B2 (en) * 2001-06-28 2006-04-11 Stmicroelectronics, Inc. Servo circuit having a synchronous servo channel and method for synchronously recovering servo data
US20030005455A1 (en) * 2001-06-29 2003-01-02 Bowers J. Rob Aggregation of streaming media to improve network performance
WO2003003743A2 (en) * 2001-06-29 2003-01-09 Lightmotive Technologies Method and apparatus for synchronization of parallel media networks
US7162698B2 (en) * 2001-07-17 2007-01-09 Mcafee, Inc. Sliding window packet management systems
US7149189B2 (en) 2001-07-17 2006-12-12 Mcafee, Inc. Network data retrieval and filter systems and methods
US7277957B2 (en) * 2001-07-17 2007-10-02 Mcafee, Inc. Method of reconstructing network communications
US7296080B2 (en) * 2001-07-17 2007-11-13 Mcafee, Inc. Method of simulating network communications
US7908628B2 (en) 2001-08-03 2011-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content coding and formatting
US7793326B2 (en) 2001-08-03 2010-09-07 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator
US6947947B2 (en) * 2001-08-17 2005-09-20 Universal Business Matrix Llc Method for adding metadata to data
US7047308B2 (en) * 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
US7039955B2 (en) 2001-09-14 2006-05-02 The Directv Group, Inc. Embedded blacklisting for digital broadcast system security
US7409562B2 (en) 2001-09-21 2008-08-05 The Directv Group, Inc. Method and apparatus for encrypting media programs for later purchase and viewing
EP1436943B1 (en) * 2001-09-21 2016-11-02 The DIRECTV Group, Inc. Method and apparatus for controlling paired operation of a conditional access module and an integrated receiver and decoder
US6757694B2 (en) * 2001-10-03 2004-06-29 International Business Machines Corporation System and method for logically assigning unique names to devices in a storage system
US20030135632A1 (en) * 2001-12-13 2003-07-17 Sophie Vrzic Priority scheduler
US6839819B2 (en) * 2001-12-28 2005-01-04 Storage Technology Corporation Data management appliance
US7036043B2 (en) 2001-12-28 2006-04-25 Storage Technology Corporation Data management with virtual recovery mapping and backward moves
US20030131253A1 (en) * 2001-12-28 2003-07-10 Martin Marcia Reid Data management appliance
US7386627B1 (en) 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
ATE402553T1 (de) * 2002-04-09 2008-08-15 Koninkl Philips Electronics Nv System und verfahren zur datenübertragung mit kombiniertem herunterladen und streaming
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
US6948104B2 (en) * 2002-06-26 2005-09-20 Microsoft Corporation System and method for transparent electronic data transfer using error correction to facilitate bandwidth-efficient data recovery
US8200747B2 (en) * 2002-07-12 2012-06-12 Hewlett-Packard Development Company, L.P. Session handoff of segmented media data
US8090761B2 (en) * 2002-07-12 2012-01-03 Hewlett-Packard Development Company, L.P. Storage and distribution of segmented media data
US7403993B2 (en) * 2002-07-24 2008-07-22 Kasenna, Inc. System and method for highly-scalable real-time and time-based data delivery using server clusters
US7120751B1 (en) 2002-08-09 2006-10-10 Networks Appliance, Inc. Dynamic streaming buffer cache algorithm selection
GB2391963B (en) * 2002-08-14 2004-12-01 Flyingspark Ltd Method and apparatus for preloading caches
US8272020B2 (en) * 2002-08-17 2012-09-18 Disney Enterprises, Inc. System for the delivery and dynamic presentation of large media assets over bandwidth constrained networks
EP1535469A4 (en) * 2002-08-30 2010-02-03 Wink Communications Inc PROXY IN CARROUSEL
US7000241B2 (en) 2002-11-21 2006-02-14 The Directv Group, Inc. Method and apparatus for minimizing conditional access information overhead while ensuring conditional access information reception in multi-tuner receivers
US7225458B2 (en) 2002-11-21 2007-05-29 The Directv Group, Inc. Method and apparatus for ensuring reception of conditional access information in multi-tuner receivers
CN1320433C (zh) * 2002-12-11 2007-06-06 皇家飞利浦电子股份有限公司 用于改进磁盘调度算法的间歇缓变的方法和设备
US7093256B2 (en) * 2002-12-13 2006-08-15 Equator Technologies, Inc. Method and apparatus for scheduling real-time and non-real-time access to a shared resource
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US8131649B2 (en) 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
KR100556844B1 (ko) * 2003-04-19 2006-03-10 엘지전자 주식회사 동영상 전송 시스템의 에러 검출 방법
US7260539B2 (en) * 2003-04-25 2007-08-21 At&T Corp. System for low-latency animation of talking heads
US7533184B2 (en) * 2003-06-13 2009-05-12 Microsoft Corporation Peer-to-peer name resolution wire protocol and message format data structure for use therein
US7739715B2 (en) * 2003-06-24 2010-06-15 Microsoft Corporation Variable play speed control for media streams
JP4357239B2 (ja) * 2003-08-27 2009-11-04 三洋電機株式会社 映像信号処理装置及び映像表示装置
US7593336B2 (en) 2003-10-31 2009-09-22 Brocade Communications Systems, Inc. Logical ports in trunking
US7619974B2 (en) 2003-10-31 2009-11-17 Brocade Communication Systems, Inc. Frame traffic balancing across trunk groups
US7920623B2 (en) * 2003-11-14 2011-04-05 General Instrument Corporation Method and apparatus for simultaneous display of multiple audio/video programs transmitted over a digital link
US8996420B2 (en) 2003-11-21 2015-03-31 Intel Corporation System and method for caching data
US8185475B2 (en) 2003-11-21 2012-05-22 Hug Joshua D System and method for obtaining and sharing media content
US20060265329A1 (en) * 2003-11-21 2006-11-23 Realnetworks System and method for automatically transferring dynamically changing content
US8738537B2 (en) 2003-11-21 2014-05-27 Intel Corporation System and method for relicensing content
US7882034B2 (en) * 2003-11-21 2011-02-01 Realnetworks, Inc. Digital rights management for content rendering on playback devices
US20060259436A1 (en) * 2003-11-21 2006-11-16 Hug Joshua D System and method for relicensing content
US8521830B2 (en) * 2003-12-22 2013-08-27 International Business Machines Corporation Pull-configured distribution of imagery
JP4100340B2 (ja) * 2003-12-22 2008-06-11 ソニー株式会社 磁気記録再生装置
US7293278B2 (en) * 2004-01-13 2007-11-06 Comcast Cable Holdings, Llc On-demand digital asset management and distribution method and system
US7548624B2 (en) 2004-01-16 2009-06-16 The Directv Group, Inc. Distribution of broadcast content for remote decryption and viewing
US7599494B2 (en) 2004-01-16 2009-10-06 The Directv Group, Inc. Distribution of video content using a trusted network key for sharing content
US7580523B2 (en) 2004-01-16 2009-08-25 The Directv Group, Inc. Distribution of video content using client to host pairing of integrated receivers/decoders
US7801303B2 (en) * 2004-03-01 2010-09-21 The Directv Group, Inc. Video on demand in a broadcast network
US8688803B2 (en) * 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US7590243B2 (en) 2004-05-04 2009-09-15 The Directv Group, Inc. Digital media conditional access system for handling digital media content
US20050259751A1 (en) * 2004-05-21 2005-11-24 Howard Brad T System and a method for controlling audio/video presentation on a sink device
US20050262530A1 (en) * 2004-05-24 2005-11-24 Siemens Information And Communication Networks, Inc. Systems and methods for multimedia communication
KR101046586B1 (ko) * 2004-05-28 2011-07-06 삼성전자주식회사 디스플레이장치와 이를 이용한 디스플레이 시스템
US7228364B2 (en) * 2004-06-24 2007-06-05 Dell Products L.P. System and method of SCSI and SAS hardware validation
US8249114B2 (en) * 2004-08-10 2012-08-21 Arris Solutions, Inc. Method and device for receiving and providing programs
US7543317B2 (en) 2004-08-17 2009-06-02 The Directv Group, Inc. Service activation of set-top box functionality using broadcast conditional access system
US8086575B2 (en) 2004-09-23 2011-12-27 Rovi Solutions Corporation Methods and apparatus for integrating disparate media formats in a networked media system
US7752325B1 (en) 2004-10-26 2010-07-06 Netapp, Inc. Method and apparatus to efficiently transmit streaming media
CA2588630C (en) 2004-11-19 2013-08-20 Tivo Inc. Method and apparatus for secure transfer of previously broadcasted content
US7630318B2 (en) * 2004-12-15 2009-12-08 Agilent Technologies, Inc. Filtering wireless network packets
US20060143612A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Deskside device-based suspend/resume process
US7908080B2 (en) 2004-12-31 2011-03-15 Google Inc. Transportation routing
US20060168631A1 (en) * 2005-01-21 2006-07-27 Sony Corporation Method and apparatus for displaying content information
GB2423841A (en) * 2005-03-04 2006-09-06 Mackenzie Ward Res Ltd Method and apparatus for conveying audio and/or visual material
US8516093B2 (en) 2005-04-22 2013-08-20 Intel Corporation Playlist compilation system and method
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
US20060271948A1 (en) * 2005-05-11 2006-11-30 Ran Oz Method and Device for Receiving and Providing Programs
US7752059B2 (en) * 2005-07-05 2010-07-06 Cardiac Pacemakers, Inc. Optimization of timing for data collection and analysis in advanced patient management system
US8271549B2 (en) 2005-08-05 2012-09-18 Intel Corporation System and method for automatically managing media content
US9325944B2 (en) 2005-08-11 2016-04-26 The Directv Group, Inc. Secure delivery of program content via a removable storage medium
US8255546B2 (en) * 2005-09-30 2012-08-28 Microsoft Corporation Peer name resolution protocol simple application program interface
CN101346973A (zh) * 2005-11-08 2009-01-14 诺基亚公司 用于针对富媒体应用中的远程交互提供反馈和正向传输的系统和方法
US11128489B2 (en) * 2017-07-18 2021-09-21 Nicira, Inc. Maintaining data-plane connectivity between hosts
US9319720B2 (en) 2005-12-13 2016-04-19 Audio Pod Inc. System and method for rendering digital content using time offsets
EP1961154A4 (en) 2005-12-13 2016-03-09 Audio Pod Inc TRANSMISSION OF DIGITAL DATA
US9681105B2 (en) 2005-12-29 2017-06-13 Rovi Guides, Inc. Interactive media guidance system having multiple devices
US8607287B2 (en) 2005-12-29 2013-12-10 United Video Properties, Inc. Interactive media guidance system having multiple devices
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
US20070233816A1 (en) * 2006-04-04 2007-10-04 Odenwald Michael J Digital media management system and method
US20070245882A1 (en) * 2006-04-04 2007-10-25 Odenwald Michael J Interactive computerized digital media management system and method
EP2033350A2 (en) 2006-05-02 2009-03-11 Broadon Communications Corp. Content management system and method
TWI554053B (zh) * 2006-05-11 2016-10-11 Cfph股份有限公司 使用及管理電子檔案的方法和設備
US8001565B2 (en) 2006-05-15 2011-08-16 The Directv Group, Inc. Methods and apparatus to conditionally authorize content delivery at receivers in pay delivery systems
US8775319B2 (en) 2006-05-15 2014-07-08 The Directv Group, Inc. Secure content transfer systems and methods to operate the same
US8095466B2 (en) 2006-05-15 2012-01-10 The Directv Group, Inc. Methods and apparatus to conditionally authorize content delivery at content servers in pay delivery systems
US8996421B2 (en) 2006-05-15 2015-03-31 The Directv Group, Inc. Methods and apparatus to conditionally authorize content delivery at broadcast headends in pay delivery systems
US7992175B2 (en) 2006-05-15 2011-08-02 The Directv Group, Inc. Methods and apparatus to provide content on demand in content broadcast systems
US9225761B2 (en) 2006-08-04 2015-12-29 The Directv Group, Inc. Distributed media-aggregation systems and methods to operate the same
US9178693B2 (en) 2006-08-04 2015-11-03 The Directv Group, Inc. Distributed media-protection systems and methods to operate the same
US7624276B2 (en) 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US9218213B2 (en) * 2006-10-31 2015-12-22 International Business Machines Corporation Dynamic placement of heterogeneous workloads
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US8200961B2 (en) 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
MX2009006048A (es) * 2006-12-08 2009-08-18 Xm Satellite Radio Inc Sistema para insercion de informacion de cache localmente a flujo de difusion recibido para implementar servicios de suscripcion en hilera.
US20090019492A1 (en) 2007-07-11 2009-01-15 United Video Properties, Inc. Systems and methods for mirroring and transcoding media content
US8078729B2 (en) * 2007-08-21 2011-12-13 Ntt Docomo, Inc. Media streaming with online caching and peer-to-peer forwarding
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
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
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
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
CN101287107B (zh) * 2008-05-29 2010-10-13 腾讯科技(深圳)有限公司 媒体文件的点播方法、系统和设备
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
US7944946B2 (en) * 2008-06-09 2011-05-17 Fortinet, Inc. Virtual memory protocol segmentation offloading
US8601526B2 (en) 2008-06-13 2013-12-03 United Video Properties, Inc. Systems and methods for displaying media content and media guidance information
US8375137B2 (en) * 2008-07-22 2013-02-12 Control4 Corporation System and method for streaming audio using a send queue
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
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
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
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
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
US20110004750A1 (en) * 2009-07-03 2011-01-06 Barracuda Networks, Inc Hierarchical skipping method for optimizing data transfer through retrieval and identification of non-redundant components
US8280895B2 (en) * 2009-07-03 2012-10-02 Barracuda Networks Inc Multi-streamed method for optimizing data transfer through parallelized interlacing of data based upon sorted characteristics to minimize latencies inherent in the system
US8495423B2 (en) * 2009-08-11 2013-07-23 International Business Machines Corporation Flash-based memory system with robust backup and restart features and removable modules
US9014546B2 (en) 2009-09-23 2015-04-21 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
US8776158B1 (en) 2009-09-30 2014-07-08 Emc Corporation Asynchronous shifting windows caching for forward and backward video streaming
US8661487B2 (en) * 2009-10-12 2014-02-25 At&T Intellectual Property I, L.P. Accessing remote video devices
US8510785B2 (en) * 2009-10-19 2013-08-13 Motorola Mobility Llc Adaptive media caching for video on demand
US8934758B2 (en) 2010-02-09 2015-01-13 Echostar Global B.V. Methods and apparatus for presenting supplemental content in association with recorded content
CN101854309A (zh) * 2010-06-18 2010-10-06 中兴通讯股份有限公司 报文输出的管理方法和装置
US8635390B2 (en) * 2010-09-07 2014-01-21 International Business Machines Corporation System and method for a hierarchical buffer system for a shared data bus
US8837278B2 (en) * 2010-11-19 2014-09-16 Microsoft Corporation Concurrently applying an image file while it is being downloaded using a multicast protocol
US9021537B2 (en) * 2010-12-09 2015-04-28 Netflix, Inc. Pre-buffering audio streams
EP2487609A1 (en) 2011-02-07 2012-08-15 Alcatel Lucent A cache manager for segmented multimedia and corresponding method for cache management
WO2012157033A1 (ja) * 2011-05-17 2012-11-22 パナソニック株式会社 ストリーム処理装置
US8661479B2 (en) 2011-09-19 2014-02-25 International Business Machines Corporation Caching large objects with multiple, unknown, and varying anchor points at an intermediary proxy device
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
GB2511668A (en) * 2012-04-12 2014-09-10 Supercell Oy System and method for controlling technical processes
US20140152600A1 (en) * 2012-12-05 2014-06-05 Asustek Computer Inc. Touch display device for vehicle and display method applied for the same
US9674563B2 (en) 2013-11-04 2017-06-06 Rovi Guides, Inc. Systems and methods for recommending content
US9794135B2 (en) 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US20150156264A1 (en) * 2013-12-04 2015-06-04 International Business Machines Corporation File access optimization using strategically partitioned and positioned data in conjunction with a collaborative peer transfer system
US9471585B1 (en) * 2013-12-20 2016-10-18 Amazon Technologies, Inc. Decentralized de-duplication techniques for largescale data streams
US9547553B1 (en) 2014-03-10 2017-01-17 Parallel Machines Ltd. Data resiliency in a shared memory pool
US9781027B1 (en) 2014-04-06 2017-10-03 Parallel Machines Ltd. Systems and methods to communicate with external destinations via a memory network
US9477412B1 (en) 2014-12-09 2016-10-25 Parallel Machines Ltd. Systems and methods for automatically aggregating write requests
US9594696B1 (en) 2014-12-09 2017-03-14 Parallel Machines Ltd. Systems and methods for automatic generation of parallel data processing code
US9690713B1 (en) 2014-04-22 2017-06-27 Parallel Machines Ltd. Systems and methods for effectively interacting with a flash memory
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
US9639473B1 (en) 2014-12-09 2017-05-02 Parallel Machines Ltd. Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location
US9781225B1 (en) 2014-12-09 2017-10-03 Parallel Machines Ltd. Systems and methods for cache streams
US9753873B1 (en) 2014-12-09 2017-09-05 Parallel Machines Ltd. Systems and methods for key-value transactions
US9632936B1 (en) 2014-12-09 2017-04-25 Parallel Machines Ltd. Two-tier distributed memory
US10853182B1 (en) 2015-12-21 2020-12-01 Amazon Technologies, Inc. Scalable log-based secondary indexes for non-relational databases
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10649655B2 (en) 2016-09-30 2020-05-12 Western Digital Technologies, Inc. Data storage system with multimedia assets
US10848802B2 (en) 2017-09-13 2020-11-24 Cisco Technology, Inc. IP traffic software high precision pacer
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US10848539B2 (en) 2018-09-20 2020-11-24 Cisco Technology, Inc. Genlock mechanism for software pacing of media constant bit rate streams
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source
US10534736B1 (en) 2018-12-31 2020-01-14 Texas Instruments Incorporated Shared buffer for multi-output display systems
US11172269B2 (en) 2020-03-04 2021-11-09 Dish Network L.L.C. Automated commercial content shifting in a video streaming system
US20220070525A1 (en) * 2020-08-26 2022-03-03 Mediatek Singapore Pte. Ltd. Multimedia device and related method for a video mute mode

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679191A (en) * 1983-05-04 1987-07-07 Cxc Corporation Variable bandwidth switching system
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
EP0368683B1 (en) * 1988-11-11 1996-01-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
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
US5166930A (en) * 1990-12-17 1992-11-24 At&T Bell Laboratories Data channel scheduling discipline arrangement and method
EP0529864B1 (en) * 1991-08-22 2001-10-31 Sun Microsystems, Inc. Network video server apparatus and method
AU2313592A (en) * 1992-02-11 1993-09-03 Masato Hata Adaptive video file server and methods for its use
CA2117422A1 (en) * 1992-02-11 1993-08-19 Mark C. Koz Adaptive video file server and methods for its use
US5274642A (en) * 1992-06-05 1993-12-28 Indra Widjaja Output buffered packet switch with a flexible buffer management scheme
CA2071416A1 (en) * 1992-06-17 1993-12-18 Michel Fortier Video store and forward apparatus and method
GB2270791B (en) * 1992-09-21 1996-07-17 Grass Valley Group Disk-based digital video recorder
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
US5289461A (en) * 1992-12-14 1994-02-22 International Business Machines Corporation Interconnection method for digital multimedia communications
US5414455A (en) * 1993-07-07 1995-05-09 Digital Equipment Corporation Segmented video on demand system
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3381260B2 (ja) 1996-08-23 2003-02-24 ダイキン工業株式会社 フッ素ゴム塗料組成物

Also Published As

Publication number Publication date
JPH0887385A (ja) 1996-04-02
US5586264A (en) 1996-12-17
EP0702491A1 (en) 1996-03-20
CA2153444A1 (en) 1996-03-09

Similar Documents

Publication Publication Date Title
JP3234752B2 (ja) 媒体ストリーマ
JP3110989B2 (ja) ビデオ用に最適化された媒体ストリーマ・ユーザ・インタフェース
JP3110988B2 (ja) ビデオ用に最適化された媒体ストリーマ・データ・フロー・アーキテクチャ
JP3110987B2 (ja) 等時性データ・ストリームを生成するビデオ用に最適化された媒体ストリーマ
JP3048897B2 (ja) ビデオ最適化ストリーム・サーバ・システム
KR0184627B1 (ko) 분산형 비디오 데이타 저장 장치를 구비하고 비디오에 최적화된 매체 스트리머
US6005599A (en) Video storage and delivery apparatus and system
US5928327A (en) System and process for delivering digital data on demand
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
US5987621A (en) Hardware and software failover services for a file server
EP0701373B1 (en) Video server system
JPH09182028A (ja) ディジタル・ビデオ再生のためのスタートアップの潜伏時間を減らすための方法および装置
JP2000348468A (ja) データ記録再生装置及びデータ記録再生方法

Legal Events

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