JP2002507375A - デジタルビデオストリームをスプライスするための装置および方法 - Google Patents

デジタルビデオストリームをスプライスするための装置および方法

Info

Publication number
JP2002507375A
JP2002507375A JP55069899A JP55069899A JP2002507375A JP 2002507375 A JP2002507375 A JP 2002507375A JP 55069899 A JP55069899 A JP 55069899A JP 55069899 A JP55069899 A JP 55069899A JP 2002507375 A JP2002507375 A JP 2002507375A
Authority
JP
Japan
Prior art keywords
data stream
new data
splice
frame
new
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.)
Pending
Application number
JP55069899A
Other languages
English (en)
Inventor
ガジット、ヒレル
Original Assignee
オプチベース ユーエス、インコーポレイテッド
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 オプチベース ユーエス、インコーポレイテッド filed Critical オプチベース ユーエス、インコーポレイテッド
Publication of JP2002507375A publication Critical patent/JP2002507375A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】 スプライシングシステムは、デジタル式に符号化されたデータストリームを共にシームレスにスプライスするためのスプライサーを含む。好ましい実施例では、このスプライサーは必要な場合に初期GOPを閉じる、スプライスアウトポイントおよびスプライスインポイントに対するデータストリームのデータの連続するスプライスフバッファを分析することが好ましい。この好ましいスプライサーは更に、新データストリームの符号化/提示を整合するための新データストリームのリアルタイムのPCR値を探し、新データストリームの開始時間を整合させる。同時にスプライサーは、フレームテーブルを使ってオーバーフローを検出し、ゼロパケットを追加し、よってデータストリームのデータの部分を遅延することにより、かかるオーバーフローを訂正することが好ましい。更に、スプライサーはゼロパケットを削除し、よってデータストリームのデータの一部を加速することによって、データストリームの符号化を回復することも好ましい。別の好ましい実施例では、スプライサーはビットクロックのスケジュールオフセットを使用し、データストリームのデータの部分を遅延または加速することが好ましい。

Description

【発明の詳細な説明】 デジタルビデオストリームをスプライスするための装置および方法 発明の分野 本発明は、一般的にはマルチメディアデータストリームの処理に関し、より詳 細にはデジタル式に符号化されたマルチメディアデータストリームを共にスプラ イスするための装置および方法に関する。 発明の背景 マルチメディアの創造、処理および配信システムは技術的進歩および早期の規 格化の努力によって促進されながら、急速に勃興しつつある。例えば改良された 処理および記憶、伝送、符号化/復号化およびその他の技術はアナログ放送から デジタル放送(すなわちデジタル化された、多くはデジタル処理されたマルチメ ディアデータストリームのテレビ、ケーブル、衛星放送およびその他の配信)へ のシフトを促進しつつある。早期の規格化は相互の運用性を可能にし、よってよ り安価な、より容易に入手できるシステムおよび部品を提供しつつある。このよ うなアナログからデジタルへのシフトによる予想される利点として業界用の、よ り種々の、より高品位のプログラムおよび高品位のマス分配メディアへ消費者が アクセスできるようになったことが挙げられる。 オーディオ、ビデオ、その他のマルチメディアおよび非マルチメディア情報を 含むデータストリームの符号化および復号化のための規格として動画エキスパー トグループによって支持されている国際的に採用されたMPEG−1(ISO/ IEC11172−n)およびMPEG−2(ISO/IEC13818−n) 仕様(MPEG−2は放送用品位のビデオおよびその他のアプリケーションのた めにMPEG−1で拡張されたものである)が挙げられる。他の特徴のうちでも 、MPEG−1およびMPEG−2(以下、MPEG仕様と総称する)のような 符号化/復号化仕様はハードウェア/ソフトウェアのシステムの実装とは基本的 に独立した一連のデータストリームフォーマット、タイミング、同期化およびデ バイス能力のパラメータを定めている。言い換えれば、MPEG仕様は所定のプ ロ トコルおよび機能を実装するための実質的に制約されない(かつ希望的には進歩 し続ける)システムを可能にしながら、特定のプロトコルおよび機能について規 定している。 これらMPEG仕様およびその他の符号化/復号化規格も他の新しく出現する 技術を包含するように拡張されている。例えばオーディオ拡張規格(ISO−I EC13818−7)は、AC−3オーディオモードをMPEG−2に加えてい る。データの符号化、復号化、伝送およびその他の関連する問題のユーティリテ ィを取り扱い、促進し、および/または拡張するための国際規格として、MPE G仕様の範囲内の別の拡張も検討され、導入され、および/または採用されてい る。従って、以下、本明細書ではこれらMPEG仕様を全く同じ用語で引用する こととする。 不幸なことに上記目標を達成するための、成長しつつある基礎を提供しながら 最近の開発を後に検討することにより、MPEGおよび関連する仕様の少なくと も一部の草稿が必ず作成される。従って、改定および拡張にも係わらず、これら 規格は所定の予想されないアプリケーションおよびその他の偶発的な事項に関し て、必ず欠陥がある。例えばMPEG−2は、完全にデジタル式に符号化された データストリームのスプライシングをサポートをするための増大する条件を予想 できなかった。広義に述べれば、デジタル式に符号化されたデータストリームの スプライシングは現在あるデータストリーム内の選択された点に新データストリ ームを添付し、スプライスポイントで現在のデータストリームを置換するように なっている。放送メディアに関して、スプライシングは現在放送されているデー タストリームから新データストリームへの切り替えとして広く検討できる。例え ば他のアプリケーションのうちでも特に、進行中の映画の放送に別個に符号化さ れたコマーシャルメッセージを挿入する必要性(コマーシャルのスタート時にス プライスを必要とし、コマーシャルの終了時に映画へ戻る別のスプライスが必要 である)が存在し得る。 アナログまたは符号化されていないデジタルデータストリームを共にスプライ スする、よりストレートフォワードな作業と比較すれば、デジタル式に符号化さ れたデータストリームを共にスプライスすることに関連する問題は、より容易に 理解できよう。例えば符号化されていないデータストリームは一般に、送信され 、受信機により受信され、バッファ化され、同じ順序でディスプレイされる。更 に、符号化されていないデータストリームの各個々に示されたデータ部分、すな わちフレームは、一般に同じでないにしても、同じ量のデータを含む。従って、 2つのアナログデータストリームまたは符号化されていない2つのデジタルデー タストリームを共にスプライスするには、実質的に容易に決定できるフレームの 境界部で、あるストリームソースから第2のストリームソースへの切り替えを行 う。当技術分野でも、かかるスプライシングを実行するためのシステムおよび方 法は周知である。 これと対照的に、デジタル式に符号化されたデータストリームのフレームは、 一般にディスプレイされる順序とは異なる順序で復号器によって受信される。実 際には、異なる符号器は、かなり異なるフレームおよび情報特性を有するデータ ストリームを一般に発生する。更に、符号化の主な目的はデータストリームが他 の利点のうちでも特に伝送バンド幅が狭く、記憶スペースが少なくてすむように 、データストリームを圧縮することにある。従って、MPEG−2で符号化され たビデオデータストリームは、対応する画像(一般にIフレームと称される)を 独立して再生するための、完全なデータを含む限られた数のフレームしか有する ことなく、予測フレーム(Pフレーム)および双方向フレーム(Bフレーム)と 一般に称される他のフレームは、先に復号化されたフレームと比較することによ り、ビデオ画像を再生するために、より少ない可変量の基準データを含む。更に 、(復号化中の)復号器のバッファは連続的に復号化するために充分な数のフレ ームを連続的に含むだけでなく、復号器のバッファをオーバーフローするのに、 多くない数のフレームも含む。 デジタル式に符号化されたデータストリームを共にスプライスすることは、符 号化された各データストリームの独立した特徴によって更に複雑となっている。 各データストリームに関連した、独立した形態および同期化データの他に、従来 の符号器および復号器の仕様は、必要なタイミング、すなわちスプライスポイン トのパラメータを定めていない。かかる問題は、1つのストリームと別のストリ ームとを関連させるのに利用できるデータがないことによって更に深刻となって いる。例えば2つ以上のストリームからのデータが占有する復号器のバッファの 内容を、直接かつ信頼性高く決定するためのパラメータは全く規定されていない 。従って、連続したデータフローを維持し、バッファがアンダーフローまたはオ ーバーフローとならないように、スプライスすべき2つのストリームの各々から の充分な量のデータを復号器のバッファが含むように保証するための、直接的な サポートはない。 符号化されたデータストリームを共にスプライスすることに関連する上記およ びそれ以外の問題にも係わらず、これまで複数の解決案が提案されており、その うちの2つは既に使用されている。従来の1つの解決案はサブジェクトデータス トリームを復号化し、復号化されたフォームでスプライスを実行し、次に単一デ ータストリームとしてデータストリームを再符号化し、よって符号化されたデー タストリームをスプライスする固有の問題を有効に回避する方法がある。不幸な ことに、リアルタイムでスプライスを実行するのに充分ロバストな符号化および 復号化用ハードウェアは、高価でもある。放送用アプリケーションでは別個のデ ータストリームソースによって各テレビチャンネルが提供され、テレビチャンネ ルの任意のものは同じようなスプライシングを必要とする。従って、多数の符号 器および復号器を交換する必要性が生じやすい。 符号化されたデータストリームをスプライスするための従来から利用されてい る別の方法によれば、新データストリームの開始部に、黒くされ、ミューティン グされたビデオフレーム(リーダーフレーム)を添付する。この方法の利点とし て、リーダーフレームを発生するのに最小量のデータでよいことが挙げられる。 従って、復号器のバッファのオーバーフローは生じない。更にリーダーフレーム はデータストリームペアの正確なスプライシングよりも少ないことから生じる視 覚的アーティファクト、例えば当業者で一般にロールオーバーと称されるような ディスプレイの同期がなくなることをマスクするように働く。更にかかる方法は 、交換費用を不要にするよう、現行の符号器および復号器を使用して実行できる 。不幸なことに、スプライスはトランスペアレントではない。ディスプレイされ たデータストリームが与えられている消費者は、黒色にされたフレームに気が付 く。リーダーフレームは新しいストリームの一部、例えばコマーシャルメッセー ジを 形成するので、30秒コマーシャルに対して90万ドル以上の支払いをすること がある広告主にとって放送時間が失われることは特に問題である。(従って、各 フレームは1000ドル以上のコストとなり得る。) これらの試みにも拘わらず、動画およびテレビ協会により現在提案されている 標準化の努力(テレビのための提案SMPE規格−MPEG−2トランスポート ストリームのためのスプライスポイント)は、MPEG−2仕様への新しい拡張 を有利にするために、現在のスプライス方法を廃棄することを示唆している。こ の提案は、データストリームペアのトランスペアレントな、すなわちシームレス なスプライシングを実行することを特に目的とする、新しい、統合されたプロト コルを示唆している。広義に述べれば、提案された規格は符号化の時点でデータ ストリームにスプライスポイントおよび関連するスプライシング支持情報を直接 組み込むことを配慮するものである。不幸なことに、提案された拡張案では少な くとも現在の符号器を交換しなければならない。この案は問題をより複雑にする ので、提案された規格は批准されていない。従って、潜在的な変更だけでなく、 必ず変えられる解釈、実現、インコンパーティビリティ、所有権のある「別の拡 張案」およびその他の問題が生じやすい。 従って、新しい符号器または復号器を必要とすることなく、かつ認識でき、放 送時間を消費するアーティファクトを生じることなく、デジタル式に符号化され たマルチメディアデータストリームを共にスプライスするための装置および方法 が求められている。更に、従来の符号化/復号化仕様を変更するための条件を必 要としない、かかる装置および方法も求められている。 発明の概要 本発明は、デジタル符号化されたデータストリームを共にシームレスにスプラ イスするためのデータ処理システムに基づくスプライシングシステムを提供する ものである。特に本スプライシングシステムは、従来のスプライシングシステム に起因して生じる出費、視覚的なアーティファクトおよび放送時間の喪失を回避 しながら、現在の符号化/復号化仕様に従い、従来の符号器および復号器を使っ て旧データストリームと別個に符号化された新データストリームとのスプライシ ングを実行する。 従って、本発明の好ましい第1実施例は、より大きいMPEG−2データスト リーム処理および放送システム内のライブラリーとして機能するスプライサーを 含む。このスプライサーは更にホストアプリケーションおよびより大きいシステ ムのマルチプレクサと直接的または間接的に通信しながら更に機能する。更に多 重化されたMPEG−2データストリームチャンネルとして同時送信するための ホスト処理システム内および/またはその外部に記憶されたデータストリームを 共にスプライスするのに、いくつかのスプライサーを同時に呼び出しできる。 有利なことに、スプライサーは新データストリームのスプライスイン入力にお いてデータストリームを一致させるか、または画像のオープングループ(GOP )を閉じるのに、スプライシング中に復号化を必要とすることなく、データスト リームを調節する。このスプライサーは更にスプライシングに起因し、受信復号 器の入力バッファのオーバーフローおよびアンダーフローを防止するよう、更に 新データストリームを調節する。更に、このスプライサーはスプライシングの完 了時に別のスプライサーの介入を受けることなく、新データストリームの他の部 分を符号化されたものとして受信できるという利点を可能にする。 ホストアプリケーションからのライブラリーコールによって呼び出されると、 好ましいスプライサーは対応するスプライスバッファNのロケーション、スプラ イスインオンリー、すなわちインサートモード選択、オーディオオプション選択 および内部でスプライスを実行する、所望する旧データストリーム部分に先行す るスプライスバッファフル、すなわちスプライスバッファの数を含むセットアッ プ情報を受信する。その後、スプライサーは旧データストリームデータおよびそ の後にスプライスバッファN内に逐次入れられる新データストリームが続くスプ ライスを実行する。 好ましいスプライサーはスプライステーブルを創出し、スプライスバッファN 内の各スプライスバッファを分析し、離散的タスクおよび同時に進行しているタ スクを実行する。離散的タスクとしては、スプライステーブルを創出すること、 スプライスアウトポイントおよびスプライスインポイントを見つけること、新デ ータストリームの送信時間を決定すること、および新データストリームの受信と 旧データストリームの最終符号器のバッファの復号化とを一致させることが挙げ られる。進行中のタスクとしては、スプライステーブルにデータストリームのフ レーム情報を挿入すること、更に同時に、後のスプライスデータストリームの符 号化を変えることなく、復号器の入力バッファのオーバーフローを防止するよう 、フレーム情報を使用することも挙げられる。 データストリームの受信を一致させ、オーバーフローを防止し、すなわち訂正 するために、スプライサーは新データストリームの異なる部分を遅延し、加速す る。より詳細には、スプライサーはデータストリームの開始点前にゼロパケット を挿入することにより、データストリームの受信を遅延し、データストリームの 開始点からゼロパケットを削除することにより、データストリームの受信を加速 する。同様に、スプライサーはデータパケット前にゼロパケットを挿入すること により、オーバーフローを生じさせるデータストリームを遅延し、後のデータパ ケットからゼロパケットを削除することにより、(符号化されたタイミングをリ セットするよう)後のデータパケットを加速する。ゼロパケットを加えることは 、ホストアプリケーションに対するリターン命令によって実行され、これにより 追加が実行され、その結果は多重化および送信のためのマルチプレクサへルーテ ィングされる。遅延は繰り返しコピー操作を使ってスプライスバッファN内でデ ータパケットをシフトするよう、直接スプライサーによって実行される。 別の好ましい実施例では、新規なビットクロック機構を使用することにより、 データストリーム部分の遅延および加速が実行される。1つの特徴によれば、各 繰り返しコピーゼロパケット削除および各ゼロパケット挿入を離散的に実行する のではなく、現在のデータストリーム部分の処理が完了するまで、ゼロパケット カウントを維持する。第2の特徴では、マルチプレクサの作動レートの何分の1 かに従い伝送するための各データストリーム出力バッファを集合するようにマル チプレクサがセットされる。次にスプライサーは所定のバッファに対するゼロパ ケット追加量または削除量を決定し、これら量をホストアプリケーションに戻す 。次にホストアプリケーションはこれら量をマルチプレクサに戻し、マルチプレ クサはこの量を対応するバッファ用のスケジュールに追加する。有利なことに、 繰り返しコピー操作およびホストアプリケーションの操作が回避されるので、処 理システムのスループットを大幅に増加できる。 次の図面および明細書から本発明の上記およびそれ以外の目的、利点、利益が 明らかとなろう。 図面の簡単な説明 図1は、本発明の好ましい実施例に従ってデジタル式に符号化されたマルチメ ディアデータストリームを受信し、準備し、記憶し、検索し、送信するためのシ ステムを示す、機能的ブロック図である。 図2は、図1に示されたシステムをより詳細に示す機能的ブロック図である。 図3は、本発明に係わる好ましいスプライサーを示す機能的ブロック図である 。 図4は、本発明に係わるデジタル式に符号化された第1ストリームと、デジタ ル式に符号化された第2ストリームを共にスプライスするための好ましいフロー チャートである。 図5は、本発明に係わる、図4の好ましい方法に従って第1データストリーム 内のスプライスアウトポイントを見つけるための好ましい方法を示すフローチャ ートである。 図6は、本発明に係わる、図4の好ましい方法に従って第2データストリーム 内のスプライスインポイントを見つけるための好ましい方法を示すフローチャー トである。 図7は、本発明に係わる、図4の好ましい方法に従って第2データストリーム 内の画像のリーディングオープングループを閉じるための好ましい方法を示すフ ローチャートである。 図8は、図7の好ましい方法に従って画像のグループを閉じる際に時間的基準 を分解するための好ましい方法を示すフローチャートである。 図9Aは、MPEG−2で符号化されたストリームを復号器の入力バッファに よりこれまでどのように受信し、復号化していたかを示すグラフである。 図9Bは、本発明に係わる図4の好ましい方法に従い、連続するビデオフレー ムをディスプレイするための2つのビデオフレーム間の従来のディスプレイ操作 レートのタイミング関係を示す。 図10は、本発明に係わる図4の好ましい方法に従い、リアルタイムの新デー タストリームPCRを決定するための好ましい方法を示すフローチャートである 。 図11は、本発明に係わる図4の好ましい方法に従い、リアルタイムの新デー タストリームPCRを決定した後に、第1データストリームに関連し、第2デー タストリームを復号器の入力バッファによってどのように受信するかを示すグラ フである。 図12は、本発明に係わる図2の好ましい方法に従い、復号器の入力バッファ による第2データストリームの受信と復号器の入力バッファによる第1データス トリームの復号化とを一致させるための好ましい方法を示すフローチャートであ る。 図13Aは、本発明によりデータストリームをスプライスバッファ内に記憶す る、データストリーム内のゼロパケットを削除するための好ましい方法を示す。 図13Bは、本発明によりに係わる図12aの好ましい方法を実施した後のス プライスバッファのコンフィギュレーションを示す。 図14は、本発明により復号器の入力バッファ内に旧データストリームと共に スプライスすべき新データストリームとが同時に存在することから生じる、復号 器の入力バッファのオーバーフローを除くための好ましい方法を示すフローチャ ートである。 図15Aは、本発明により、復号器の入力バッファのオーバーフローを検出し 、これを除くための好ましい方法に従ってスプライステーブルに旧データストリ ームのフレームデータを挿入するための好ましい方法を示す、第1フローチャー ト部分である。 図15Bは、本発明に係わる図14の好ましい方法に従い、スプライステーブ ルに新データストリームのデータを挿入し、同時にオーバーフローを検出するた めの好ましい方法の第1部分を示す、図15Aに続くフローチャートである。 図15Cは、本発明に係わる図5Bに続くフローチャートである。 図16は、オーバーフローの特性を示し、本発明に係わる図15a〜図15c の好ましい方法により、オーバーフローを検出し、除去することを更に示すグラ フである。 図17は、本発明に係わる、図15a〜15cの好ましい方法に係わるスプラ イステーブルの内容例を示す。 図18は、本発明に係わる第1データストリームのオーディオスプライスアウ トポイントをセットするための好ましい方法を示すフローチャートである。 図19Aは、本発明に係わるオーディオスプライスアウトポイントの別の例を 示す。 図19Bは、本発明に係わるオーディオスプライスインポイントの別の例を示 す。 図20は、本発明に係わる、新データストリーム内にスプライスインポイント をセットするための好ましい方法を示すフローチャートである。 図21は、本発明の別の好ましい実施例により、ビットクロックを利用する好 ましいスプライサーを示すフローチャートである。 図22は、本発明に係わるオーバーフロー条件を検出し、訂正するための、図 15a〜15cの好ましい方法の改良を示すフローチャートである。 好ましい実施例の詳細な説明 明瞭にするため、本明細書で説明する実施例はMPEG−2仕様に従って符号 化されたり、復号化される、デジタル式に符号化されたデータストリーム(以下 、データストリーム)を共にスプライスすることに、主に関する。より詳細には 、この説明はコマーシャルメッセージを伴って放送される進行中のテレビプログ ラムのリアルタイムのスプライシングに焦点を合わせるものであり、このスプラ イシングは消費者の場所にあるケーブル受信機へ送信するためのケーブル放送局 で実行される。更にこの説明は、デジタル式に符号化されたマルチメディアデー タストリームを受信し、準備し、記憶し、検索し、送信するための好ましいシス テム内に埋め込まれたスプライスアプリケーションプログラムにも関する。 しかしながら、当業者であれば多くのデジタル符号化/復号化仕様が存在して おり、これら仕様は本発明を容易に実施できる(MPEG仕様の他の)仕様にも 導入できることが理解できよう。例として、欧州通信規格があるが、かならずし もこれに限定されるものではない。更に、主題のデータストリームの内容は必ず しもテレビプログラムおよびコマーシャルに限定されるものではない。むしろ、 本明細書に記載の内容はデジタル符号化を利用する広い範囲のオーディオ、ビデ オおよびその他のデータのタイプに適用できる。全体が図1に示されているよう に、本発明により、デジタル式に符号化されたマルチメディアデータストリーム を受信し、準備し、記憶し、検索し、送信するための好ましいシステム100は 、ホスト処理システム、例えばパソコン、すなわちPC内に全体が収容されてい ることが好ましい。システム100は入力デバイス110と、プロセッサ112 と、メモリ114と、記憶デバイス116と、MPEG−2符号器120と、M PEG−2復号器125と、衛星I/O130と、ケーブルI/O133と、ネ ットワークI/O135と、オーディオI/O137と、ビデオI/O138と 送信機139とを含む、電気的に結合されたハードウェア要素を含むことが好ま しい。システム100は、オペレーティングシステム140と、I/Oハンドラ ー145と、ストリームルーター150と、バッファ発生器160と、スプライ スバッファ165と、スプライサー170と、マルチプレクサバッファ180と 、マルチプレクサ190とを含む、結合されたソフトウェア要素を更に含む。 当業者であれば、本発明の範囲内ではシステム100の要素のいくつかの変形 が彼のうえあることが明らかとなろう。例えば所定のプロセッサおよびコンピュ ータの性能の変形例および進みつつある技術進歩、ハードウェア要素、例えばM PEG−2符号器120およびMPEG−2復号器125は、ソフトウェアまた はハードウェアとソフトウェアの組み合わせで具現化できる。同様に、ソフトウ ェア要素、例えばマルチプレクサ185をハードウェアまたはハードウェアとソ フトウェアの組み合わせで具現化してもよい。更に、他の計算デバイスへの接続 はネットワークI/O145としてしか示されていないが、他の計算デバイス( ローカルエリアネットワーク、ワイドエリアネットワークおよびインターネット を含むが、これらに限定されているわけではない)への有線、無線、モデムおよ び/または他の接続も利用できる。別の例としては分散処理、マルチサイトヴュ ーイング、情報転送、コラボレーション、リモート情報検索およびマージングな らびに関連する機能の各々を使用することも可能であることが挙げられる。種種 のオペレーティングシステムおよびデータ処理システムも利用できるが、少なく ともIBM(インターナショナルビジネスマシン社の商標)コンパーチブルなコ ンピュータ、またはUNIXをベースとするオペレーティングシステムで作動す るコンピュータ上で作動する従来のマルチタスクオペレーティングシステム、 例えばウィンドウズ95またはウィンドウズNT(マイクロソフト社の商標)が 好ましく、以下、本発明の説明ではこれらを想定する。入力デバイス110は、 コマンドおよび/またはデータを入力するための、任意の数のデバイスおよび/ またはデバイスタイプを含むことができ、これらデバイスにはキーボード、マウ スおよび/または音声認識が含まれるが、これらに限定されるものではない。 図2のブロック図は、本発明に係わるスプライサーが、好ましくは図1のシス テム100内のサポートアプリケーションとしてどのように好ましく作動するか を、機能的により詳細に示す。広義に説明すると、システム100は外部ソース および/または記憶デバイスからデータストリームを受け、必要に応じてデータ ストリームに対するMPEG−2の符号化を実行し、符号化されたデータストリ ームを多重化し、次に(従来の復号化により、または従来の復号化を用いること なく)、多重化されたデータストリームを記憶するよう、ユーザーの選択に従っ て作動することが好ましい。スプライシングが選択されると、システム100は 好ましくは現在送信されている(旧)データストリームおよび新データストリー ムをスプライサーへルーティングする。スプライサーは新データストリームが多 重化されたデータストリームに加えられる場合、新データストリームが旧データ ストリームのシームレスな追加された連続ストリームとして復号器によって受信 され、復号化され、提示されるよう、必要に応じてリアルタイムでデータストリ ームペアを変更することが好ましい。 より詳細には、ユーザーが情報を入力し、I/Oハンドラー145のユーザー インターフェース145aと共に、入力デバイス110、オーディオI/O13 7およびビデオI/O138を使って、従来どおり情報を入力し、出力を受信す ることが好ましい。更に、ウィンドウズのオペレーティングシステムの仕様およ びプラクティスに従って、従来どおりユーザーインターフェース145aが更に 設けられることが好ましい。ユーザーはユーザーインターフェース145aを通 してI/Oインターフェース203において利用できる(すなわち受信された) データストリームソースから多数のデータストリームソースおよび/または記憶 デバイス116から検索されたデータストリームを選択できる。I/Oインター フェース103は衛星インターフェース130およびケーブルインターフェース 133(すなわち衛星およびケーブルを介してそれぞれ送信された、データスト リームを取り扱うためのトランシーバー拡張カードおよび/または埋め込み型ハ ードウェアおよび/またはソフトウェア)、ネットワークインターフェース13 5、オーディオインターフェース137およびビデオインターフェース139を 含む。当業者であれば、デフォルト値および/または時限および/または発生に よって駆動されるスケジュール化された選択に従って、ユーザーによりデータス トリームソースおよびその他のオプションを相互対話式に選択できることが理解 できよう。 通常のシステム100の動作中、(すなわちスプライシングがない時には)ス トリームルーター150はデータストリームのタイプに従って選択されたデータ ストリームをルーティングする。より詳細には、ストリームルーターは既に符号 化されたデータストリームソースをI/Oインターフェース130からバッファ 発生器160へルーティングする。ストリームルーター150は更に符号化され ていないデータストリーム、例えば記憶デバイス116からのデータストリーム を(符号器1 220および符号器N 120が例示するような)それぞれの符 号器を通してバッファ発生器160へルーティングする。バッファ発生器160 は開始されたデータストリームの受信時に出力バッファを創出する。簡潔にする ため、通常の動作中にバッファ発生器160によって創出された出力バッファを 、本明細書では(マルチプレクサバッファ1 280が例示するような)マルチ プレクサバッファと称す。マルチプレクサバッファが創出されると、その後、バ ッファ発生器160は対応するI/Oインターフェースから受信されたデータを マルチプレクサバッファへ挿入し、更にマルチプレクサバッファが満杯となった 時、およびMPEG−2の仕様によるタイミングの検討に従って、データレディ フラグをセットする。ユーザーはそれぞれの各マルチプレクサバッファのサイズ を選択的に決定できるが、1つのマルチプレクサバッファのサイズは、一般に約 64キロバイトから47×64キロバイトの範囲であるので、少なくとも300 個のパケットを提供できる。 スプライス動作が選択されると、ストリームルーター150もデータストリー ムのタイプに従って選択された新旧データストリームをルーティングする。より 詳細には、ストリームルーター150は(再び一般的にはI/Oインターフェー ス203からの)符号化されたデータストリームを直接バッファ発生器160へ ルーティングし、(再び一般には記憶デバイス116、オーディオI/O137 およびビデオI/O138からの)符号化されていないデータストリームを、利 用可能な符号器(すなわち符号器1 220から符号器N 120)を通し、通 常の動作と同じようにバッファ発生器160へルーティングする。バッファ発生 器は更に通常の動作と同じように出力バッファを創出する。しかしながら簡潔に するため、スプライシング動作中にバッファ発生器160によって創出される出 力バッファを(例示されたスプライスバッファ、スプライスバッファN 265 およびスプライスバッファ1 265aが示すような)スプライスバッファと称 す。スプライスバッファを創出した場合、バッファ発生器160はその後、スプ ライスバッファにデータストリームのデータを挿入し、(例示したスプライサー 、すなわちスプライサーN 270およびスプライサー1 270aが示すよう な)スプライサーをスタートさせる。スプライサーはホストアプリケーションプ ログラムのうちのバッファ発生器のアプリケーション部分からのライブラリーコ ールによってスタートされたC+ライブラリーであることが好ましい。このスタ ートされたスプライサーはスプライスを実行し、値をホストアプリケーションへ 戻す。次にホストアプリケーションはステータスレディフラグを設定する前に、 スプライスバッファ内のデータを更に操作することができる。従って、広義に述 べれば、スプライサーN 270をコールすることが好ましく、このスプライサ ーは(スプライスバッファN 265内に、一度に1つのバッファフルで含まれ る)新旧データストリームペアからのデータストリームのデータを分析するよう 作動し、スプライスを実行し、次にホストアプリケーションへパラメータを戻す 。ホストアプリケーションはバッファがマルチプレクサ190によって受信され る、約0.5〜1秒前に、ホストアプリケーションがスプライスバッファN 2 65を満たし、よってバッファ内に含まれるデータに作用するのに、少なくとも 0.5秒をスプライサーN 270に与えることに留意すべきである。通常の動 作およびスプライシング動作の間、出力バッファの各々に対し、マルチプレクサ 190は連続してデータレディフラグ検査を通過するようにサイクル動作し、レ ディ ステートを検出すると、それぞれのバッファの内容を送信機139へ転送する。 送信機139はマルチプレクサバッファの内容を受信すると、出力されたバッフ ァの内容を送信し、および/または(ユーザーの選択に従ってオプションで)マ ルチプレクサバッファの内容をストリームルーター150へルーティングする。 ストリームルーター150は送信機139からのデータを受信すると、受信した データを復号器125、I/Oインターフェース103および/または記憶デバ イス116へルーティングする。 システム100によって送信された多重化データストリームを、(再放送局2 91が例示するような)1つ以上の再放送局によって受信し、再送信したり、( 受信機293および295が例示するような)消費者の受信機によって直接受信 することができる。多重化されたデータストリームに含まれるコンポーネントデ ータストリームの各々は、MPEG−2仕様に従って別個のテレビチャンネルの ためのデータソースとして受信される。スプライスされたデータストリームペア (例えばコマーシャルによってスプライスされた進行中のテレビプログラム)も 受信され、単一のMPEG−2の符号化されたチャンネルとして実質的にトラン スペアレントにスプライスされる。 現在ではシステムは各データストリームペアをスプライスするのに、約5MH zの平均バンド幅を必要とする。従って、例えば200MHzのペンティアム( インテル社の商標)プロセッサを有する従来のPCは、40個までのデータスト リームを同時にサポートできる。しかしながら、プロセッサ、バックプレーン、 メモリ、記憶デバイスおよびシステムのソフトウェアの進行する改良だけでなく 、更なる可能性のあるシステム100の最適化を考慮すれば、更にスループット が増加する可能性がある。システム100は更に適当な同期化ソースを設けるこ とにより、更に増加した数のデータストリームを処理するよう、他のシステムと 更に同期化できる。 特にMPEG−2仕様によってカバーされていない条件に関連し、特定の受信 機のハードウェア/ソフトウェアコンフィギュレーションおよび機能性は大幅に 変わり得る。しかしながら、各受信機は復号化のための完全なハードウェアおよ び/またはソフトウェアシステムを含む。送信信号は多重化されたデータ信号と して受信されるので、各受信機はデマルチプレクサ(図示せず)を含む。各デー タストリームは多重化されたビデオおよびオーディオデータを更に含むので、各 受信機はサポートされた数のデータストリームチャンネルの各々に対し、コンポ ーネントデータストリームのオーディオービデオデマルチプレクシング機能(図 示せず)を更に含む。各受信機はMPEG−2で符号化されたオーディオおよび ビデオデータを復号化するための復号器を各チャンネルに対しても含む。例えば ビデオ復号器293aおよびオーディオ復号器293bは、単一のMPEG−2 の符号化されたデータストリームのための、かかる必要な復号器のペアを示す。 (各バッファのサイズ、または別に表現すれば各バッファが含むデータ量は受信 機ごとに異なることがある。)各復号器は復号化前にそれぞれの多重分離された ビデオまたはオーディオデータを受信するための入力バッファ(図示せず)と、 復号化されたビデオまたはオーディオデータを受信し、オーディオ−ビデオ表示 を再構成する(すなわちビデオおよび他のデバイスへ出力するための再構成)た めの対応するフレームバッファとを含む。 図3および4は、図2を参照しながら本発明に係わる好ましいスプライサおよ びスプライシング方法を一般に示す。簡潔にするため、次の説明は、処理のため のシステム100に対しては2つのデータストリーム(新旧データストリーム) しか与えられないと見なす。従って、スプライサー、スプライサーN 270( 図2)および1つの出力バッファ、スプライスバッファN 265についてしか 説明しないことにする。当業者であれば、本明細書に記載の説明を鑑みれば、別 の出力バッファとスプライサーの組み合わせは同じように好ましく作動すると理 解できよう。 図3のブロック図に示されるように、スプライサーN 270は好ましくはス プライスエンジン310、シーケンスファインダー320、フレームファインダ ー330およびパケットフィルタ340、GOPファインダー350、パケット シフター360およびフレームテーブル370を含む結合要素を含むことが好ま しい。広義に述べれば、スプライスエンジン310は好ましくはフレームテーブ ル270を創出し、これにデータを入れ、他のスプライサーN 270の要素の 演算を利用するものである。シーケンスファインダー320、フレームファイン ダー330、パケットファインダー340およびGOPファインダー350は、 MPEG−2で符号化されたデータストリームからそれぞれシーケンス、フレー ム、パケットおよびGOPデータを検索する。パケットシフター360は、シー ムレススプライスのスプライサーN 270を使って創出するためのタイミング の不一致を解決することが好ましい。バッファのオーバーフロー状態を決定する ためにフレームテーブル370を使用することが好ましい。 図4のフローチャートは図2および3を参照して本発明に係わる好ましいスプ ライス方法を示す。上記のように、ホストアプリケーションからの呼び出しによ ってスプライシングを開始することが好ましい。ホストアプリケーションが満た すスプライスバッファN 265に比例したホストアプリケーションからの呼び 出しは、スプライサーN 270を開始(すなわち立ち上げ、呼び出し、例示) する。この呼び出しは更にホスト処理システム内のスプライスバッファN 26 5のロケーション(または外部である場合はスプライスバッファの外部ロケーシ ョン)を含み、ホストアプリケーションが所定の回数でスプライスバッファN 265を満たした時に、スプライスを実行すべきことを表示する。言い換えれば 、ホストアプリケーションによりスプライサーN 270へ送られるバッファロ ケーションパラメータはバッファロケーションを示すが、スプライサーN 27 0へ送られる別のパラメータはスプライサーN 270が旧データストリームを 終了させる「スプライスバッファフル」を示す。ホストアプリケーションは更に 、旧データストリームの最終スプライスバッファフルをスプライスバッファN 265へ送る際に、スプライスバッファN 265を新データストリームのスプ ライスバッファフルで満たし始める。スプライスバッファN 265のサイズお よびスプライシングの開始は、ユーザーが選択可能であることが好ましいが、バ ッファN 265は一般に約300キロバイトのデータを収容でき、バッファの スタート後、約50ミリ秒でスプライシングが開始する。 当業者が本明細書の内容を検討すれば、スプライサーN 270と別個の処理 システムにより更にデータストリームソースおよび/またはホストアプリケーシ ョンを処理でき、および/またはスプライサーN 270をライブラリーでない スタンドアローンのプロセスまたはサブプロセスとして実現できることが理解で きよう。しかしながら、スプライスをリアルタイムで完了するための、データを 取り扱う条件がロバストでなければならないので、1つの処理システム内に完全 に統合し、ライブラリーを使用することが好ましい。しかしながら、ライブラリ ーを用いる場合、多数の同時スプライシング動作を配慮するように、多数のかか るプロセスまたはサブプロセスをサポートすることが好ましい。説明が進むにつ れより明らかとなるように、ホストアプリケーションにより創出され、満たされ 、スプライサーが必要とするように変更される単一のスプライスバッファは、ロ バストな動作をする必要性があるために同じように利用される。例えば、多数の バッファ(すなわち多数のロケーションポインタおよび隣接していないデータロ ケーション)の管理および(例えば多数のスプライサー入力バッファから別個の スプライサー出力バッファへの)バッファのコピーを回避することは、スプライ シングを実行するための処理システムのスループット条件を最小にすることを助 ける。 図示するように、工程405ではスプライサーN 270が発生し、フレーム テーブル370(図3)にデータを挿入し始める。ステップ410では、スプラ イサーN 270はスプライスの前で旧データストリームの送信を終了する旧デ ータストリーム内のデータロケーション(以下、旧データストリームのスプライ スアウトポイントまたは単にスプライスアウトポイントと称す)を探す。ステッ プ420では、スプライサーN 270は新データストリームの送信を開始する 、新データストリーム内のデータロケーション(以下、新データストリームのス プライスインポイントまたは単にスプライスインポイントと称す)を探す。ステ ップ430で、スプライサーN 270は新データストリームの送信を開始すべ き時間(以下、リアルタイムの送信開始ポイントと称す)を決定し、ステップ4 40でスプライサーN 270は最終の旧ストリームバッファの復号化を開始す るのと同時に、受信機の復号器によって新データストリームを受信するのが好ま しいように、新データストリームを整合し、ステップ450でスプライサーN 270は復号器のバッファのオーバーフロー状態を検出し、訂正する。 スプライシングの完了後、スプライサーN 270は呼び出しアプリケーショ ンへパラメータを戻すことが好ましい(すなわち呼び出しアプリケーションのバ ッファ発生器のサブプロセス)。この呼び出しアプリケーションは更にスプライ スバッファN 265の内容を操作でき、次に既に述べたように、データレディ フラグをセットする。その後、スプライサーN 270はPCR不連続パケット をセットできる。 次の説明から明らかとなるようにスプライサーN 270は送信後、オーバー フロー状態が発生しないよう、スプライシング全体にわたってフレームテーブル 370を使用し、送信に先立つ潜在的な復号器の入力バッファのオーバーフロー 状態の発生を検出し、これを除く。バッファ発生器160(図2)が旧データス トリーム、次に新データストリームからの対応するデータの別のバッファフルで スプライスバッファ265を満たし続ける際に、スプライサー270は同時にス テップ410〜450も実行する。例えばスプライサーN 270は旧データス トリームのスプライスアウトポイントを探すが、他方、スプライスバッファN 265は旧データストリームの最終部分を含む。スプライサーN 270は、ス プライスバッファN 265が新データストリームの第1部分を含む際に、新デ ータストリームのスプライスインポイントを探し、次々に同様のことを行う。説 明を簡潔にするため、復号器の入力バッファのオーバーフローの検出および除去 (ステップ450)に関連する、対応する説明のために、フレームテーブル37 0の創出および挿入については保留する。更に説明を簡潔にするため、オーディ オスプライシングを行うことだけに注目しながら、好ましいビデオスプライシン グについてまず検討する。次にオーディオスプライシングについて別個に説明す る。 図5は、旧データストリームの最終スプライスバッファフルを受信した際に、 好ましいスプライサーN 270がどのようにして旧データストリームのビデオ スプライスアウトポイントを探すかを示す。図示するように、スプライサーN 270は多数の作動モードを提供することが好ましく、このモードのうちの各々 は呼び出しアプリケーションによって特定できる。挿入作動モードでは、スプラ イサーN 270は、例えば進行中のプログラム(例えば映画)内にコマーシャ ルメッセージを挿入すべき場合、旧データストリームに後のスプライスが先行す るように、スプライスを実行する。映画はコマーシャルメッセージの後に上映が 続くので、映画のデータストリームの送信を中断する好ましいポイントは、不連 続ポイント、すなわちスプライスアウトポイントの直後に、後に映画の送信を再 開するのを容易にするポイントとなる。これと対照的に、スプライスオンリーモ ードでは、スプライサーN 270は旧データストリームを後に連続させる問題 を生じることなく、アイソレートされたスプライスを実行する。かかるスプライ スオンリーモードは、別個に符号化されたプリ録画された映画の終了時またはラ イブの放送中のような状況で一般に選択されるので、ユーザーは(エクストラフ レーム前の)早期スプライスポイントを探すことが特に望ましくなるように、ビ デオデータのエクストラフレームを含むようなライブ放送の最終スプライスバッ ファフルを選択してもよい。 図示されるようにステップ510で挿入モードが選択されている場合、スプラ イサーN 270はステップ520でシーケンスヘッダーの開始前に旧データス トリームのスプライスアウトポイントを探す。この代わりに、ステップ510で スプライスオンリーモードが選択されている場合、スプライサーN 270はス テップ530でシーケンスヘッダー、GOPヘッダー、IフレームまたはPフレ ームが最初に発生する直前の、旧データストリームのスプライスアウトポイント を探す。次にステップ540で、スプライサーN 270はスプライスポイント に先行するバイトとして、送信のためのスプライスバッファN 265内のバイ トをセットする。後に説明するように、スプライサーN 270は旧データスト リームのオーディオスプライスアウトポイント(図示せず)を探すのに、旧デー タストリームのビデオスプライスアウトポイントを使用する。 スプライサーN 270は作動的には、シーケンスファインダー320、GO Pファインダー350またはフレームファインダー330を含むデータタイプの ファインダーのそれぞれを使って(最初に受信されたデータでスタートする)ス プライスバッファN 265に含まれるデータを分析することにより、シーケン スヘッダー、GOPヘッダー、IフレームまたはPフレームを探すことが好まし い。各データタイプのファインダーは、後により詳細に説明するように、MPE G−2の仕様に従ってそれぞれのデータタイプを探すためのステートマシンを含 む。スプライサーN 270は(サーチ中の)スプライスポイントに先立ち、ス プライスバッファN 265内に含まれるデータバイト数をカウントし、ホスト アプリケーションがマルチプレクサへ送るべきスプライスバッファN 265内 のデータバイトの数として、このデータバイトの数をホストアプリケーションへ 戻すことにより、送信のためのバイトを更にセットする。ホストアプリケーショ ンはこの情報を受け取った時に、スプライスバッファ265内の(スプライスポ イント後の)残りのバイトを一般に無視する。 図6〜8は、図3を参照しながら、好ましいスプライサーが新データストリー ム内のビデオスプライスインポイントをどのように探すかを示す。説明するよう に、ホストアプリケーションは(スプライサーN 270の呼び出し時に)旧デ ータストリームの終了部分を含むスプライスバッファフルを示す。従って、次の スプライスバッファフルを示す。従って、その後のスプライスバッファフルは、 新データストリームデータの第1部分を含む。広義に説明すれば、スプライサー N270は新データストリームのスプライスポイントを決定するよう、スプライ スバッファN 265内に含まれるデータストリームのデータを再び分析する。 まず、MPEG−2仕様の所定の特徴を参照することによって、スプライサーN 270の作動の細部についてより容易に理解できよう。 MPEG−2仕様は連続するビデオストリームを一連のシーケンスとして符号 化することを配慮したものである。各シーケンスは更に画像のグループ(GOP )に分割され、各GOPは一連の符号化されたビデオフレームを含む。各シーケ ンスはシーケンスヘッダーを含み、各GOPはGOPヘッダーを含み、各フレー ムはフレームヘッダーを含む。更に説明するように、各シーケンスは少なくとも 10のプログラムクロック基準、すなわちPCRを含む。更に、各データストリ ームは隣接するが、必ずしも連続しない一連のパケットとして送信され、各パケ ットはパケットヘッダーを有する。各MPEG−2で符号化されたビデオフレー ムは、ビデオデータおよびフレームタイプのフィールド(すなわちI、Bまたは Pフレーム)の他に、タイミングおよび相対的順序情報を更に含む。フレームタ イミング情報は(フレームごとに)復号化時間スタンプ、すなわち(受信したフ レームを復号化する時間を示す)DTSフィールドと、対応するプレゼンテーシ ョン時間スタンプ、すなわち(復号化されたフレームをディスプレイに与える 時間を示す)PTSフィールドとを含む。フレーム相対順序情報は(フレームご とに)(同じGOP内の他のフレームと比較してフレームをディスプレイすべき 順序を示す)時間基準フィールドを含む。 しかしながら、データストリーム内に含まれる多量の識別情報にも拘わらず、 MPEG−2の符号化は、多くは容易にアクセスできない態様で、単一の符号化 されたデータストリームに関する情報しか与えない。例えばMPEG−2仕様は 上記情報の可変順序およびGOP間、およびパケット間のかかる情報の分布を配 慮したものである。特にデータストリーム内では第1シーケンスヘッダーの次に (第1GOPに対する)GOPヘッダーが続かなければならず、次にフレームヘ ッダーの前のほぼ任意の場所に(GOPに含まれる最初のフレームのための)フ レームヘッダー、DTSおよび最初のフレームのためのPTSペアが位置できる 。後に明らかとなるように、スプライスポイントを探し、新データストリームと 旧データストリームとのリアルタイムの整合を助ける双方のために、スプライサ ーN 270によりこのDTSとPTSペアとを使用することが好ましい。 次に図6を参照すると、スプライサーN 270は新データストリームの第1 ビデオフレームのために、まずDTSおよびPTSを探すことにより、スプライ スを実行することが好ましい。スプライサーN 270はステップ610で新ス トリームの第1シーケンスヘッダーをまず探し、次にステップ620で(第1ビ デオフレームに対するフレームヘッダーとなる)第1フレームヘッダー前の最終 DTSを探し、記憶し、次にステップ630内のDTSに対応するPTSを探し 、記憶することにより、このDTSとPTSペアを探す。次にステップ640で 、スプライサーN 270は新ストリームの最初に提示されたフレームがIフレ ームとなることを保証する。より詳細には、新データストリームの新GOPがオ ープンである場合、スプライサーN 270はGOPを閉じる。最後に、ステッ プ650で、スプライサーN 270はオーディオスプライスインポイントを探 す。(説明を簡潔にするため、ビデオに関連する説明を完了した後に、オーディ オスプライスインおよびスプライスアウトについて説明する。) スプライサーN 270はシーケンスファインダー320(図3)をスタート させることにより作動的にシーケンスヘッダーを探すことが好ましい(ステップ 610)。シーケンスファインダー320はシーケンスヘッダー符号の最初の発 生に対し、スプライスバッファN 265に含まれる新データストリームのデー タを分析するステートマシンであることが好ましい。各シーケンスヘッダー符号 は数列「000001B3(16進)」としてMPEG−2仕様によって定義さ れる。同様に、スプライシングエンジンは先のDTSおよびPTS(すなわち新 データストリームの第1フレームに対するDTSおよびPTS)に対する新デー タストリームのデータを分析する。当業者が本発明の内容を検討すれば、スプラ イスインポイントは新データストリームの第1フレーム以外のフレームとして別 個に選択できることが理解できよう。例えば完全なコマーシャルメッセージのう ちの後方部分だけを再生したい場合、かかる別のフレームが必要となり得る。か かる場合、ユーザーは望ましいグロススタート時間(この時間からスプライサー N 270は更にスプライスインポイントを決定する)を指定するか、またはュ ーザーはスプライスインポイントを直接指定できる。 図7および8はスプライサーN 270が新データストリームの第1オープン GOPを好ましくどのように閉じるかを示す(図6のうちのステップ540)。 符号化仕様、特にMPEG−2はビデオ画像またはフレーム(すなわちIフレ ーム)を再創出するように、自ら十分なデータを含むフレームで各GOPを開始 すべきことを一般に求めない。ビデオ画像を再創出するために、先行するGOP からのフレームを必要とする第1フレームを有するGOPは、一般にオープンG OPと称される。例えば新データストリームを編集し、スプライシング前に記憶 した場合(ブロークンリンク)、オープンGOPが発生し得る。適当な符号化を 仮定すると、オープンGOPには常に対応するIフレームを含むGOPが先行し 、よってオープンGOPの従属したフレームを再創出できるが、新データストリ ームの第1GOPに関連し、かかるIフレームは存在しない。従って、スプライ サーN 270は新データストリームの最初に提示されたフレームがIフレーム となることを保証する。 オープンGOPを閉じるための、スプライサーN 270が利用する方法では 、オープンGOPの第1フレームが依存するフレームおよびその第1フレーム自 身を復号化することを行う。次に第1フレームはIフレームとして再符号化され る。 不幸なことに、かかる方法はリアルタイムのプロセッサに基づくシステムでは専 用ハードウェアを増設すること、および/または必要なスループットの点で高価 である。従って、GOPを閉じるためのこの別の方法は、絶対的な精度が望まれ るアプリケーションに合わせたオプションとしてしか提供されない。 しかしながら、先のオープンGOP内の残りのフレームを更に最小限だけ変更 しながら、従属するリーディングフレーム(すなわちBフレーム)を再構成する のではなく、これを削除することにより、オープンGOPを別の方法で閉じるこ とができることが判っている。削除されたビデオフレームによって示される画像 が失われ、新データストリームの長さが影響されるが、GOPを閉じるのに必要 な最小処理時間を考慮すれば、一般に66ミリ秒の喪失が許容できることが判っ ている。(図6および7に示されるような、この好ましい方法によれば、新デー タストリームのうちの前方のオープンGOP以外のすべてのGOPは無変更のま まである。) 次に図7を参照すると、ステップ610において、新データストリームの第1 GOPがオープンGOPである(すなわちGOPの第1フレームはIフレーム以 外のフレームである)場合、ステップ720において、まずスプライサーN 2 70はすべてのリーディング非Iフレームを削除する。次に、ステップ730で スプライサーN 270はGOP内の他のフレームの各々に対する時間基準を訂 正し、最後にスプライサーN 270はステップ740でGOPの第1Iフレー ムのうちのDTSをステップ620内で削除されたフレームのうちの最大DTS に置換する。 図8のフローチャートは更に、本発明により時間基準をどのように置換するの が好ましいかを示す。図示されるように、ステップ810で最後の削除されたフ レームの後で、GOP内により多数のフレームが残っている場合、スプライサー N 270はステップ820で(現在のフレームを示す)GOP内の次のフレー ムヘッダーをまず探す。次にスプライサーN 270はステップ830で現在の フレームに対する対応する時間的基準を探す。最後にスプライサーN 270は ステップ840内で時間基準から削除したフレーム数を引いた値に置換し、次に ステップ710へリターンする。 作動上、スプライサーN 270(図3)は、フレームファインダー330を 開始することにより、次のフレームを探すことが好ましい。フレームファインダ ー330は、フレームヘッダーの次の発生に対し、スプライスバッファN 26 5に含まれる新データストリームのデータを分析するステートマシンであること が好ましい。各フレームヘッダーはMPEG−2仕様によって数列「00000 100(16進)」として定められる。 例えば図7および8に示される好ましい方法に従って、次のオープンGOPが 閉じられる。 時間基準: 2 0 1 5 3 4 フレームタイプ: I B B P B B DTS: −1 0 1 2 3 4 まず、2つのリーディングBフレーム(すなわち時間基準番号0および1)を 削除し、IフレームおよびGOP内でIフレームに続く2つのBフレームを残す 。 時間基準: 2 5 3 4 フレームタイプ: I P B B DTS: −1 2 3 4 次に、最初に削除されたフレームに対する時間基準で開始しながら、他のフレ ームに対する時間基準を逐次置換する。 時間基準: 0 3 1 2 フレームタイプ: I P B B DTS: −3 0 1 2 最後に、リーディングIフレームのうちのDTSを削除されたフレームのうち の最大のDTSに置換する。 時間基準: 0 3 1 2 フレームタイプ: I P B B DTS: −1 0 1 2 図9a〜図10は、スプライスインポイントを探した後に、本発明に係わる好 ましいスプライサーが、好ましくは新しいデータストリームに対する新ストリー ムのリアルタイムの送信スタート時間をどのように探すかを示す(すなわち図4 のステップ420)。所定の観察されたMPEG−2仕様のダイナミックスを簡 単に検討することは、本発明の好ましい実施例に従ってシームレススプライスを どのように提供するかを良好に理解する上で役に立つはずである。 図9AのグラフはMPEG−2仕様が考えた状況下(すなわちスプライシング がない場合)で、例えば消費者の受信機によってMPEG−2で符号化された新 データストリームがどのように受信され、復号化されるかを示す。このグラフは 時間に対する増加する垂直位置として、復号器の入力バッファによって受信され る、ある量のデータを示し、垂直位置は水平軸に沿って左から右へ増加する。傾 斜した曲線の線分910〜910dが示す時間中、データは復号器の入力バッフ ァによって受信されるが、垂直直線線分920〜920dによって示される時間 に復号化が行われる。 図示されるようにt1における新データストリームの最初の受信からt4にお ける(フレームのDTSに従った)第1フレームの復号化までの間に遅延がある 。t2における第1フレームの受信から(フレームDTSに従った)第1フレー ムの復号化までの遅延は、最初のフレーム(および各連続するフレーム)内のデ ータフィールドによって示されるが、データストリームの受信から第1フレーム の符号化までの実際の時間は、時間t1〜t2およびt3〜t4までの初期シー ケンスヘッダーのそれぞれの受信および復号化も含む。 図9Bはロールオーバーと一般に称されるビデオアーティファクトを発生する ことなく、動画ビデオをディスプレイするには、1つのビデオフレームに対する 走査時間に等しい、第1フレームに対するディスプレイの開始から次のフレーム に対するディスプレイの開始までの間で、一定の既知の遅延が生じなければなら ないことを更に示している。例えばNTSCの符号化ではフレーム間遅延時間は 約33ミリ秒である。従って、送信から復号化までの遅延時間(従って受信から 復号化までの遅延時間)を考慮し、フレーム間ディスプレイ遅延時間に比例した 新ストリームのディスプレイを保証する信頼できるタイミング基準を設けること によって、シームレススプライスを得ることができることが判っている。 図10のフローチャートは、好ましいスプライサーが新データストリームのリ アルタイムの送信開始時間をどのにように決定するかを示している(図4のステ ップ420)。広義に説明すれば、ステップ1010および1020は、新スト リームノミに関連する値を発生するが、ステップ1030〜1050は旧データ ストリームに対応する新データストリームの送信時間を設定するのにこれら値を 利用する。より詳細に説明すれば、ステップ1010でスプライサーN 270 は新データストリームの新パケットに対するPCR(PCR(new))を検索 し、ステップ1020でスプライサーN 270は次の式が示すような新データ ストリームの第1シーケンスヘッダーに対する送信時間から(初期に記憶されて いた)新ストリームの第1フレームの復号化時間スタンプ(DTS(new)) までの時間差(delta(new))を計算する。 delta(new))=DTS(new)−PCR(new) ステップ1030ではスプライサーN 270は旧データストリームのうちの 最終フレームの復号化時間スタンプ(DTS(old))に対しスプライスバッ ファN 265内に含まれる旧データストリームのデータを分析する。ステップ 1040では、スプライサーN 270は新データストリームに対する連続ディ スプレイ復号化時間スタンプ(DTS(continuous))をステップ1 030内で見つかったDTS(old)と(以下の説明でギャップとも称す)フ レーム間遅延時間との和として計算する。 DTS(continuous)=DTS(old)+フレーム間遅延時間 NTSCの場合、この式は次のようになる。 DTS(continuous)=DTS(old)+1001/30,00 0秒 最後に、ステップ1050で、スプライサーN 270はステップ1040で 決定された連続ディスプレイDTSとステップ1020で見つけられた送信遅延 時間、すなわちデルタとしてリアルタイミウの新ストリームPCR(PCR (new−RT))を計算する PCR(new−RT)=DTS(continuous)−delta(n ew) 図11のグラフは、図10に示されるような新データストリームのリアルタイ ムの送信スタート時間を決定するための好ましい方法によって得られる結果を、 一例の復号器の入力バッファの内容によって示す。簡潔にするために、グラフの 上方部分および下方部分にそれぞれ別個に、旧データストリーム1101および ポテンシャル新データストリームの変化1102a〜1102cが示されている 。図示するように、上方グラフ部分および下方グラフ部分の各々は、左から右に 増加する際の水平軸に沿った時間の経過および(変更されていない図8aにおい て単一のMPEG−2で符号化されたデータストリームのグラフのように)垂直 位置が増加する場合に増加する入力バッファの内容を示す。更に、旧データスト リーム1101に対する垂直曲線部分1110および1120a〜cおよびポテ ンシャル新データストリームの変化1102a〜1102cのそれぞれによって DTS値に従った復号化が示されており、例えば旧データストリーム1101に 対する曲線部分1112および1113によって復号化の間のデータストリーム のデータの受信が示されている。しかしながら、好ましいスプライサーによれば 、新データストリームおよび旧データストリームの図示された部分は、復号器の 入力バッファによっては送受信されないことに留意すべきである。むしろグラフ に示したデータは単に説明のために示したものである。 図示されるように旧データストリームの最終DTS値(+フレーム間遅延時間 、すなわちギャップ)および新ストリームの第1DTSに関連し、リアルタイム の新ストリームPCRを決定することは、まずこのデータストリームのペアを一 致するように働く。言い換えれば、リアルタイムの新ストリームPCRは、旧ス トリームの最終フレーム1103を復号化した約33ミリ秒(1001/30m 秒)の後で、(NTSCの場合に)新ストリームの第1フレームを復号化させる 。同様に、新ストリームの第1PTSも、リアルタイムの新ストリームPCRに 従って決定される。よって、NTSCの符号化に対しては旧ストリームの最終フ レームがディスプレイされた約33ミリ秒後に、新データストリームの提示およ び ディスプレイが開始する。従って、新データストリームはロールオーバーのよう なかかる視覚的アーティファクトを生じることなくディスプレイするよう、シー ムレスに復号化され、定義される。 スプライサーN 270は、新データストリームの第1シーケンスヘッダーを 探すために、シーケンスファインダー320(図3)をスタートさせることによ り、フレーム間ギャップ1130を決定する。次に、スプライシングエンジン3 10はMPEG−2の仕様に従ってシーケンスヘッダー内に含まれるフレームレ ート値を探し、次のようにギャップ1130を計算する。 1/(フレームレート符号によって示されるフレームレート) MPEG−2仕様によるフレームレート符号は次のフレームレート符号−フレ ームレート値変換テーブルによって示される。 スプライサーN 270は更に、新データストリームの第1フレームの送信か ら復号化までの実際の、すなわちリアルタイムの遅延時間に従って、リアルタイ ムの新ストリームPCRを決定することも留意すべきである。従って、新データ ストリームの符号化に従って(すなわちスプライシングがない場合にMPEG− 2が考えた別個の送受信に従うように)新データストリームのデータのいずれも 、復号器による受信をするように送信される。データストリーム部分の関係を保 留することは特に重要である。その理由は、既に説明したように、適当なMPE G −2の符号化によって正しい復号化および提示の双方だけでなく、正しいデータ フローも保証するからである。換言すれば、他の特徴のうちでも特にMPEG− 2の符号化を守ることによってデータストリームのデータはデータバッファをオ ーバーフローまたはアンダーフローさせないように保証されるはずである(デー タストリームが正しく符号化されていることを前提とする)。従って、符号化中 に設定されるデータ部分の関係の変更を防止することにより、好ましいスプライ サーはスプライスを完成した後にかかる変更の結果として生じ得る誤りを訂正す ることを不要にする。むしろ、少なくとも好ましいスプライサーに関し、スプラ イスに続く符号化に従って新データストリームが復号化され、提示され続ける。 しかしながら不幸なことに、図11は旧データストリームを完全に復号化する 前に復号器の入力バッファ内に新データストリームのデータが存在することは問 題となり得ることも示している。第1に、旧データストリームのデータの最終バ ッファフルを復号化する前後で、新データストリームのデータの復号器の入力バ ッファ自身を開始できる。第2に、新データストリームのデータは復号器の入力 バッファをオーバーフローさせるほど、かなりの量になり得る。問題を更に悪く するには、旧データストリームデータの最終フレームを復号化する前に所定時間 内の種々のポイントでかかるオーバーフローが生じる。 図示されるように、時間t2までに旧データストリーム1101は復号器の入 力バッファによって受信される。時間t2〜t4の間で、(復号器によって受信 された)残りの旧データストリームのデータのすべてが復号化されるまで復号器 の入力バッファ(すなわち、オールドデータストリームの最後のバッファ)内の 他の残りの旧データストリームのデータは単に復号化されるだけである。第1の 問題(すなわち新データストリームのスタートと旧データストリームの最終バッ ファの開始とを不整合とすること)は、ポテンシャルの新データストリーム11 02に関し、第1の問題(新データストリームのスタートと旧データストリーム の最終バッファ内のスタートとの不一致)はポテンシャル新データストリームに 関し、存在しない。しかしながら、時間t2の前に生じる潜在的な新データスト リーム1102b(すなわち初期のデータストリーム)によって示されるように 、新データストリームの初期の受信が早期に生じるようにすることができる。不 幸 なことに、早期データストリームデータが存在することは、(旧データストリー ムのデータの進行中の受信と組み合わせて)オーバーフローを生じさせるだけで なく、同じチャンネルでの多数のデータストリームの並列な送信および受信もM PEG−2の仕様を破っている。潜在的新データストリーム1102c(すなわ ち最終データストリーム)も旧データストリーム1101の復号化と共に時々は 時間t2後に生じさせることによりアンダーフローが生じるという問題を有する 。 図12のフローチャートは、本発明に係わる好ましいスプライサーがどのよう にして本発明に係わる好ましいスプライサーが新データストリームのデータの復 号器の入力バッファの受信の開始時と旧データストリームの最終バッファの開始 時とを整合させるかを示している。広義に述べれば、新データストリームが早期 のデータストリームタイプ(例えば図11の曲線1102b(である場合、スプ ライサーN 270は、新データストリームのデータの送信を遅延する(等価的 に復号器による遅延を受信する)。その代わりに、新データストリームが最近の ストリームタイプ(図11の曲線1102c)である場合、スプライサーN 2 70は新データストリームのデータの送信を加速する。(等価的には、復号器に よる受信を加速する。)より詳細には、スプライサーN 270は好ましくは新 データストリームの送信の開始前にゼロパケットを加えることにより、新データ ストリームのデータを遅延するか、またはデータストリーム内に符号化されてい るゼロパケットを削除することにより、新データストリームの遅延する。スプラ イサーN 270は後に説明するように、スプライシング中に後で使用するため の、増設された、削除されたゼロパケットの総数を記憶することが好ましい。 図示されるように、ステップ1210ではスプライサーN 270は追加変数 (ゼロカウント)を初期化し、ステップ1215でスプライサーN 270は旧 データストリームの送信の終了点を探す。ステップ1220で、リアルタイムの 新データストリームPCRが旧ストリームの最終パケットが送信される時(PC Rold)よりもリアルタイムの新データストリームPCRが短い場合、スプラ イサーN 270はリアルタイムの新データストリームPCRがPCRoldに 等しくなるよう、新データストリームの開始点までの十分な数のゼロパケットを 決定し、次のそれに対応してステップ1240でゼロカウントを更新する。その 代わりにステップ1250で新データストリームが遅れている場合、スプライサ ーN 270はリアルタイムの新データストリームPCRがステップ1260内 でPCRoldに等しくなるように新データストリームの開始点に近い十分な数 のゼロパケットを削除し、それに対応するステップ1270でゼロカウントを更 新する。 しかしながら、スプライサーN 270はライブラリー機能を有することが好 ましいので、スプライサーN 270はスプライスバッファ265の全サイズは 気にしない。従って、スプライサーN 270はスプライスバッファN 265 内に記憶されたデータストリームのデータからのゼロパケットを安全に除くこと ができ、(よって、スプライスバッファの小さいサイズしか必要としないが、) データストリームのデータ+増加したゼロパケットはスプライスバッファN 2 65のサイズを越えることがある。従って、スプライサーN 270はスプライ スバッファN 265内に記憶されたデータを送信する前に、多くのゼロパケッ トを加える命令により、ゼロカウントの値をホストアプリケーションへ戻すこと により、ゼロパケットを加算する。当業者が本明細書の説明を検討すれば、完全 なアプリケーションとして機能する本発明に係わるスプライサーは、スプライサ ーが直接ゼロパケットをスプライスバッファに追加できるよう、静的またはダイ ナミックなスプライスバッファのサイズを指定できることが理解できよう。 ゼロパケットと新データストリームとの間の追加および削除は新データストリ ームの符号化特性を維持することに反するが、かかる変更は比較的少量の処理シ ステムのスループットしか必要としない。特にその理由は、必要なPCR値は既 知であり、先のスプラインスインポイントまたは送信開始時からパケットをカウ ントすることによって必要なPCRoldを容易に見つけることができるからで ある。更に、特に新データストリームからのゼロパケットを削除すると、入力バ ッファによってデータがより迅速に受信され、この結果、オーバーフローが生じ 得るが、後に更に説明するように、スプライシングの完了前に整合中のデータス トリームの変更の補償が行われる。 図13aおよび13bは、本発明に係わる好ましいスプライサーが新データス トリームからゼロパケットをどのように好ましく削除するかを示す。図示するよ うに、スプライスバッファN 265(図2)には順次順序の定められたコンポ ーネントデータパケットとしてデータストリームのデータが挿入される。このよ うな仕組みにより、更に操作または再編成することなく(すなわち他の編成の代 替例、例えばシーケンス、GOP、フレームまたは他のレベルのグラニュラティ に反し)、スプライサーN 270がパケットレベルでデータストリームのデー タにアクセスし、これを分析し、および/または操作することが可能となってい る。 スプライサーN 270はスプライスバッファN 265内の次の新ストリー ムロケーションに残りの各データパケットをコピーすることによりデータパケッ トを削除する。例えば図13Aは、スプライスバッファN 265のロケーショ ン2に含まれるゼロパケットを示す。スプライサーN 270は先の(すなわち 時間的または等価的に少ない数の)ロケーションに新データストリーム内の残り の各パケットをコピーすることにより、ロケーション2に含まれるゼロパケット を削除し、よってロケーション2に含まれるゼロパケットをオーバーライトし、 その結果、図13Bに示される変更されたスプライスバッファN 265が生じ る。(データストリーム内の各シーケンスは一般に少なくとも10%以上のゼロ パケットを含むので、削除できるゼロパケットは見つけられておらず、問題にな りにくい。) 当業者が本明細書の開示内容を検討すれば、スプライスバッファN 265を 多くの異なるタイプのデータ構造に置換できることが理解できよう。例として、 多次元テーブルおよびリンクされたリストが挙げられるが、これらに限定される ものではない。挿入および削除のための上記コピー方法の利用することも、種々 の従来のリスト取り扱い方法と容易に置換でき、この方法のリンクされたリスト および空のセルが例として挙げられる。好ましい方法は、処理スループットの点 で高価につくが、符号器から直接データを一時的に(スプライス中に)受信し、 データをマルチプレクサバッファにルーティングするだけでなく、スプライスを リアルタイムで実行する費用および複雑さが最小であることに起因し、好ましい 。しかしながら、特に進行中のハードウェアおよびソフトウェアの開発を考慮す れば、他のかかるリストおよびリスト管理方法を使用することも考えられる。 図14〜15cのフローチャートは、図11、16および17を参照して、本 発明に係わる好ましいスプライサーがスプライシングによって生じる復号器の入 力バッファのオーバーフロー条件をどのように好ましく検出し、訂正するかを示 している(図4のステップ450)。 まず、図11を参照すると、旧データストリーム1801の最終復号器バッフ ァは、時間t2前に復号器へ送信される。旧データストリームが(時間t2〜時 間t4の間で)復号化、すなわちプレイアウトし続ける間、(好ましい整合後の )新データストリーム1102aの第1復号器のバッファは復号器の入力バッフ ァによって連続的に受信される。従って、時間t2〜t4の間で復号器の入力バ ッファにほぼ連続して変化する量の双方のデータストリームが生じ、この場合、 旧データストリーム量は減少し、新データストリーム量は増加する。次に、新デ ータストリームの復号化が時間t5で開始する(すなわち新データストリームの スプライスインポイント)まで、新データストリームの第1復号器のバッファが 復号器によって受信され続ける。当然ながらここに説明した条件はオーバーフロ ーの訂正がない場合に生じる。 図16のグラフは、復号器の入力バッファ内の新旧データストリームのデータ の例示された部分も示す。しかしながら、図11と比較すると、旧データストリ ームの最終の復号器のバッファも一部しか示されていない。更に、より上方の多 いデータストリームの例が示されており、新旧データストリームのデータが組み 合わされて示されている。図16は復号器の入力バッファ内の組み合わされたデ ータストリームが存在することにより、復号器の入力バッファサイズが超過し、 その結果、(ビデオ復号器の入力バッファの)復号器のオーバーフロー状態A、 BおよびCが生じる。不幸なことに、訂正しない場合は、各オーバーフロー状態 の結果、データストリームのデータが喪失することになる。 図14のフローチャートは本発明に係わる、オーバーフロー状態を除くための 好ましい方法を広義に示す。図示されるように、ステップ1410にてスプライ サ−N 270(図3)がスプライスから生じたオーバーフロー状態を見つけた 場合、スプライサーN 270はステップ1420でオーバーフロー状態を生じ させているデータストリーム部分を所定の遅延量だけ遅延する。次に、スプライ サ−N 270はステップ1430で遅延量に対応する値だけ、後のデータスト リーム部分を加速する。後に説明するように、スプライサーN 270はオーバ ーフロー状態(または単なるオーバーフロー)が生じているスプライスバッファ の開始時にゼロパケットを挿入することにより、オーバーフロー訂正中にデータ ストリーム部分を遅延することが好ましい。更にスプライサーN 270は対応 するスプライスバッファフル状態の開始時またはその近くで、ゼロパケットを削 除することにより、オーバーフロー訂正中のデータストリーム部分を更に加速す ることが好ましい。(先に説明したように、オーバーフロー訂正中に削除のため の十分なゼロパケットが欠如することが発見されないように、符号化の結果とし て一般に10%以上のゼロパケットを含む。) 更に、スプライサーN 270はオーバーフローが実際に検出されたデータス トリームのその部分に、ゼロパケットを挿入および/または削除する形態のデー タストリームの変更を局所化することが好ましい。より詳細には、必要に応じ、 新データストリームしか変更せず、新データストリーム内ではオーバーフローが 検出されたスプライスバッファおよび/または特定のスプライスバッファの直前 および/または直後でしか変更しない。当業者が本明細書の内容を検討すれば、 スプライスバッファの開始点以外のデータストリーム内のロケーションで、その ゼロパケット挿入を後の方法で実行できることが理解できよう。例として、オー バーフローが検出されたデータパケットの直前に挿入することが挙げられるが、 このような挿入のみに限定されるものではない。しかしながら、かかる挿入はオ ーバーフロー状態を正確に訂正できるが、同じような有効なオーバーフローの防 止を生じさせるような好ましい方法も判っており、ライブラリーとして実現され たスプライサーによってこの方法をリアルタイムでより容易に達成できる。ゼロ パケット削除についても同様な挿入方法が明らかとなろう。かかる別の挿入方法 は、例えばスプライサーをライブラリー以外のものとして実現し、よってほとん どまたは全くオーバーヘッドを増加することなく、より直接に制御できる。 次に図16を参照すると、好ましいスプライサーN 270は組み合わされた データストリームの曲線1610に沿ったポイントを好ましく決定することによ り、より詳細にオーバーフロー状態を検出する。図示するように、かかる直線に 沿った測定ポイントは時間t2、t5およびt7におけるオーバーフロー状態の スタートを示す。次の工程は復号器の入力バッファの容量が越えているデータ量 を計算すること(およびかかる工程が利用されていること)を含むようであるが 、データストリームのデータ量を越えるバッファによる訂正を行う結果、不正確 な結果となり得ることが判っている。かかる潜在的な不正確さは大部分は共通デ ータストリーム内にビデオ、オーディオおよびその他の情報が存在することに起 因するものである。しかしながら、オーバーフロー状態の長さを測定し、より詳 細にはオーバーフロー状態中に復号器の入力バッファによって受信されるデータ パケット数をカウントすることにより、正確な結果が得られている。混合された データタイプの同じような理由から、フレームごとにカウントされるビデオデー タバイトに対し、データストリームのデータを分析することも好ましい。 説明するように、スプライサーN 270(図3)は、送信の約1秒前にバッ ファフル(または等価的にはスプライスバッファ)ごとの方式で、スプライスバ ッファN 265に逐次得られる旧データストリームのデータ、次に新データス トリームのデータを分析することによって、一部機能することが好ましい。従っ て、スプライサーN 270はスプライスバッファN 265が対応するデータ ストリーム部分(すなわち旧データストリームの終了部または新データストリー ムの開始部)を含む間、上記機能(例えばスプライスインポイントおよびスプラ イスアウトポイントを探すこと)の各々を実行することが好ましい。スプライサ ーN 270は更にスプライスイン、スプライスアウト、PCRおよび整合状態 の決定と共に、スプライステーブル370を創出し、オーバーフローの検出およ び訂正に使用するためのデータをスプライステーブル370に挿入する(図4の ステップ405参照)。 連続するスプライスバッファ中だけでなく、単一のスプライスバッファ中でも 2つ以上のオーバーフロー状態が存在することが判っている。従って、スプライ サーN 270はスプライスバッファ内に存在し得る全オーバーフロー状態を明 らかにするよう、各スプライスバッファを完全にサーチする。 同じスプライスバッファ内でのオーバーフローの発生は、別個に訂正すべきで ないことも判っている。例えばかかる各オーバーフローは、それに対応してゼロ パケットを挿入することによって防止することが予想されるが、かかる多数の挿 入の結果、あるケースでは符号器のバッファにアンダーフロー状態が生じること が判っている。従って、スプライサーN 270は好ましくは訂正を実行する前 に、全スプライスバッファ内でオーバーフローの検査/検出を完了することが好 ましい。特に、スプライサーN 270はスプライスバッファ内の最も長く持続 するオーバーフロー状態を決定し、次にスプライスバッファ前に対応する数のゼ ロパケットを挿入することが好ましい。 ライブラリーに基づく好ましいスプライスバッファN 270は上記のように オーバーフローの訂正中にゼロパケットを追加したり削除することが好ましいこ とに、更に留意すべきである。より詳細には、データパケットは追加すべき数の ゼロパケットと共にホストアプリケーションへ追加命令を戻すことによって追加 される。これと対照的に、スプライスバッファN 270はスプライスバッファ N 265から直接ゼロパケットを削除する。 図15a〜15cのフローチャートは、図17のフレームテーブル例を参照し 、オーバーフロー状態を検出し、除去するための好ましい方法をより詳細に示す 。図15Aは、フレームテーブル265(図3)に旧データストリームを挿入す るための好ましい方法を示し、一方、図15bおよび15cはフレームテーブル 265に新データストリームのデータを挿入し、オーバーフロー状態を検出し、 検出されたオーバーフロー状態を除去するための好ましい方法を示す。 図15Aに示されるように、スプライサーN 270はスプライステーブルN 370に、スプライスバッファN 265に含まれる旧データストリームのビ デオフレームのサイズおよびDTSを挿入することにより、オーバーフロー状態 の取り扱いを開始することが好ましい。スプライサーN 270はほぼ起動時に 開始することが好ましいが、スプライサーN 270はスプライステーブル37 0が旧データストリームの最終復号器のバッファに対する完全なデータを含むこ とを保証するよう、十分早期に開始するだけでよい。スプライサーN 270は 既に説明したように、シーケンス、GOP、パケットおよびフレームデータのた めにスプライスバッファN 265を分析する。上記のように、スプライサーN 270はスプライスバッファN 265に含まれる各パケット内のビデオフレ ー ムデータバイトをカウントすることにより、フレームサイズを決定することが更 に好ましい。 より詳細には、ステップ1501でスプライスバッファN 265が旧データ ストリームのデータの新スプライスバッファを含む場合、スプライサーN 27 0はステップ1503で最初のフレーム(すなわち現在フレーム)のために、ス プライスバッファN 276を分析する。次に、スプライサーN 270はステ ップ1505で現在フレームのためのDTSを検索し、ステップ1507でフレ ームテーブルN 370の次のロケーションに検索したDTSを記憶する。 ステップ1509で、スプライスバッファN 265内に、より多くのデータ が残っている場合、スプライサーN 270はステップ1510でスプライスバ ッファN 265内の次のデータパケットを入手し、ステップ1511で、現在 のパケットが新しいフレームであるかどうかを判断する。ステップ1511で現 在パケットが新しいフレームである場合、スプライサーN 270はスプライス テーブルN 370内に以前のビデオフレームのサイズを記憶し、ステップ15 05にリターンする。新フレームでない場合、スプライサーN 270は、ステ ップ1513で現在フレームに対する進行中の総数に現在パケット内のビデオデ ータバイトの数を加算し、ステップ1509へリターンする。 ステップ1509で、スプライスバッファN 265内にもうデータが残って いない場合、スプライサーN 270はステップ1514へ進む。ステップ15 14にてスプライスバッファN 265が旧データストリームのデータの最終ス プライスバッファを含んでいない場合、スプライサーN 270はステップ15 01へ進む。この代わりに、ステップ1514でスプライスバッファN 265 が旧データストリームのデータの最終スプライスバッファを含む場合、スプライ サーN 270はステップ1515で第1ポインタを初期化し、旧データストリ ームの最終復号器のバッファの第1フレームのロケーションを(フレームテーブ ルN 370内で)ポイントする。 新データストリームに関する図15bにおいて、スプライサーN 270はま ず既に復号器の入力バッファに含まれる旧データストリームのデータに新データ ストリームのデータを加えることによって、越えることのできない(すなわちオ ーバーフローできない)バッファを決定することが好ましい。より詳細には、ス テップ1521でスプライサーN 270は新データストリームの第1シーケン スヘッダー内のvbv_buffer_sizeフィールドの値に対する可変サ イズをセットする。このvbv_buffer_size値は各受信復号器の入 力バッファの利用できる総サイズ(このサイズは変わり得る)を必ずしも示すも のではないが、この値は新データストリームの符号化中に予想される最大バッフ ァサイズを示す。従って、スプライサーN 270はかかるサイズを想定するこ とにより、スプライシングをすることなくオーバーフローが生じなかった(すな わち復号器の入力バッファを1つの符号化されたデータストリームしか占めてい ない)場合に、オーバーフローが生じないことを保証する。スプライサーN 2 70は更にステップ1523で、ゼロを加えるかどうかを判断するのに使用する ための可変(追加ゼロ)を初期化し、ゼロを加算する場合、どれだけ多くのゼロ を加算すべきかを判断する。 図17は、例としてオーバーフローを検出するのにバッファテーブルN 37 0をどのように使用するかを示す。図示するように、このポイントにてスプライ サーN 270は(連続するスプライスバッファ内の)オーバーフローおよびそ れに対応して旧データストリームのDTSおよびフレームサイズの各々によって 満たされたフレームテーブルN 370を見つけている。更に、スプライサーN 270は旧データストリームの最終復号器のバッファの第1フレームをポイン トするためのスタートポインタを既にセットしている。しかしながら、(図示さ れているテーブルの下方部分内の)新しいデータストリームに関し、スプライサ ーN 270は第1フレームに対するDTSをアサートすることにより開始し、 次に第1フレームに対するフレームサイズの決定を開始する。スプライサーN 270がこのサイズの決定を完了するまで、このサイズは単に進行中であり、次 のフレームの検出によって完了すると、現在のフレームサイズが固定状態となる 。 フレーム計算と同時に、スプライサーN 270はオーバーフローを検査し、 形成する。正しく符号化されたデータストリームは単独ではオーバーフローを生 じないので、オーバーフローを検査することなく、旧データストリームのサイズ の値を合計できる。しかしながら、新データストリームのデータパケットの未知 のパケットによりオーバーフローが生じる。従って、スプライサーN 270は 各パケットを分析した後に、進行中のサイズの決定の完了時にオーバーフロー( すなわちvbv_buffer_sizeを越えること)を検査することが好ま しい。いったん固定されると、新データストリームのフレームサイズを旧データ ストリームのフレームサイズと共に直接合計できる。しかしながら、MPEG− 2で符号化されたフレームが開始し、フレームバッファ、更にパケットの境界部 を横断して終了できるが、オーバーフローの決定および訂正はスプライスバッフ ァごとの方式で実行することが好ましいと留意すべきである。 括弧1710および1712は、スタートポインタがインクリメントする状態 で、旧データストリームの連続する各フレームで開始しながら、オーバーフロー の検査をどのように行うのが好ましいかを示す。表示を簡単にするため、図15 a〜15cのフローチャートは各旧データストリームの復号化によってオーバー フローを解決することを想定している。図16のグラフに戻ると、これまで発見 されたすべてのオーバーフロー状態を示すオーバーフロー状態AおよびBは、オ ーバーフローのかかる復号器による解決を示す。しかしながら、復号化によって オーバーフロー状態(すなわちオーバーフローC)を治癒できないオーバーフロ ー状態も生じ得ることに留意すべきである。従って、かかるオーバーフローを傍 観することを防止するために、現在のサイズ決定から各復号化されたフレームの サイズを減算し、オーバーフローが持続しているかどうかを判断するために再び 検査を実行すべきである。オーバーフローが持続している場合、オーバーフロー の最中のパケット数の決定を続行すべきである。しかしながら、更に必要となる 時間およびスペース条件が仮定された場合、オーバーフローCタイプの発生の検 査を選択的に行うことが好ましい。 当業者が本明細書の内容を検討すれば、本発明の要旨および範囲から逸脱する ことなく、特定のスプライステーブル構造および特定の方法のパラメータを変更 してもよいことが理解できよう。 図15Bに戻ると、ステップ1525で、スプライサーN 270はスタート ポインタが示すロケーションから開始し、スプライステーブルN 370内の既 知のすべてのビデオ−フレームサイズを合計する。ステップ1527でスプライ サーN 270は新データストリームの第1フレームに対するDTSをスプライ ステーブルN 370へ入力し、フレームサイズを0に等しくなるように初期化 する。ステップ1529で、スプライサーN 270はスプライスバッファN 265の現在パケット内のビデオデータバイトの総数を入手し、この数を現在フ レームに対するフレームサイズに加算する。 ステップ1531で、追加される新データストリームのデータバイトの結果、 オーバーフロー状態が生じると、スプライサーN 270はステップ1551( 図15c)へ進み、オーバーフロー状態が生じない場合、スプライサーN 27 0はステップ1533に進む。 ステップ1533で、新データストリームの現在のデータパケットに対するP CR値は、(旧データストリームの)スタートフレームのDTS以上である場合 、旧データストリームの復号化が行われ、ステップ1535が示すように、次の 旧データストリームのフレームに関してオーバーフローの検出を再開できる。そ の代わりに、ステップ1533でPCRの値が現在のスタートフレームDTS以 上でない場合、スプライサーN 270はステップ1535へスキップし、ステ ップ1537へ続く。 ステップ1537で、スプライスバッファN 265の終了部に達すると、ス プライサーN 270は(図15Cの)ステップ1557へ進み、そうでない場 合、スプライサーN 270は次のパケット内のビデオバイトを合計するか、ま たは新フレームに達した場合、フレームテーブル370へフレームサイズの合計 を入力し、現在のフレームサイズを再初期化し、ステップ1531へ進むことに より、ステップ1539でビデオバイトカウントを続ける。 図15Cは、検出されたオーバーフロー状態の開始に応答してステップ155 1でスタートする。上記のようにスプライサーN 270は、現在のバッファ中 にオーバーフロー状態が持続する間のパケット数を決定し、現在のスプライスバ ッファ内のかかる最大の持続時間に等しいゼロパケット数を加算する。ステップ 1551で、スプライサーN 270は、(現在のパケットヘッダーから)現在 のパケットに対するパケット数を入手する。ステップ1553で、スプライサー N 270は次のパケットから、または以前と同じようにビデオバイト数を入手 し、次のパケットが新フレームを開始する場合、スプライサーN 270は先の フレームサイズをバッファテーブルN 370へ入力し、現在のフレームサイズ を再初期化する。 オーバーフロー状態に達し、ステップ1555において、現在のスプライスバ ッファの終端部に達した場合、スプライサーN 270はステップ1565に進 む。その代わりに、オーバーフロー状態に達し、ステップ1555で現在スプラ イスバッファの終端部に達した場合、スプライサーN 270はステップ155 7で現在スプライスバッファ中にオーバーフローが持続している間に、パケット の最大数に等しい現在のスプライスバッファにゼロパケットの数を加え、ステッ プ1559へ進む。 ステップ1559で、終了状態に達すると、スプライスを完了し、そうでない 場合、スプライサーN 270はステップ1561へ進む。スプライサーN 2 70は新データストリームが符号化された状態で続く時(すなわちスプライシン グ中に行われる変更前)に生じる終了条件を決定することが好ましい。従って、 符号化された新データストリームが閉じたGOPで開始した場合、現在のスプラ イスバッファの現在パケットに対するPCRが、符号化された旧データストリー ムの最終DTS以上となった時に、終了状態に達する。しかしながら、新データ ストリームのスタート時(すなわちビデオスプライスインポイントを探す間)、 スプライサーN 270がオープンGOPを閉じた場合、スプライサーN 27 0は新データストリームへのDTSn+1フレーム(ここでnはスプライサーN によってドロップされたフレーム数である)を探した時に、終了状態に達する。 例えばスプライサーN 270が2つのフレームをドロップすることによってG OPを閉じた場合、スプライサーN 270が新データストリームの第3フレー ムに対するDTSを探した時に、終了状態に達する。 ステップ1561では(すなわちオーバーフローが発見され、現在のスプライ スバッファの終了部に達しているが、終了状態は存在していない場合)、スプラ イサーN 270は次のスプライスバッファの開始点からゼロの数を減算し、ゼ ロカウントを初期化し直す。次に工程1563で、スプライサーN 270はス プライスバッファの次の(このケースでは最初の)パケットに対するサイズを入 手することにより、オーバーフローに関し、新スプライスバッファの検査を開始 するか、または新フレームが発見された場合、旧フレームサイズをバッファテー ブルN 370へ入力し、新フレームサイズをゼロバイトとして初期化する。次 にスプライサーN 270は(図15Bの)ステップ1531へ進む。 好ましいスプライサーは次のスプライスバッファから同じ数のゼロパケットを 削除することにより、ゼロパケットを追加したスプライスバッファに従うことが 好ましいが、当業者が本明細書の内容を検討すれば、中間削除以外の回復方式と 置換できることも理解できよう。上記のように、スプライシングを終了する前に 新データストリームの残りのストリームを符号化された状態に回復することは、 進行中の介入を必要とすることなく、スプライシング後に別のオーバーフロー、 アンダーフローおよび/または他の異常を防止するように働く。従って、ゼロを 加えた後にゼロを削除し、すなわち符号化されたストリームを回復することが好 ましい。更に削除は、アンダーフローを生じさせるような、例えば長い遅延を防 止するように、十分近似した加算に従うべきである。しかしながら、変形例とし て特定の追加と削除との間を、より近くすることが挙げられるが、これに限定さ れるものでなく、同じバッファがオーバーフローとアンダーフローとを生じさせ ることはできないとみなす。 次に図15Cに戻る。ステップ1565で、スプライサーN 270はスプラ イスバッファの次のパケットに対するサイズを入手し、新フレームが見つかった 場合、バッファテーブルN 370に旧フレームサイズを入力し、新フレームサ イズを初期化する。次にスプライサーN 270はステップ1567に進む。ス テップ1567で、現在のスプライスバッファの終了部に達した場合、スプライ サーN 270はステップ1557に進む。そうでない場合、スプライサーN 270はステップ1569に進む。ステップ1569において、現在のスプライ スバッファの現在パケットに対するPCR値が、スタートフレームのDTS以上 となった場合、スプライサーN 270は、ステップ1571において現在のス プライスバッファの間でオーバーフローが持続している間、パケットの最大数に 等しくなった現在のスプライスバッファに多数のゼロパケットを加え、ステップ 1563に進み、そうでない場合、スプライサーN 270はステップ1571 をスキップし、ステップ1563に進む。 次に図18〜20を参照すると、スプライサーN 270はビデオスプライシ ングと組み合わせてオーディオスプライシングを行う。より詳細には、スプライ サーN 270はビデオスプライスアウトポイントを探した後に、旧データスト リームのオーディオスプライスアウトポイントを探し(図4のステップ410) 、同様にビデオスプライスインポイントを探した後に新データのオーディオスプ ライスインポイントを探す(図4のステップ420)。 図18のフローチャートは、旧データストリーム内のオーディオスプライスア ウトポイントをセットするための好ましい方法を示す。図示するように、ステッ プ1810でビデオスプライスアウトポイントが見つかると、ステップ1820 でスプライサーN 270は先の最後のオーディオパケットのためのスプライス バッファN 265(図3)を分析する。次に、ステップ1830でスプライサ ーN 270はオーディオスプライスアウトポイントと、それに続くビデオスプ ライスアウトポイントとの間に生じるギャップをゼロパケットで満たす。 図19Aのグラフに示されるように、図18の方法はスプライス前のビデオの 終了前にポイント1901でオーディオを終了する。かかるスプライスアウトは ビデオ画像を終了する前に無音状態を発生するが、この結果生じる20〜30m 秒の無音状態は許容できるものであるとみなされる。これとは異なり、(オーデ ィオDTSとビデオDTSを一致させることにより)無音状態が発生しないよう に保証することによって、ビデオが終了後にオーディオ1902が持続するとい う問題が生じる。更に、過剰のオーディオデータはオーバーフロー状態をより発 生し易くする。 図20のフローチャートは、図19Bを参照しながら、新データストリーム内 のオーディオスプライスインポイントをセットするための好ましい方法を示す。 図示するように、ビデオスプライスインポイントがステップ2010で発見され 、ステップ2020で早期のアウトオプションが選択された場合、スプライサー N 270はステップ2050で、ビデオスプライスインポイント(図19Bの 1905)に続くオーディオヘッダー境界部を探す。ビデオがスタートした後に 、無音時間が存在するので、スプライサーN 270は、失ったオーディオパケ ット (図9Bの1950)をゼロパケットに置換する(ステップ2060)。この代 わりに、ステップ2020でPTSマッチングオプションが選択されている場合 、スプライサーN 270はステップ2030でビデオPTSよりも大きい第1 オーディオPTSを探し、オーディオのスタート(図19Bの1960)までの 無音時間をステップ2040でゼロパケットに置換、すなわちパディングする。 再度、早期オプション外の短期間の無音状態が好ましい。 図21および22は、本発明の別の好ましい実施例を示す。広義に説明すれば 、本実施例は先の実施例のスプライサーと同様にスプライスを実行するスプライ サーを提供するものである。しかしながら、本実施例のスプライサーは、好まし くはマルチプレクサ状に実現されたビットクロックと組み合わされて機能する。 かかるビットクロックおよびその他の関連する利益を利用することにより、好ま しいスプライサーによりスプライスを実行するための処理条件を実質的に低減で きる。 従来、チャンネルマルチプレクサは、データストリームのデータを順次受信し 、これらデータストリームを多重化し、多重化されたデータを送信機へルーティ ングするよう、繰り返し状態で作動している。かかるシステムでは、マルチプレ クサにより受信する前にデータストリームは完全に処理しなければならない。し かしながら、マルチプレクサがスプライサー動作を容易にできるよう、スプライ サーとマルチプレクサとの間で共通のタイミング基準を設定できることが判って いる。 図21は、スプライサー動作と共にビットクロックがどのように作動するかを 一般に示す。図示するように、ステップ2105で、ユーザーはマルチプレクサ のビットレートをセットする。ステップ2110で、ホストアプリケーションは マルチプレクサ190(図2)にアクティーブスプライスバッファの各々に対す る送信ビットレートを送る。ステップ2115で、ホストアプリケーションはマ ルチビットレートに対するチャンネルビットレートの比に従ってバッファ送信ス ケジュールをセットする。ステップ2120で、マルチプレクサ190はスプラ イサーバッファN 265がスケジュールどおりに送信準備状態となっていない 場合にゼロパケットを送る。ステップ2125で、スプライサーN 270はス プライスバッファN 265の内容と共に、ホストアプリケーションに対し、マ ルチプレクサ190によって命令が受信されると、n個のゼロパケットを削除す る。 (nの値はゼロパケット削除命令に対しては負であり、ゼロパケット追加命令 に対しては正である。)ステップ2130で、マルチプレクサ190は送信機へ スプライスバッファN 265の内容をルーティングし、送信機は即座に次の式 によって示される時間にスプライスバッファを送信する。 送信時間=スケジュール(ビット)+{n(パケット)×1504(ビット/ パケット)×マルチプレクサのビットレート}÷データストリームビットレート スプライサーN 270は先の実施例(図13aおよび13b)のゼロパケッ トを削除するためのマルチコピー方法よりも実質的に少ない処理パワーを使って 、スプライスバッファを加速するだけであることに留意すべきである。更に、ス プライサーN 270は先の実施例と同じように機能できる。スプライサーN 270は同じように遅延を実行し(すなわち0を加え)、加速を実行(すなわち 0を削除)するので、更に最適にすることができる。 図22のフローチャートは本スプライサーが図14〜15cに記載されたオー バーフロー検出および訂正方法をどのように最適化するかを示す。広義に説明す れば、新データストリームを別個に回復し、次に同じスプライスバッファに対し てオーバーフローを訂正する、図15a〜15cの方法と対照的に、本スプライ サーはスプライサーバッファ1つにつき1つの命令しか与えないことが好ましい 。更に本スプライサーは、好ましくは従来の方法と同じように、ゼロパケットを 削除、追加する他に、スプライスバッファのシフト送信に対するビットクロック と組み合わせて機能させることが好ましい。 図示するように、ステップ2205で、スプライサーN 270が新データス トリームの第1スプライスバッファを分析することにより、1つ以上のオーバー フロー状態を検出した場合、ステップ2210でスプライサーN 270は(先 の実施例と同じように)オーバーフロー中に最大のパケットに等しい追加ゼロを セットし、更に追加ゼロに等しい削除ゼロをセットする。新データストリームを 回復するために、次のスプライスバッファと共に削除ゼロが使用される。次に、 ステップ2215で、スプライサーN 270はホストアプリケーションを介し 、マルチプレクサ190にゼロパケット追加命令を送る。その代わりに、ステッ プ2205でオーバーフロー状態が検出されなければ、スプライサーN 270 はステップ2207で追加ゼロおよび削除ゼロをゼロにセットする。 ステップ2220で、スプライサーN 270が次のスプライサーバッファを 分析中にオーバーフロー状態を検出した場合、このスプライサーN 270はス テップ2225でスプライスバッファに対する最大時間のオーバーフロー中のパ ケット数を記憶し、ステップ2230で、オーバーフロー訂正値とストリーム解 決ゼロパケット値との差をホストアプリケーションへ送り(すなわちゼロパケッ トをそれぞれ追加および削除し)、ステップ2235で、追加ゼロに等しくなる ように削除ゼロをセットし、追加ゼロパケットをゼロにセットする。従って、上 記のようにスプライサーN 270はスプライスフレームに対し1つの組み合わ せ命令しか与えないことが好ましい。ステップ2260で、スプライサーN 2 70が(先に説明したような)終了状態に達していない場合、スプライサーN 270はステップ2220へ進む。 ステップ2220において、スプライサーN 270が次のスプライスバッフ ァを分析中にオーバーフロー状態を検出しない場合、スプライサーN 270は ステップ2140へ進む。ステップ2140で、削除ゼロがゼロに等しい場合、 スプライサーN 270はステップ2260へ進む。その代わりに、ステップ2 140で追加ゼロがゼロに等しくない場合、スプライサーは対応する削除ゼロ命 令をステップ2245でホストアプリケーションへ送り、ステップ2250で削 除ゼロをゼロに等しくなるようにセットする。 当業者が以上の説明を検討すれば、新旧データストリームが他の方法で異なる ように、または同じように符号化されている場合でも、本明細書に記載した実施 例のいずれも実施可能であることが理解できよう。例えば、好ましいスプライサ ーは共通する時間基準、例えば共通PCRを選択的に利用および/またはセット することができる。いずれのスプライサーも、出力デバイス、例えばマルチプレ クサ190(図2)と直接通信するようにも構成できる。更に、説明したゼロパ ケットからビットクロックスケジュールオフセットへの変換はスプライサーおよ び/またはホストアプリケーションによって実行できる。 以上で本発明の特定の実施例を参照し、本発明について説明したが、ある範囲 の変更、種々の変形および置換はこれまでの開示の範囲内のものであり、ある場 合にはここに説明した発明の要旨および範囲から逸脱することなく、また他の特 徴を対応して使用することなく、本発明の一部の特徴を利用できることが理解で きよう。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,UZ,VN,YU,ZA,Z W 【要約の続き】 トリームのデータの部分を遅延または加速することが好 ましい。

Claims (1)

  1. 【特許請求の範囲】 1.オーバーフロー状態を生じさせる、デジタル式に符号化された第1データ ストリーム部分を検出する工程と、 前記オーバーフロー状態を防止する遅延時間の間、前記第1データストリーム 部分を遅延する工程と、 前記遅延時間を実質的に補うよう、前記第1データストリーム部分に先行する 第2データストリーム部分を加速する工程とを備えた、オーバーフロー状態を除 くための方法。 2.オーバーフロー状態を生じさせる、デジタル式に符号化された第1データ ストリーム部分を検出する手段と、 前記第1データストリーム部分を遅延するための手段と、 前記第1データストリーム部分に先行する第2データストリーム部分を加速す るための手段とを備えた、オーバーフロー状態を除くための装置。 3.新データストリームの一部と旧データストリームの一部とを含む復号器の バッファのオーバーフローを防止するための方法であって、 (a)前記復号器のバッファに送信した場合、前記復号器の場合を占有する、 旧データストリームデータの総量を決定する工程と、 (b)組み合わされた量のデータを得るよう、前記総量に対してある量の新デ ータストリームデータを追加する工程と、 (c)前記組み合わされた量のデータが前記復号器のバッファをオーバーフロ ーさせるかどうかを検査する工程と、 (d)オーバーフローが生じる場合、新データストリームの一部を前記復号器 のバッファに送ると、少なくとも前記オーバーフローに対応する遅延量だけ、新 データストリームの一部を遅延させる工程とを備えた、復号器のバッファのオー バーフローを防止するための方法。 4.前記決定する工程(a)に前記復号器のバッファの最大サイズを決定する 工程が先行する、請求項3記載の方法。 5.旧データストリーム内のバッファサイズパラメータに従って前記最大サイ ズを決定する、請求項4記載の方法。 6.新データストリーム内のバッファサイズパラメータに従って、工程(a) の前記最大サイズを決定する、請求項4記載の方法。 7.工程(c)の検査に先立ち、前記総量から送信した場合に前記復号器によ って復号化される旧データストリームのデータ量を減算することを更に含む、請 求項3記載の方法。 8.工程(d)の前記遅延量が、新データストリームの前記部分内で前記バッ ファがオーバーフローしたデータストリームのデータの量の関数である、請求項 3記載の方法。 9.工程(d)の前記遅延量が、新データストリームの前記部分内で1回のオ ーバーフローで前記バッファがオーバーフローしたデータストリームのデータの 量の関数である、請求項3記載の方法。 10.工程(d)の前記遅延量が、新データストリームの前記部分内のオーバ ーフローの期間の関数である、請求項3記載の方法。 11.工程(d)の前記遅延量が、新データストリームの前記部分内の1回の オーバーフローの期間の関数である、請求項3記載の方法。 12.工程(d)の前記遅延量が、新データストリームの前記部分内のオーバ ーフローの最長期間の関数である、請求項3記載の方法。 13.工程(d)の前記遅延量が、新データストリームの前記部分内のオーバ ーフローの最長期間中の前記部分のデータパケットの数に等しい、請求項3記載 の方法。 14.新データストリームを送信する場合、前記遅延量に対応する加速量だけ 、前記新データストリームのその後の部分を加速させることを、前記工程(d) が更に含む、請求項3記載の方法。 15.旧データストリーム部分と新データストリーム部分とを含むデータスト リーム部分をスプライスする間の、データストリーム復号器のオーバーフローを 検出する方法であって、 (a)前記旧データストリーム部分の旧データストリームフレームに対応する 複数の旧データストリームフレームサイズおよび復号化時間を決定し、前記フレ ームサイズおよび前記復号化時間をスプライステーブル内に記憶する工程と、 (b)最大復号器のバッファサイズを決定する工程と、 (c)新データストリーム部分の新データストリームフレームに対応する新フ レームサイズおよび復号化時間を決定する工程と、 (d)スプライステーブル内に記憶されている複数の旧データストリームフレ ームサイズを合計することにより、中間サイズを決定する工程と、 (e)新データストリームフレームサイズを前記中間サイズに加えることによ り総サイズを決定する工程と、 (f)前記総サイズが前記最大復号器のバッファサイズを越えるかどうかを判 断することにより、オーバーフローを検査する工程とを備えた、オーバーフロー を検出するための方法。 16.データストリーム部分を送信する場合に、前記新データストリームフレ ームが復号器により受信される際に、復号化されない状態のままとなる、旧デー タストリーム部分のすべてのフレームを工程(d)の前記旧データストリームの フレームサイズが含む、請求項15記載の方法。 17.データストリーム部分を送信する、請求項16記載の方法。 18.(a)工程(f)でオーバーフローが発見された場合、前記新データス トリームのフレームを含む新データストリームのデータの一部の送信時間を遅延 させる工程を含む、請求項15記載の方法。 19.新データストリームのデータの一部のスケジュールされた送信時間の遅 延を生じさせることを含む、旧データストリーム部分および新データストリーム 部分を有するデータストリーム部分のスプライス中に、デジタル式に符号化され たデータストリームの復号器のオーバーフローを訂正するための方法。 20.前記遅延が、前記新データストリーム部分にゼロパケットを追加するこ とによって行われる、請求項20記載の方法。 21.次の式 (前記部分に対して現在スケジュールされている送信時間)+((n個のパケ ット×m個のビット/パケット×マルチプレクサのビットレート)/(データス トリームのビットレート))(ここでnは送信を遅延すべきパケット数を示し、 mは送信すべきデータストリームのデータのパケット内のビット数を示す)に従 って、前記部分の送信をスケジュールし直すことによって前記遅延を生じさせる 、請求項19記載の方法。 22.mが1504に等しい、請求項21記載の方法。 23.旧データストリームおよび新データストリームを含むデジタル式に符号 化されたデータストリームをスプライスする方法であって、 (a)旧データストリームのスプライスアウトポイントおよび新データストリ ームのスプライスインポイントに対応して新データストリームの現在の時間基準 を変更し、よって変更された新データストリームのタイミング基準を形成する工 程と、 (b)再生中の旧データストリームから新データストリームへの移行を実質的 に認識できないように、前記変更された新データストリームのタイミング基準に 従って新データストリームの一部と旧データストリームの一部とを整合させる工 程とを備えた、デジタル式に符号化されたデータストリームをスプライスするた めの方法。 24.工程(a)の前記変更された新データストリームのタイミング基準が、 旧データストリームの最終フレームを復号化するための第1復号化時間と新デー タストリームの第1フレームを復号化するための第2復号化時間との間のタイミ ングギャップに更に対応する、請求項23記載の方法。 25.前記変更された新データストリームのタイミング基準を決定する工程が 、 (i)新データストリームの前記現在のタイミング基準を決定する工程と、 (ii)前記現在のタイミング基準と新データストリームのフレームの現在の 復号化時間との間の遅延時間を決定する工程と、 (iii)旧データストリームの最終フレームを復号化するための復号化時間 と新データストリームの第1フレームを復号化するための復号化時間との間の、 フレーム間遅延時間と前記現在の復号化時間との合計に対応する新データストリ ームの前記フレームの新復号化時間を決定する工程と、 (iv)工程(iii)の前記新復号化時間から工程(ii)の前記遅延時間 を引いた時間として、前記変更された新データストリームのタイミング基準を決 定する工程とを含む、請求項23記載の方法。 26.前記変更された新データストリームのタイミング基準を決定する工程が 、 (i)前記新データストリームの第1パケットのプログラムクロック基準を決 定する工程と、 (ii)前記新データストリームの第1シーケンスヘッダーの送信から前記新 データストリームの第1フレームの第1復号化時間スタンプ(DTS)との間の 遅延時間を決定する工程と、 (iii)前記第1DTSとフレーム間遅延時間の合計として連続DTSを決 定する工程と、 (iv)工程(iii)の前記連続DTS−工程(ii)の前記遅延時間とし て新データストリームのリアルタイム送信時間を決定する工程とを含む、請求項 23記載の方法。 27.工程(b)における前記整合が、旧データストリームの一部を復号化す るための復号化時間に対応する新データストリームの一部を送信するための開始 時間を設定する、請求項23記載の方法。 28.工程(b)における前記整合が、旧データストリームの一部を復号化す るための復号化時間に対応する新データストリームの一部の受信を開始するため の復号器のバッファのための開始時間を設定する、請求項23記載の方法。 29.(d)データストリームが送信された場合、前記スプライシングから生 じる復号器のバッファのオーバーフロー状態を検出する工程と、 (e)前記オーバーフロー状態を訂正する工程を更に含む、請求項23記載の 方法。 30.工程(a)の前記工程に、 (i)旧データストリームのスプライスアウトポイントを決定する工程と、 (ii)新データストリームのスプライスインポイントを決定する工程が先行 する、請求項23記載の方法。 31.新データストリームの初期フレームが、先のフレームの復号化に対する 基準により通常復号化されたタイプである場合、工程(ii)が前記基準を除く よう、新データストリームを変更する工程を含む、請求項30記載の方法。 32.BフレームおよびPフレームから成る群から前記フレームタイプが選択 されており、前記変更する工程が、画像のオープングループ(GOP)を閉じる ことを含む、請求項31記載の方法。 33.前記データストリームがビデオおよびオーディオデータを含み、工程( a)がビデオスプライスアウトポイントおよびオーディオスプライスアウトポイ ントを決定することを含み、工程(b)がビデオスプライスインポイントおよび オーディオスプライスインポイントを決定することを含む、請求項30記載の方 法。 34.工程(i)の前記スプライスアウトポイントが旧データストリームのユ ーザーが選択可能な部分内で決定される、請求項30記載の方法。 35.工程(ii)の前記スプライスインポイントが旧データストリームのユ ーザーが選択可能な部分内で決定される、請求項30記載の方法。 36.工程(i)の前記スプライスアウトポイントがユーザーによって選択可 能である、請求項30記載の方法。 37.工程(ii)の前記スプライスインポイントがユーザーによって選択可 能である、請求項30記載の方法。 38.工程(a)に対し、旧データストリームのための第1ソースを決定する こと、および新データストリームに対する第2ソースを決定することが先行する 、請求項23記載の方法。 39.前記ソースが記憶デバイス、衛星受信機、ケーブル受信機、ネットワー ク、オーディオソース、ビデオソースおよび符号器から成る群から選択したソー スのタイプを含む、請求項38記載の方法。 40.前記第1ソースと前記第2ソースとが同じソースタイプのものである、 請求項39記載の方法。 41.前記データストリームの少なくとも1つをMPEGで符号化する、請求 項23記載の方法。 42.前記スプライシングをリアルタイムで行う、請求項23記載の方法。 43.工程(a)の後に、旧データストリームの一部を送信することが続く、 請求項23記載の方法。 44.工程(b)の後に、旧データストリームの一部を送信することが続く、 請求項23記載の方法。 45.請求項23の方法に従って共にスプライスされた旧データストリームと 新データストリームとを含むデータがスプライスされたデータストリームの組み 合わせ。 46.(a)旧データストリーム内のスプライスアウトポイントを決定する工 程と、 (b)新データストリーム内のスプライスインポイントを決定する工程 と、 (c)新データストリームのリアルタイムの送信開始時間を決定する工 程をコンピュータに実行させるためのプログラム符号を記憶するコンピュータで 読み取り可能な記憶媒体。 47.工程(a)の前に、 別のデータストリームペアと同時にスプライスすべき新データストリームペア を決定する工程と、 前記新データストリームペアをスプライスするためのプログラム符号を開始す る工程とが先行する、請求項46記載の、コンピュータで読み取り可能な記憶媒 体。 48.工程(a)の前に、 前記データストリームの一部を記憶するための、少なくとも1つのデータ記憶 構造を設ける工程と、 前記少なくとも1つのデータ記憶構造内に前記データストリームの一部を記憶 する工程とが先行する、請求項46記載の、コンピュータで読み取り可能な記憶 媒体。 49.ホスト処理システムのメモリ内に前記少なくとも1つのデータ記憶構造 が位置する、請求項48記載の、コンピュータで読み取り可能な記憶媒体。 50.旧データストリームと新データストリームとを含む、デジタル式に符号 化されたデータストリームをスプライスするための方法であって、 (a)内部に決定すべきスプライスアウトポイントを有する旧データストリー ムの一部を示す、ユーザーが選択可能なパラメータを受信する工程と、 (b)旧データストリーム部分および新データストリーム部分を記憶するため のスプライスバッファを割り当てる工程と、 (c)旧データストリーム部分を前記スプライスバッファに向ける工程と、 (d)前記スプライスアウトポイントを決定する工程と、 (e)新データストリーム部分を前記スプライスバッファに向ける工程と、 (f)新データストリーム部分内のスプライスインポイントを決定し、新デー タストリーム部分の初期フレームが新データストリーム部分に先行するフレーム に依存する場合、前記従属性を除くよう、新データストリーム部分を変更する工 程と、 (g)前記バッファが旧データストリームの一部を最終的に受信した後に、復 号器のバッファが新データストリームの受信を、送信時に開始する場合、新デー タストリームと前記最終の受信とを整合する工程と、 (h)前記バッファが旧データストリームの一部を最終的に受信する前に、復 号器のバッファが新データストリームの受信を、送信時に開始する場合、新デー タストリームと前記最終の受信とを整合する工程とを備えた、デジタル式に符号 化されたデータストリームをスプライスするための方法。 51.工程(f)の前記従属性がオープンGOPであり、前記変更が画像のオ ープングループ(GOP)を閉じる、請求項50記載の方法。 52.(j)前記復号器のバッファのオーバーフローをチェックする工程と、 (k)オーバーフローが見つかった場合、前記オーバーフローを除く工程とを更 に備えた、請求項50記載の方法。 53.旧データストリームと新データストリームとを含む、デジタル式に符号 化されたデータストリームをスプライスするためのスプライサーであって、 (a)旧データストリームのスプライスアウトポイントおよび新データストリ ームのスプライスインポイントに従って新データストリームのリアルタイムの送 信開始時間を決定するための手段と、 (b)前記新データストリームのリアルタイムの送信時間に従って新データス トリームと旧データストリームとを整合するための手段とを備えた、デジタル式 に符号化されたデータストリームをスプラィスするためのスプライサー。 54.(a)新データストリームのスプライスインポイントを決定する工程と 、 (b)新データストリームが初期オープンGOPを含む場合、新データ ストリームの初期の画像オープングループ(GOP)を閉じる工程とを含む、デ ジタル式に符号化されたデータストリームを作成するための方法。 55.旧データストリームと新データストリームとを含む、デジタル式に符号 化されたデータストリームをスプライスするためのスプライサーであって、 (a)新データストリームのスプライスインポイントを決定する手段と、 (b)新データストリームがオープンGOPを含む場合、新データストリーム の画像オープングループ(GOP)を閉じる手段とを備えた、デジタル式に符号 化されたデータストリームをスプライスするためのスプライサー。 56.インサートモードオプションとスプライスオンリーモードオプションと のいずれかのユーザーの選択に従って、工程(a)で前記スプライスアウトポイ ントを決定する、請求項50記載の方法。 57.シーケンスヘッダーの直前でスプライスアウトポイントを決定する、請 求項56記載の方法。 58.画像グループ(GOP)ヘッダー、IフレームおよびPフレームのうち に最初に発生する1つの直前で、スプライスアウトポイントを決定する、請求項 56記載の方法。 59.前記スプライスインポイントを決定する工程が、 新データストリームの画像グループ(GOP)内に含まれる、新データストリ ームのフレームに対する符号化時間スタンプ(DTS)を探す工程と、 前記フレームのための対応する提示時間スタンプを探し、前記フレームがIフ レーム以外のフレームである場合、前記GOPを閉じる工程とを備えた、請求項 50記載の方法。 60.前記フレームが新データストリームの初期フレームである、請求項59 記載の方法。 61.前記DTSを探す工程が、第1シーケンスヘッダーに対する新データス トリームの第1部分を分析し、次に更に第1フレームヘッダー前の最終DTSに 対し、前記第1部分を分析することを含む、請求項59記載の方法。 62.符号化されたデータストリーム部分の初期フレームを独立して復号化で きるように保証するための方法であって、 (a)前記部分内の独立して復号化できるフレームを決定する工程と、 (b)前記独立して復号化可能なフレームと共に、前記部分の再生を開始させ る工程と、 (c)受信復号器が前記部分の第1フレームとして前記独立して復号化可能な フレームを復号するように、前記部分の順序パラメータを変更する工程とを備え た方法。 63.前記独立して復号化可能なフレームに先行する前記部分内のフレームを 削除することにより工程(b)を実行する、請求項62記載の方法。 64.複数のフレームを含む、デジタル式に符号化されたデータストリームの オープンGOPを閉じるための方法であって、 (a)前記GOP内の第1Iフレームを決定する工程と、 (b)前記GOP内において、前記Iフレームに先行する前記フレームのすべ てのうちの最大のDTSを決定する工程と、 (c)前記Iフレームに先行する前記GOP内のすべてのフレームを削除する 工程と、 (d)前記GOP内の少なくとも1つの残りのフレームに対する時間基準を変 更する工程と、 (e)前記IフレームのDTSを工程(b)の前記最大のDTSに置換する工 程とを備えた、オープンGOPを閉じるための方法。 65.前記変更する工程(d)が、前記GOP内の残りのフレームの増加する 時間基準値を、工程(c)で削除されたフレームの対応して増加する時間基準値 に置換することを含む、請求項62記載の方法。 66.新データストリームのリアルタイム送信時間を探す工程を含む、デジタ ル式に符号化された旧データストリームのスプライスアウト部分とデジタル式に 符号化された新データストリームのスプライスイン部分とを整合するための方法 。 67.前記探す工程が、 (a)前記新データストリームの第1パケットのプログラムクロック基準(P CR)を決定する工程と、 (b)前記新データストリームを送信する場合に、前記新データストリームの 第1シーケンスヘッダーの送信と、前記新データストリームの第1フレームの第 1復号化時間スタンプ(DTS)との間のデルタ期間を決定する工程と、 (c)前記第1DTSとフレーム間遅延時間との和として、連続DTSを決定 する工程と、 (d)前記連続DTSと前記デルタ期間との差として、前記新データストリー ムのリアルタイム送信時間を決定する工程とを備えた、請求項66記載の方法。 68.前記探す工程を前記新データストリームと前記旧データストリームとの スプライス中にリアルタイムで実行する、請求項66記載の方法。 69.前記フレーム間遅延時間が1001/30,000秒である、請求項6 7記載の方法。 70.デジタル式に符号化された旧データストリームのスプライスアウト部分 とデジタル式に符号化された新データストリームのスプライスイン部分とを整合 するための方法であって、前記新データストリームの受信時間の開始を設定する ことを含み、この受信時間において前記新データストリームを送信する場合、前 記旧データストリームの前記スプライスアウト部分に対する復号化時間と整合し て、復号器による前記新データストリームの受信を開始する方法。 71.前記データストリームの送信時に復号器が前記スプライスアウト部分の すべてを受信する前に、復号器により前記新データストリームの受信を開始する 場合、前記設定する工程が前記新データストリームのための送信遅延パラメータ を設定することを含む、請求項70記載の方法。 72.前記新データストリームを送信する場合、他の新データストリームのデ ータのほぼ前でゼロパケットを送信するよう、前記新データストリームの位置に 前記遅延パラメータに対応する数のゼロパケットを挿入することを更に含む、請 求項71記載の方法。 73.新データストリームを送信する場合、復号器が前記スプライスアウト部 分のすべてを受信する前に、挿入することなく受信されるデータパケットの数に 前記ゼロパケットの数が等しい、請求項72記載の方法。 74.送信時において、復号器が前記スプライスアウト部分のすべてを受信し た後に、前記新データストリームが復号器によって受信され始める場合、前記新 データストリームに対する送信加速パラメータを設定することを、前記設定工程 が含む、請求項70記載の方法。 75.前記新データストリームを送信する場合、前記新データストリームの最 初に送信された部分から前記加速パラメータを対応して有する数のゼロパケット を削除することを更に含む、請求項74記載の方法。 76.新データストリームを送信する場合、復号器が前記スプライスアウト部 分のすべてを受信した後に、前記削除を行うことなく復号器によって受信される データパケットの数に前記ゼロパケットの数が等しい、請求項75記載の方法。 77.デジタル式に符号化された旧データストリームのスプライスアウト部分 とデジタル式に符号化された新データストリームのスプライスイン部分の各々が 複数のパケットを含み、前記スプライスアウト部分と前記スプライスイン部分と を整合するための方法であって、 (a)送信すべき前記スプライスアウト部分の最終パケットのプログラムクロ ック基準(PCR)のために前記スプライスアウト部分を分析する工程と、 (b)前記新データストリームの第1フレームの第1シーケンスヘッダーおよ び第1復号化時間スタンプ(DTS)に対する前記スプライスイン部分を分析す る工程と、 (c)前記新データストリームの連続DTSを決定する工程と、 (d)工程(a)のスプライスアウトPCRが工程(c)のリアルタイムの送 信時間よりも短い場合に、前記スプライスイン部分よりも前で送信する際に、前 記スプライスアウト部分の復号化とほぼ同じ時間に前記スプライスイン部分の送 信を開始させるゼロパケットの総数を示す値を記憶する工程と、 (e)工程(a)の前記スプライスアウト部分PCRが工程(c)の前記リア ルタイムの送信時間よりも長い場合に、前記スプライスイン部分から削除する際 に、スプライスアウト部分PCRがリアルタイムの送信時間に等しくなる状態に 近似させるゼロパケットの総数を記憶する工程とを備えた方法。 78.データストリーム部分のスケジュールされた送信時間を加速および遅延 させる値を決定するためのシフト手段と、前記シフト手段によって決定された値 だけ加速または遅延された送信時間で前記データストリーム部分を送信するため の送信手段とを備えた、デジタル式に符号化されたデータストリーム送信機。 79.前記新データストリームのデータを複数のデータパケットとして受信す る、請求項78記載の装置。 80.前記遅延値をデータストリームのデータのデータパケットの数に対応す る時間として計算する、請求項79記載の装置。 81.デジタル式に符号化された新データストリームを、デジタル式に符号化 された旧データストリームにスプライスされた状態で送信するための送信機であ って、 送信機と、 前記旧データストリームへの前記新データストリームのスプライシングに対応 する時間に、前記新データストリームのうちの新データストリームのデータの送 信をスケジュールするためのビットクロック手段とを備えた送信機。
JP55069899A 1998-04-04 1999-04-02 デジタルビデオストリームをスプライスするための装置および方法 Pending JP2002507375A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/055,156 US7031348B1 (en) 1998-04-04 1998-04-04 Apparatus and method of splicing digital video streams
US09/055,156 1998-04-04
PCT/US1999/007302 WO1999052067A2 (en) 1998-04-04 1999-04-02 Apparatus and method of splicing digital video streams

Publications (1)

Publication Number Publication Date
JP2002507375A true JP2002507375A (ja) 2002-03-05

Family

ID=21995992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP55069899A Pending JP2002507375A (ja) 1998-04-04 1999-04-02 デジタルビデオストリームをスプライスするための装置および方法

Country Status (9)

Country Link
US (1) US7031348B1 (ja)
EP (1) EP0998726A2 (ja)
JP (1) JP2002507375A (ja)
KR (1) KR20010013390A (ja)
CN (1) CN1275289A (ja)
AU (1) AU3742399A (ja)
CA (1) CA2296592A1 (ja)
IL (1) IL133260A (ja)
WO (1) WO1999052067A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527765A (ja) * 2004-11-24 2008-07-24 シャープ株式会社 アダプティブバッファリングのための方法と装置
JP2022517854A (ja) * 2019-04-23 2022-03-10 華為技術有限公司 メディアストリーム送信方法、装置、システム、およびデバイス

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230193B1 (en) * 1996-10-31 2001-05-08 3Com Corporation Method and apparatus supporting network communications
WO2000001160A2 (en) 1998-06-29 2000-01-06 Limt Technology Ab Method and apparatus for splicing data streams
US7091968B1 (en) * 1998-07-23 2006-08-15 Sedna Patent Services, Llc Method and apparatus for encoding a user interface
US6754905B2 (en) 1998-07-23 2004-06-22 Diva Systems Corporation Data structure and methods for providing an interactive program guide
JP4605902B2 (ja) * 1998-07-23 2011-01-05 コムキャスト アイピー ホールディングス アイ, エルエルシー 双方向ユーザインターフェイス
US9924234B2 (en) 1998-07-23 2018-03-20 Comcast Ip Holdings I, Llc Data structure and methods for providing an interactive program
GB2347812A (en) * 1999-03-08 2000-09-13 Nds Ltd Real time splicing of video signals
US7096487B1 (en) 1999-10-27 2006-08-22 Sedna Patent Services, Llc Apparatus and method for combining realtime and non-realtime encoded content
US6904610B1 (en) 1999-04-15 2005-06-07 Sedna Patent Services, Llc Server-centric customized interactive program guide in an interactive television environment
US6754271B1 (en) 1999-04-15 2004-06-22 Diva Systems Corporation Temporal slice persistence method and apparatus for delivery of interactive program guide
US6330286B1 (en) * 1999-06-09 2001-12-11 Sarnoff Corporation Flow control, latency control, and bitrate conversions in a timing correction and frame synchronization apparatus
WO2001031914A1 (en) 1999-10-27 2001-05-03 Diva Systems Corporation Picture-in-picture and multiple video streams using slice-based encoding
AU2002314450A1 (en) * 2001-03-23 2002-10-08 Popwire.Com Method and apparatus for streaming video
US7068719B2 (en) 2001-06-01 2006-06-27 General Instrument Corporation Splicing of digital video transport streams
US7274862B2 (en) * 2001-09-27 2007-09-25 Sony Corporation Information processing apparatus
KR100851001B1 (ko) * 2002-01-23 2008-08-12 주식회사 엘지이아이 프로그램 기록/재생 장치
US7620699B1 (en) * 2002-07-26 2009-11-17 Paltalk Holdings, Inc. Method and system for managing high-bandwidth data sharing
US9456243B1 (en) 2003-06-06 2016-09-27 Arris Enterprises, Inc. Methods and apparatus for processing time-based content
JP3823191B2 (ja) * 2003-07-31 2006-09-20 松下電器産業株式会社 データ出力制御装置
KR101022471B1 (ko) * 2004-01-17 2011-03-16 삼성전자주식회사 멀티미디어 데이터를 기록한 정보저장매체, 그 재생방법및 재생장치
CN1320820C (zh) * 2004-02-13 2007-06-06 威盛电子股份有限公司 传输影像帧的方法
WO2006105010A1 (en) 2005-03-25 2006-10-05 Neocific, Inc. Methods and apparatus for cellular broadcasting and communication system
US20060075449A1 (en) * 2004-09-24 2006-04-06 Cisco Technology, Inc. Distributed architecture for digital program insertion in video streams delivered over packet networks
CN101164347B (zh) * 2005-04-26 2010-08-25 汤姆森许可贸易公司 同步流打包
US8155098B2 (en) 2005-06-09 2012-04-10 Neocific, Inc. Methods and apparatus for power efficient broadcasting and communication systems
US8861590B2 (en) * 2005-07-29 2014-10-14 Arris Enterprises, Inc. Methods and systems for signal insertion
US8229983B2 (en) 2005-09-27 2012-07-24 Qualcomm Incorporated Channel switch frame
NZ566935A (en) * 2005-09-27 2010-02-26 Qualcomm Inc Methods and apparatus for service acquisition
JP2007124197A (ja) * 2005-10-27 2007-05-17 Sharp Corp 受信機、通信方法、送受信システム
US7738768B1 (en) 2005-12-16 2010-06-15 The Directv Group, Inc. Method and apparatus for increasing the quality of service for digital video services for mobile reception
US20080310451A1 (en) * 2005-12-23 2008-12-18 Koninklijke Philips Electronics N.V. Splitting of a Data Stream
US8218651B1 (en) * 2006-02-28 2012-07-10 Arris Group, Inc System and method for splicing
US8326927B2 (en) * 2006-05-23 2012-12-04 Cisco Technology, Inc. Method and apparatus for inviting non-rich media endpoints to join a conference sidebar session
US8358763B2 (en) * 2006-08-21 2013-01-22 Cisco Technology, Inc. Camping on a conference or telephony port
CN103024444B (zh) * 2006-11-14 2015-11-18 高通股份有限公司 用于信道切换的系统及方法
EP2098077A2 (en) * 2006-11-15 2009-09-09 QUALCOMM Incorporated Systems and methods for applications using channel switch frames
US8121277B2 (en) * 2006-12-12 2012-02-21 Cisco Technology, Inc. Catch-up playback in a conferencing system
US20080155581A1 (en) * 2006-12-21 2008-06-26 General Instrument Corporation Method and Apparatus for Providing Commercials Suitable for Viewing When Fast-Forwarding Through a Digitally Recorded Program
US8179979B2 (en) * 2007-05-01 2012-05-15 Intel Corporation Detection and compensation of discontinuities in data stream
EP2232843A4 (en) * 2007-12-19 2011-07-27 Colin Simon DIGITAL VIDEO AND AUDIO FLOW SYNCHRONIZATION DEVICE AND METHOD FOR MULTIMEDIA PRESENTATION DEVICES
US8966103B2 (en) * 2007-12-21 2015-02-24 General Instrument Corporation Methods and system for processing time-based content
US8411569B2 (en) * 2008-01-10 2013-04-02 Alcatel Lucent Method of splicing encoded multimedia data streams
CN101252685B (zh) * 2008-02-22 2011-04-27 华为技术有限公司 解码方法及装置
US8904426B2 (en) * 2008-06-30 2014-12-02 Rgb Networks, Inc. Preconditioning ad content for digital program insertion
US9009337B2 (en) 2008-12-22 2015-04-14 Netflix, Inc. On-device multiplexing of streaming media content
US20100225811A1 (en) * 2009-03-05 2010-09-09 Nokia Corporation Synchronization of Content from Multiple Content Sources
US9319754B2 (en) * 2009-04-28 2016-04-19 Vubites India Private Limited Method and apparatus for coordinated splicing of multiple streams
US8495105B2 (en) * 2009-12-22 2013-07-23 International Business Machines Corporation Consolidating input messages for social activity summarization
WO2012050838A1 (en) 2010-09-28 2012-04-19 Neocific, Inc. Methods and apparatus for flexible use of frequency bands
US8424025B2 (en) 2011-02-22 2013-04-16 Microsoft Corporation Interface for displaying content supporting hardware acceleration
EP2498494A1 (en) * 2011-03-11 2012-09-12 Thomson Licensing Decoder and method at the decoder for synchronizing the rendering of contents received through different networks
KR101860329B1 (ko) * 2011-05-05 2018-05-23 삼성전자주식회사 멀티미디어 파일 스킵 방법 및 이를 적용한 멀티미디어 장치
CN102769779B (zh) * 2011-05-05 2015-03-11 三星电子(中国)研发中心 一种多媒体文件的快速跳进方法
US9154813B2 (en) 2011-06-09 2015-10-06 Comcast Cable Communications, Llc Multiple video content in a composite video stream
US9264508B2 (en) 2011-08-19 2016-02-16 Time Warner Cable Enterprises Llc Apparatus and methods for reduced switching delays in a content distribution network
US9363540B2 (en) 2012-01-12 2016-06-07 Comcast Cable Communications, Llc Methods and systems for content control
KR101858695B1 (ko) * 2012-04-09 2018-05-16 엘지전자 주식회사 데이터 관리 방법
JP5891975B2 (ja) * 2012-07-02 2016-03-23 富士通株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法および動画像復号方法
JP6094126B2 (ja) * 2012-10-01 2017-03-15 富士通株式会社 動画像復号装置
JP6728154B2 (ja) * 2014-10-24 2020-07-22 ドルビー・インターナショナル・アーベー オーディオ信号のエンコードおよびデコード
EP3160145A1 (en) * 2015-10-20 2017-04-26 Harmonic Inc. Edge server for the distribution of video content available in multiple representations with enhanced open-gop transcoding
CN105323636A (zh) * 2015-10-29 2016-02-10 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置
US10652594B2 (en) 2016-07-07 2020-05-12 Time Warner Cable Enterprises Llc Apparatus and methods for presentation of key frames in encrypted content
US11109290B2 (en) 2017-08-04 2021-08-31 Charter Communications Operating, Llc Switching connections over frequency bands of a wireless network
US10958948B2 (en) * 2017-08-29 2021-03-23 Charter Communications Operating, Llc Apparatus and methods for latency reduction in digital content switching operations
US10939142B2 (en) 2018-02-27 2021-03-02 Charter Communications Operating, Llc Apparatus and methods for content storage, distribution and security within a content distribution network
CN111866568B (zh) * 2020-07-23 2023-03-31 聚好看科技股份有限公司 一种显示设备、服务器及基于语音的视频集锦获取方法
US11838033B1 (en) * 2022-09-20 2023-12-05 Western Digital Technologies, Inc. Partial speed changes to improve in-order transfer

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3979771A (en) * 1975-03-19 1976-09-07 Xerox Corporation Magnetic tape phase encoded data read circuit
US5534944A (en) 1994-07-15 1996-07-09 Matsushita Electric Corporation Of America Method of splicing MPEG encoded video
US5612900A (en) 1995-05-08 1997-03-18 Kabushiki Kaisha Toshiba Video encoding method and system which encodes using a rate-quantizer model
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
WO1997046027A1 (en) * 1996-05-29 1997-12-04 Sarnoff Corporation Preserving synchronization of audio and video presentation
US6137834A (en) 1996-05-29 2000-10-24 Sarnoff Corporation Method and apparatus for splicing compressed information streams
US5880792A (en) * 1997-01-29 1999-03-09 Sarnoff Corporation Command and control architecture for a digital studio
US5917830A (en) * 1996-10-18 1999-06-29 General Instrument Corporation Splicing compressed packetized digital video streams
US6038000A (en) * 1997-05-28 2000-03-14 Sarnoff Corporation Information stream syntax for indicating the presence of a splice point
US6058109A (en) * 1997-02-04 2000-05-02 The Kohl Group, Inc. Combined uniform rate and burst rate transmission system
US20020154694A1 (en) * 1997-03-21 2002-10-24 Christopher H. Birch Bit stream splicer with variable-rate output
US5982436A (en) * 1997-03-28 1999-11-09 Philips Electronics North America Corp. Method for seamless splicing in a video encoder
US6101195A (en) * 1997-05-28 2000-08-08 Sarnoff Corporation Timing correction method and apparatus
AU9122998A (en) 1997-09-12 1999-04-05 Imedia Corporation Seamless splicing of compressed video programs
US6034746A (en) * 1997-10-27 2000-03-07 International Business Machines Corporation System and method for inserting data into a digital audio/video data stream
US6029045A (en) * 1997-12-09 2000-02-22 Cogent Technology, Inc. System and method for inserting local content into programming content
US6049569A (en) * 1997-12-09 2000-04-11 Philips Electronics N.A. Corporation Method and apparatus for encoding digital video bit streams with seamless splice points and method and apparatus for splicing such digital video bit streams

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527765A (ja) * 2004-11-24 2008-07-24 シャープ株式会社 アダプティブバッファリングのための方法と装置
US8218439B2 (en) 2004-11-24 2012-07-10 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive buffering
JP2022517854A (ja) * 2019-04-23 2022-03-10 華為技術有限公司 メディアストリーム送信方法、装置、システム、およびデバイス
JP7259056B2 (ja) 2019-04-23 2023-04-17 華為技術有限公司 メディアストリーム送信方法、装置、システム、およびデバイス
US11848973B2 (en) 2019-04-23 2023-12-19 Huawei Technologies Co., Ltd. Media stream sending method, apparatus, system and device

Also Published As

Publication number Publication date
US7031348B1 (en) 2006-04-18
KR20010013390A (ko) 2001-02-26
WO1999052067A3 (en) 2000-02-24
AU3742399A (en) 1999-10-25
IL133260A (en) 2007-05-15
WO1999052067A2 (en) 1999-10-14
IL133260A0 (en) 2001-04-30
CN1275289A (zh) 2000-11-29
EP0998726A2 (en) 2000-05-10
CA2296592A1 (en) 1999-10-14

Similar Documents

Publication Publication Date Title
JP2002507375A (ja) デジタルビデオストリームをスプライスするための装置および方法
US6101195A (en) Timing correction method and apparatus
EP1397918B1 (en) Splicing of digital video transport streams
US6993081B1 (en) Seamless splicing/spot-insertion for MPEG-2 digital video/audio stream
KR100226528B1 (ko) 다중화 압축화상/음성데이타의 복호장치
KR100538135B1 (ko) 정보 스트림 프레임 동기 방법 및 장치
EP0755157B1 (en) Method of splicing MPEG encoded video
US7227899B2 (en) Method and system for re-multiplexing of content-modified MPEG-2 transport streams using interpolation of packet arrival times
JP2000188759A (ja) 情報ストリ―ムの高フレ―ム精度シ―ムレス・スプライシング
JPH0884333A (ja) 符号化されたビデオ信号をスプライシングする方法
CA2303149C (en) Seamless splicing of compressed video programs
US7693222B2 (en) Method and system for re-multiplexing of content-modified MPEG-2 transport streams using PCR interpolation
US8904426B2 (en) Preconditioning ad content for digital program insertion
US8842740B2 (en) Method and system for fast channel change
JP2003512788A (ja) デジタル媒体広告を統計多重ストリームに挿入する方法および装置
US7139241B1 (en) Method for preventing buffer underflow during digital transport stream transmission, multiplexing and splicing
EP0871337A2 (en) Method and apparatus for modifying a digital data stream
KR100517794B1 (ko) 압축된정보스트림을스플라이싱하는방법및장치
CA2535457C (en) Method and system for re-multiplexing of content-modified mpeg-2 transport streams using pcr interpolation
Ramaswamy A standard target decoder model for MPEG-4 FlexMux streams