(57)【要約】【解決手段】本発明は、概して、共通リソースによる複数データストリームの処理に関する。特に、本発明は複数のデジタルビデオプログラムの時間多重化処理のための技術に関する。ひとつの実施例において、一組のデジタルストリームの時間多重化処理を与える方法は、RAMへ受信されたパケットを格納する工程を含む。各ストリームに対して、受信機での次のパケットの到着期限が決定され、期限に基づいて優先順位が割当てられる。最高の優先順位を有するストリームは識別されたストリームとして同定される。ある実施例において、識別されたストリームの処理状態がその後復元される。識別されたストリームに対応するデータのひとつまたはそれ以上のパケットは検索パケットを生成するべくRAMから検索される。処理状態は検索されたパケットが処理された後保存される。
2006508620.tif 000002
【特許請求の範囲】
【請求項１】
複数のデジタルストリームを処理する方法であり、各デジタルストリームは連続表示用に並べられたパケットを含むところの方法であって、
前記複数のデジタルストリームの各々に対するパケットを受信する工程と、
前記パケットの各々を前記複数のデジタルストリームのそれぞれのストリームと関連付ける工程と、
前記複数のデジタルストリームのひとつのパケットのサブセットが、パケットの他のサブセットの前に処理されるべきことを決定する工程と、
から成る方法。
【請求項２】
請求項１に記載の方法であって、さらに、前記受信されたパケットをバッファ内に格納する工程を含む方法。
【請求項３】
請求項２に記載の方法であって、さらに、
処理用のパケットのサブセットを選択する工程と、
前記バッファからパケットの前記サブセットを受信する工程と、
を含む方法。
【請求項４】
請求項３に記載の方法であって、パケットの前記サブセットは受信された順に検索される、ところの方法。
【請求項５】
請求項１に記載の方法であって、さらに、前記複数のデジタルストリームの各々に対して優先順位を割当てる工程を含む方法。
【請求項６】
請求項５に記載の方法であって、さらに、最高の優先順位と関連する複数のデジタルストリームのひとつに基づいて、処理されるべきパケットの前記サブセットを決定する工程を含む方法。
【請求項７】
請求項５に記載の方法であって、前記優先順位は期限を表す、ところの方法。
【請求項８】
請求項７に記載の方法であって、前記期限は関連アクセス単位のヘッダから抽出されたデコーディング・タイム・スタンプから導出される、ところの方法。
【請求項９】
請求項１に記載の方法であって、パケットの前記サブセットは連続して並べられ、並べられたパケットの前記サブセットはアクセス単位を構成する、ところの方法。
【請求項１０】
請求項９に記載の方法であって、アクセス単位はビデオフレームを表す、ところの方法。
【請求項１１】
請求項９に記載の方法であって、アクセス単位はオーディオフレームを表す、ところの方法。
【請求項１２】
請求項１に記載の方法であって、さらに、前記複数のデジタルストリームのひとつの他のサブセットが新しいアクセス単位と関連することを決定する工程を含む、ところの方法。
【請求項１３】
請求項１２に記載の方法であって、前記他のサブセットが新しいアクセス単位と関連することを決定する工程は、さらに複数のデジタルストリームのひとつと関連する優先順位を調節する工程を含む、ところの方法。
【請求項１４】
請求項１３に記載の方法であって、前記優先順位の調節は、最初の未処理パケットとして受信される他のサブセットのパケットに応答して生じる、ところの方法。
【請求項１５】
請求項１に記載の方法であって、さらに、複数のデジタルストリームの各々に関連する状態を保持する工程を含む方法。
【請求項１６】
請求項１５に記載の方法であって、前記状態は前記サブセットの処理に対するパラメータを含む、ところの方法。
【請求項１７】
請求項１５に記載の方法であって、前記状態はビデオの少なくともひとつのフレームを表す画素データを含む、ところの方法。
【請求項１８】
請求項１５に記載の方法であって、さらに、前記状態を格納するためにメモリを割当てる工程を含む方法。
【請求項１９】
請求項１８に記載の方法であって、メモリを割当てる工程は、割当て単位を形成するようメモリを象限に回帰的に再分割する工程であって、前記割当て単位のひとつは、少なくともひとつの寸法がビデオフレームの対応する寸法より小さくなること無しにさらに再分割できない象限であるところの方法。
【請求項２０】
請求項１８に記載の方法であって、メモリはページに割当てられ、前記ページの各々は固定サイズの隣接するメモリ単位である、ところの方法。
【請求項２１】
請求項２０に記載の方法であって、未割当てページはメモリの未使用ページを管理するよう構成されたフリーリストを使って管理される、ところの方法。
【請求項２２】
複数のデジタルストリームを処理するための装置であり、各デジタルストリームが連続表示用に並べられたパケットを含むところの装置であって、
複数のデジタルストリームの各々に対するパケットを受信する手段と、
前記パケットの各々を複数のデジタルストリームの各ストリームと関連付けるための手段と、
他のデジタルストリームのパケットの他のサブセットの前に、複数のデジタルストリームのひとつのパケットのサブセットが処理されるべきことを決定するための手段と、
から成る装置。
【請求項２３】
請求項２２に記載の装置であって、さらに、受信されたパケットを格納するためのバッファを含む装置。
【請求項２４】
請求項２３に記載の装置であって、さらに、
処理用のパケットのサブセットを選択するための手段と、
前記バッファからパケットのサブセットを検索するための手段とを含む装置。
【請求項２５】
請求項２２に記載の装置であって、さらに、複数のデジタルストリームの各々に対して優先順位を割当てるための手段を含む装置。
【請求項２６】
請求項２５に記載の装置であって、さらに、最高の優先順位と関連する複数のデジタルストリームのひとつに基づいて、処理されるべきパケットのサブセットを決定するための手段を含む装置。
【請求項２７】
請求項２５に記載の装置であって、前記優先順位は期限を表す、ところの装置。
【請求項２８】
請求項２６に記載の装置であって、さらに、関連するアクセス単位のヘッダからデコーディング・タイム・スタンプを抽出するための手段を含み、前記デコーディング・タイム・スタンプは前記期限を導出するために使用される、ところの装置。
【請求項２９】
請求項２２に記載の装置であって、さらに、複数のデジタルストリームのひとつの他のサブセットが新しいアクセス単位に関連していることを決定するための手段を含む装置。
【請求項３０】
請求項２９に記載の装置であって、前記他のサブセットが前記新しいアクセス単位と関連することを決定するための前記手段は、さらに、複数のデジタルストリームのひとつに関連する優先順位を調節するための手段を含むところの装置。
【請求項３１】
請求項３０に記載の装置であって、さらに、前記優先順位が、第１未処理パケットとして受信された他のサブセットのパケットに応答することを調節するための手段を含む装置。
【請求項３２】
請求項２２に記載の装置であって、さらに、複数のデジタルストリームの各々に関連する状態を保持するための手段を含む装置。
【請求項３３】
請求項３２に記載の装置であって、前記状態を保持するための手段は処理パラメータを格納するためのメモリを含む、ところの装置。
【請求項３４】
請求項３２に記載の装置であって、前記状態を保持するための手段はビデオの少なくともひとつのフレームを表す画素データを格納するためのメモリを含む、ところの装置。
【請求項３５】
請求項３４に記載の装置であって、さらに、前記メモリを象限に回帰的に再分割するための手段を含む装置。
【請求項３６】
請求項３４に記載の装置であって、さらに、前記メモリをページに区分するための手段であって、前記ページの各々は固定サイズの隣接するメモリ単位である、ところの手段を含む装置。
【請求項３７】
請求項３６に記載の装置であって、さらに、メモリの未使用ページを管理するためのフリーリストを含む装置。
【請求項３８】
請求項３６に記載の装置であって、さらに、仮想アドレスをページアドレスへマッピングするためのトランスレーション・ルックアサイド・バッファを含む装置。
【請求項３９】
請求項３６に記載の装置であって、さらに、メモリからページを検索しかつ要求されたサイズのブロックへデータを組み合わせるための手段を含む装置。
【請求項４０】
請求項３９に記載の装置であって、さらに、メモリから検索されたひとつまたはそれ以上のページを格納するためのキャッシュを含む装置。
【請求項４１】
データの複数のストリームを処理するための方法であって、
複数のストリームの単一ストリームを識別する工程と、
識別された単一ストリームに対応するデータのサブセットを第１フォーマットから第２フォーマットへ変換する工程と、
単一の識別されたストリームに対するデータの次のサブセットを分類する工程と、
から成る方法。
【請求項４２】
請求項４１に記載の方法であって、さらに、複数のストリームの各々に関連する状態を保持する工程を含む方法。
【請求項４３】
請求項４２に記載の方法であって、前記状態は、ひとつまたはそれ以上のビデオ、オーディオ、及び非A/Vデータを表すデータを含む、ところの方法。
【請求項４４】
データの複数のストリームをスケジューリングする方法であって、
第１ストリームに関連するデータの第１サブセットを分類し、第２ストリームに関連するデータの第２サブセットから前記第１サブセットを区別する工程と、
第１インターバルの間に第１フォーマットから第２フォーマットへ変換するために、データの前記第１サブセットのみを選択する工程と、
から成る方法。
【請求項４５】
請求項４４に記載の方法であって、さらに、前記複数のストリームの他が変換されない間に、前記第１フォーマットから前記第２フォーマットへ変換する工程を含む方法。
【請求項４６】
請求項４５に記載の方法であって、さらに、第１インターバルの間に前記第２サブセットに関連する状態を保持する工程であって、前記状態はひとつまたはそれ以上のビデオ、オーディオ、及び非A/Vデータを表すデータを含むところの工程を含む方法。
【請求項４７】
請求項４６に記載の方法であって、前記データはビデオを表し、ビデオの少なくともひとつのフレームを表す画素データを含む、ところの方法。
【請求項４８】
請求項４４に記載の方法であって、データの前記第１サブセットを分類する工程は、
データの前記第１及び第２サブセットを順位付けする工程と、
データの前記第１及び第２サブセットにそれぞれ第１優先順位及び第２優先順位のタグを付ける工程と、
から成るところの方法。
【請求項４９】
請求項４８に記載の方法であって、前記第１優先順位及び第２優先順位はそれぞれ第１ストリーム及び第２ストリームに対する優先順位を表す、ところの方法。
【請求項５０】
請求項４８に記載の方法であって、前記第１優先順位は第１期限までの第１時間間隔に関連し、前記第２優先順位は第２期限までの第２時間間隔に関連し、前記第１時間間隔は前記第２時間間隔より短い、ところの方法。
【請求項５１】
複数のストリームの各ストリームを変換するための装置であって、
複数のストリームの各々に対する各パケットのデータに優先順位を示すタグを割当てるよう構成された分類器モジュールと、
タグのサブセットを格納するよう構成された、複数のストリームの各々に関連するバッファと、
第１時間インターバルの間に第１フォーマットから第２フォーマットへ変換するために複数のストリームのひとつのみを選択するよう構成されたパケットスケジューラモジュールと、
から成る装置。
【請求項５２】
請求項５１に記載の装置であって、フレームの第１パケットは複数のストリームのひとつのフレームの第２パケットより優先順位が低い、ところの装置。
【請求項５３】
請求項５１に記載の装置であって、さらに、ひとつまたはそれ以上のタグのサブセットに関連する相対的な優先順位を格納するよう構成された優先順位待ち行列モジュールを含む、ところの装置。
【請求項５４】
請求項５３に記載の装置であって、前記優先順位待ち行列モジュールは、前記第１フォーマットから前記第２フォーマットへのパケットのデータ変換をスケジューリングするために前記パケットスケジューラモジュールへ優先順位の範囲を与えるよう構成される、ところの装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、共通のリソースを有する複数のデータストリームの処理に関する。特に、本発明は、複数のデジタルビデオプログラムの時間多重化処理の技術に関する。
【背景技術】
【０００２】
デジタルコンテンツの多くのプロバイダーは、ビデオ、オーディオ等を含むコンテンツをいつでもオンデマンドで顧客に配信することを望む。特に、これらのプロバイダーは、視聴者が、放送スケジュールから自由に全部のテレビ番組にアクセスすることができるように努めている。典型的なテレビ番組は、新公開映画、並びにさまざまなテレビネットワークから生じるすべての方法及び割増テレビ番組を含む。エブリシング・オンデマンド(EOD)及びネットワーク・パーソナル・ビデオ・レコーダ(nPVR)は、この種のオンデマンドサービスを記述するのに造られた用語である。
【０００３】
現在、ビデオオンデマンド(VOD)と呼ばれる従来のビデオサービス技術は、制限された量のビデオを時間シフト形式で与えるのに利用されている。しかし、EODをサポートするためにこの技術を使用する際には欠点がある。例えば、視聴者は放送されたソースからほとんどのコンテンツを現に受信し、VODを与えるためのリソースは一度に制限された数の加入者のみにビデオを伝送するように主に設計されている。VODサーバー及びVOD配信装置のようなVODリソースは、EODに従って視聴者のほとんどのコンテンツを与えるように設計されていない。よって、フルタイムベースで各顧客に対し、専用のオンデマンドストリームを与えるのに十分なVODリソースを配備するのは禁止的に高価となる。
【０００４】
VOD及びEODサービスに対して必要な装置は、サーバー、転送、及び配信の３つのセグメントのひとつに入る。サーバーはビデオプログラムを格納しかつ出力し、転送装置は、典型的に光ファイバーを通じて、配信サイトとハブとの間でビデオファイル及びリアルタイムストリームを伝播する。配信装置は概して、家庭への最終伝送用のビデオストリームを発信し、切り替え、多重化し、トランスレートし、トランスコードし、スクランブルし、変調しかつアップコンバートする。典型的に、配信装置は、ケーブルヘッドエンド、ケーブルハブ、電話会社中央局、及び他の配信センターに配置される。
【０００５】
従来のVOD配信装置の欠点は、ビデオストリームを変換し、スプライスし、発信し、及びトランスコードする能力に欠けていることである。従来のVODリソースは帯域幅が不十分で、切り替え能力がフレキシブルではない。また、トランスレート、エンコード、デコード、トランスコード及びスクランブルのような多くの処理は、入力ストリームが連続することを当てにしたハードウエアまたはソフトウエア処理を使ってしばしば実行され、したがって時間多重化された複数ストリームに必要なリソースのスケジューリング及び状態管理を含んでいない。その代わり、各ストリームプロセッサは最悪ケースの要求に一致する十分なリソースにより実行されなければならず、任意の複数ストリームの能力はサブシステムの処理をストリーム全体で繰り返すことにより達成される。これらの理由から、配信及び他のリソースは従来高価であり、配信センサーにおいて不必要に物理的スペースを占めていた。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上を考慮し、コンテンツを伝送するための上記技術及び構造に関連する欠点を克服することが所望される。大量のビデオ、オーディオ及びデータストリームを処理し、オンデマンド、ポイント・ツー・ポイント、及びユニキャスト形式で任意のビデオプログラムを伝送するのに使用される際に、配信装置のコスト及び密度を削減するための技術及び装置を与えることが所望される。
【課題を解決するための手段】
【０００７】
本発明はパケットを含むデジタルストリームのセットを時間多重化処理するための方法を含む。パケットは、オーディオパケット、ビデオパケット、データパケット（すなわち、オーディオでもビデオでもない情報を含むデータのパケット）等を含む。概して、パケットは連続リアルタイム表示用に並べられかつ時間合わせされている。ひとつの態様において、方法はランダムアクセスメモリ(RAM)のようなメモリ内に受信したパケットを格納する工程を含む。各ストリームに対し、次のパケットの到着の期限が決定され、期限前の現在のインターバルに基づいて優先順位が割当てられる。ある場合において、最高の優先順位が割当てられたストリームが識別され、識別されたストリームとしてタグが付される。ある場合において、識別されたストリーム処理状態がその後復元される。識別されたストリームに対応するひとつまたはそれ以上のパケットが検索されたパケットを生成するべくメモリから検索される。検索されたパケットが処理された後、処理状態が保存される。
【０００８】
本発明の他の態様に従い、複数のデジタルストリームの時間多重化処理を実行するように、装置が構成される。ランダム・アクセス・メモリは受信したパケットを格納する。各ストリームに対して、受信機への次のパケットの到着期限を決定しかつ期限前の現在のインターバルに基づいて優先順位を割当てるためのメカニズムが存在する。いくつかの実施例は、さらに、最高の優先順位が割当てれたストリームを識別するメカニズムを含む。他のメカニズムは識別されたストリームに対応する処理状態を復元する。メカニズムは、識別されたストリームに対応するデータのひとつまたはそれ以上の受信パケットをRAMから検索する。他のメカニズムは検索されたパケットが処理された後、処理状態を保存する。
【０００９】
本発明は、多くのビデオ、オーディオ、及びデータストリームを同時にかつストリームあたりのコストを削減して処理することができるより効率的な配信装置の設計及び実行に適用される。さらに、高レベルのインテグレーション及び増加した処理密度はビデオ配信センター内に占める装置スペースを直接減少させる。
【発明を実施するための最良の形態】
【００１０】
本発明は、特に、複数のデジタルビデオプログラムの処理に関するアプリケーションに有用である。デジタルビデオプログラムは、単一ストリーム、または、ひとつまたはそれ以上のビデオ、オーディオ若しくはデータストリームの組み合わせであって、各ストリームが時間的に連続である単一プログラムに関連するところのデジタル表示であるように定義される。データストリームは概して、オーディオまたはビデオを含まないデータパケットのストリームを含み、ゆえに非オーディオ／ビデオデータの替わりに非Ａ/Ｖデータパケットと呼ばれる。ストリームは、非圧縮形式で表示されるか、またはMPEG１、MPEG２若しくはMPEG４のような既知の標準に従って圧縮される。また、処理自体は圧縮エンコード、デコード、またはトランスコード演算の応用である。トランスコードの場合、入力ストリームはひとつの圧縮フォーマットで受信されかつ他へ変換される。他に、トランスコーダは、単一の圧縮標準に忠実でありながら、圧縮比率のような圧縮プログラムのある特性を変えるよう設計され得る。
【００１１】
ビデオ及び／またはオーディオストリームに対する処理を実行する挑戦のひとつは、処理が常に入力速度を維持するのに十分に高速でなければならないということである。典型的に、この要求は、データ速度の最悪のピークを扱うために、または、まれであるが可能で、ランダムなインターバルで繰り返し生じ得るある複雑な演算を扱うために、過剰設計された実行を生じさせる。処理がこの最悪条件を扱うように設計されなければ、処理されたデータはその指定時刻に到着するのが遅れ、ビデオまたはオーディオ信号の表示は中断されるかもしれない。他に、このような表示の中断を防止するために実行が過剰設計されれば、処理リソースはより典型的な条件に対応するインターバルの間にしばしば使用されない。
【００１２】
時間多重化、単一プロセッサソリューションは、最悪ケース条件に対する設計の必要性を緩和する。すなわち、単一プロセッサ実行のリソースを共有することにより、及び一度にひとつの信号へアクセスすることを許可することにより、各個々のストリーム内に生じる変化を平均化するのを可能にする。すべてのストリームがピーク速度を同じ時間にヒットし、または複雑な処理条件が各ストリームで同時に発生することは可能であるが、そのような事象は非常に起こりにくいため無視しても安心である。個々の信号の数が増加するに従い特別な変化の確率の減少は、統計的に知られている。時間多重化、単一プロセッサシステムにおけるこの統計的利点を実現するために、互換性のあるスケジューリングシステムが必要となる。異常な高速データまたは特別な注意を要する多数の事象を経験する任意の単一ストリームへ、余分の処理リソースが自動的に割り当てられるところのポリシーを実行する必要がある。余分なリソースが受信しなければ、たとえ他のストリームが定時に処理され続けても、遅延はストリームの表示の中断を導く。
【００１３】
本発明の実施例に従い、最適化されたスケジューリングシステムが利用される。スケジューリングシステムは、付与のストリームに対して処理されるべき付加的なデータが存在しなければ表示処理の中断が生じる前に、演算ポイントがタイムインターバルとなるように構成されるところの、同じ演算ポイントで各ストリームを維持するように構成されている。このようなシステムの特定の実施例が以下で説明される。
【００１４】
時間多重化単一プロセッサシステム100のブロック図が図１に示されている。この特定の実施例において、トランスコード処理は複数の圧縮ビデオストリームへ適用される。トランスコーダ106は圧縮データをひとつの表示から他の表示へ変換する。各ビデオストリームは連続フレームから成り、各フレームは特定の時間にサンプリングされたビデオ信号を表す単一画像を表示する。各フレームはさらに連続の固定長パケットへ区分され、フレーム当たりのパケット数はその時に観測される実際の圧縮率に従って変化する。
【００１５】
圧縮ビデオデータを含むパケットは、ホストCPU110の制御の下で、受信機モジュールRX102から受信され、バス114を介してランダム・アクセス・メモリ(RAM)112へ転送される。モジュールRX102は、地上波、ケーブル、衛星チューナー／デモジュレーター、またはイーサーネットまたは類似のネットワークインタフェースのような任意の種類の入力装置である。ホストCPU110はアドレスをRAM112へ割り当て、トランスコード演算用のパケットをスケジューリングする処理を実行する。選択されたパケットは適当なシーケンスでトランスコーダへ伝送され、一方、トランスコード処理から生成されたパケットは同一のRAM112へ戻され、その結果それらはモジュールTX104を通じて送信用に再配列される。モジュールTX104は、地上波、ケーブル、若しくは衛星変調器、またはイーサーネット若しくは類似のネットワークインタフェースのような任意の種類の出力装置である。トランスコーダRAM108は、プロセッサデータ及びプロセッサ状態情報の両方を格納するように構成されている。ここで、状態または処理状態とは、第１ストリームの処置を一時停止し、第２ストリームの処理を開始または再開する際に保存する必要がある任意の種類のデータを言う。この保存されたデータは、中断が発生したところと同じポイントで第１ストリームの処理を再開することを可能とするために必要とされる。状態データは、画像サイズまたは圧縮比率のような処理パラメータ、ビデオ画素の全体フレームのような処理データまたは他の類似データを含む。
【００１６】
図２は、一つの実施例に従い、モジュールRX102から受信したパケットをRAM112へ書き込む処理、及びRAMからパケットを読み取り、かつそれをトランスコーダ106へ送る処理を示す。書き込み制御器202及び読み取り制御器204は、ソフトウエア生成デスクリプタであって、各デスクリプタがソースアドレス、送信先アドレス及び転送バイト数を特定するところのデスクリプタを使って、ダイレクト・メモリ・アクセス(DMA)処理のように実行される。図２に示される実施例は、書き込みアドレス生成器208により生成されたアドレスを連続的に増加させることに基づく代表的な書き込み制御器202を示す。すなわち、次の転送の開始に対応する送信先アドレスは、先の転送に対応する送信先アドレスを取得し、先の転送のサイズ（例えば、ひとつまたはそれ以上のパケットのサイズ）に等しい量だけそれを増分することにより導出される。したがって、パケットは間の隙間または間隔なく、先行パケットの終わりのすぐ後に続く。RAM206の最大アドレスを超えると、書き込み用の次のアドレスが、RAMの開始アドレスへリセットされる。より複雑な実行は、すべての使用可能なメモリをより効率的に管理するためにフリーリスト等を含んでもよい。
【００１７】
典型的に、順位付け及びスケジューリング処理がしばしば実行される場合において、RAM206からのパケットの読取処理は、書き込み処理よりも複雑である。読取アドレス生成器210をモデル化するひとつの方法が図３に示されている。パケット分類器302は、少なくともひとつの実施例において、パケットヘッダ内の情報に基づいて、各入力パケットに対応するストリームを識別しかつ優先順位を割当てる。FIFO304、パケットスケジューラ306及び優先順位待ち行列308が以下に説明される。パケット分類器の特定の実行が図４に示されるフローチャートにより説明される。
【００１８】
パケットが受信され、RAM206内に格納される度に、パケット分類器302によりパケットを表示するためのタグが割当てられる。タグは、パケットが格納されるところのRAMアドレス、及びパケット分類器により決定されるパケット優先順位から成る。優先順位を割当てる最も効果的なひとつの方法は、ビデオが表示されるべき受信機へ次のパケット（またはパケット処理により導出された情報）が伝送されなければならない最新可能時間を考慮することである。図４に示される、最も早い期限最初(EDF)スケジューラは、期限とパケット優先順位との間の逆関係を仮定する。
【００１９】
リアルタイムビデオ及びオーディオストリームに対して、各パケットの期限は一意に決定される。例えば、MPEG転送ストリームプロトコルを使って符号化された特定のビデオ及びオーディオパケットは、パケットヘッダ内に埋め込まれたタイムスタンプを含む。しばしば、タイムスタンプは新しいフレームを開始する各パケット内に含まれる。カレントの時刻がそのフレームに対応するタイムスタンプと等しいかまたはそれ以上と成るとき、タイムスタンプは、受信機が次のフレームの復号化を開始すべきであることを決定する。全フレームがこの時刻までに受信されないか、または受信機のバッファ内に存在しない場合には、再生処理の混乱が生じ、正しい再生同期化を回復するために付加的な工程が実行される。
【００２０】
図１の受信機102が、タイムスタンプを生成したエンコーダにより使用された同じクロックと同期化することができる場合、再生処理の時間合わせ方法が機能する。このため、MPEG符号化転送ストリームは、プログラムクロックリファレンス(PCR)として知られる埋め込まれたタイムリファレンスパラメータを含み、それはオリジナルクロックを再構成するために受信機により使用される。各タイムリファレンスは、タイムリファレンスがエンコーダから送信された時刻でのオリジナルクロックのカレント値を特定する。タイムリファレンスサンプル間において、クロックは連続的に２７MHzのMPEG仕様速度で外挿される。このローカルクロック生成器の正確な周波数及び安定性はエンコーダで使用されるクロックに依存するとしても、受信機は、ビットストリーム内に埋め込まれたタイムリファレンスパラメータ(PCR)及び位相固定周波数トラッキングループによりオリジナルクロックを回復しかつ同期化することができなければならない。
【００２１】
図３のパケット分類器302は図４のフローチャート処理に示されるように動作し、それは異なるストリームで検出されたタイムスタンプを単一の共通クロックリファレンスへ変換する単純な方法を含む。402で次のパケットを待った後、パケットは受信され、406でRAMに格納される。404で受信された特定のストリームiに対して408でタイムリファレンスが検出されたとき、410でそれはΔTRiを計算するのに使用され、それはカレントのローカルタイムｔ（２７MHzクロックのエミッタクロックに基づく）とタイムリファレンス値との間の差である。
【００２２】
412でストリームiに対応するパケット内にタイムスタンプが検出されると、414でこのタイプスタンプ及びこのストリームに対応する最新のΔTRiの和に等しく新しい優先順位が設定される。タイムスタンプ無しでパケットが受信される度に、ひとつの実施例において、それは同じストリームの先行パケットと同じフレームに対応すると仮定され、優先順位は変更されないままである。しかし、他の実施例において、このパケットは新しいフレームを開始する任意のパケットに対して優先度を有することを保証するために416で代わりに優先順位が最大値へ設定される。あるMPEG符号化モデルは各連続フレームがタイムスタンプを含むことを要求しない。このような稀なタイムスタンプが許可されると、タイムスタンプを有しないフレームは412でパケットヘッダを調べることにより検出され、有効なタイムスタンプがフレーム速度に基づいて先行タイムスタンプを外挿することにより推定される。フレーム速度もまたパケットヘッダ内に含まれる情報から推定される。
【００２３】
パケットが、図３のパケット分類器302により優先順位が割当てられると、特定のストリームに関連する図４の418で付されたタグが、図３の先入れ先だしメモリ(FIFO)304で割当てられる。タグは、割当てられたパケット優先順位及びRAM内のパケットのアドレスの２つのパラメータを含む。類似のFIFOは各パケットストリームに対して保持され、各々はそのストリームを受信したパケットの優先順位及びアドレスに対応するタグのシーケンスを含む。420で予め空白であったFIFO304内に新しいタグが挿入される度に、422で中断信号がパケットスケジューラ306へ送られる。パケットスケジューラ306の主なタスクは各FIFO304の出力で次のタグを連続的にモニターし、かつ次のタグにより特定された優先順位に従ってさまざまなストリームをソートすることである。生成された順序リストは優先順位待ち行列308と呼ばれる。パケット分類器302から中断が受信されると、これは、中断をトリガーしたパケットに関連するストリームに対応するFIFO304の出力に与えられた新しい次のタグが存在することを意味する。FIFO304は予め420で空白であったため、ストリームは優先順位待ち行列308内に現にリストされておらず、新しいエントリーが挿入されなければならない。パケットスケジューラ306は、新しいエントリーに関連する優先順位を待ち行列内の既存のエントリーの優先順位と比較することにより、この新しいエントリーが優先順位待ち行列内に挿入されるべきかを決定する。優先順位待ち行列308は優先順位に従って常にソートされるため、この処理は、新しいエントリーの優先順位よりそれぞれ低い及び高い（または等しい）優先順位を有する連続エントリーの対を探し、この対の間に新しいエントリーを挿入することを含む。より高い（または等しい）優先順位を有するエントリーが存在しなければ、新しいエントリーが優先順位待ち行列308のヘッドに配置され、同様に、より低い優先順位のエントリーが存在しなければ、新しいエントリーが優先順位待ち行列308のエンドに挿入される。このようにソートされたリストを作成しかつ保持する計算上効率的な方法は周知であるので詳細な説明は省略する。中断に応答するパケットスケジューラ306の動作を記述する単純なフローチャート500が図５に示されている。502で、優先順位は各ストリームに対して受信され、待ち行列を順位付けするために504で発せられる。
【００２４】
図３のパケットスケジューラ306のソートタスクを記述するフローチャート600が図６に示されている。602でトランスコーダが新しいパケットを受信する準備ができる度に、パケットスケジューラ306は、604で優先順位待ち行列308内の最高の優先順位ストリームに対応する次のパケットを606で選択する。ビデオ符号化及び復号化に関連するトランスコード及び他の演算処理は、フレーム途中でのストリーム間切替えを許可しないことにより大きく単純化される。したがって、パケットスケジューラ306は、それが他のストリームに対応するパケットに切り替わる前に610でカレントフレームの最新パケットを供給するまで、待機する。この場合、パケット分類器302は常に続くパケットに割当てるよりも低い優先優位をフレームの最初のパケットへ割当てるため、フレーム境界でのみストリームを切り替える制約が自動的に扱われる。言い換えれば、カレントストリームの次のパケットがフレームの最初のパケットでないなら、それは常に他のいずれのFIFO内での次のパケットのものより高い優先順位値を有する。
【００２５】
608でパケットが送信用に選択されると、パケットスケジューラ306の最後タスクは優先順位待ち行列308を更新することである。選択されたパケット用のタグが対応ストリームFIFO304から除去された後、次のタグの優先順位が調べられなければならない。FIFO内に他のタグが存在しなければ、優先順位待ち行列308内のこのストリームに対するエントリーは612で消去されなければならない。FIFOが610で空白ではなくかつ次のパケットが異なるフレームに対応するなら、優先順位待ち行列308内のこのストリームに対する対応するエントリーは適当な連続を維持するために減少する優先順位に基づいて614で再配列されなければならない。
【００２６】
中央メモリ装置からパケットを読み取るために説明された方法であって、複数のFIFO304へ対応するパケットタグを割当てるためにパケット分類器302を使用し、かつパケットタグを読み取りかつパケットをトランスコーダへ出力するためにパケットスケジューラ306を使用する方法は、２つの重要な利点を有する。第１に、パケットが最適な方法で順位付けされ、それは他のすべてのストリームの待ち時間を最小化しながら、リアルタイムビデオ及びオーディオの再生の乱れを避けることを保証する。第２に、順位付け及びスケジューリング処理は計算上効率的である。優先順位待ち行列308は優先順位に従ってソートされた異なるストリームの最新リストを保持し、エントリーはまれに調節されるだけでよい。このことは、大量のビデオストリームに対してソート及びスケジューリング処理を管理するために単一の廉価なプロセッサを使用することを可能にする。
【００２７】
単一の時間多重化処理システムは、処理実行に関連するあらゆるロジック、CPU及びメモリリソースの削減による利益を得る。これらすべてのリソースは専用のプロセッサが各ストリームに対して与えられれば、複数回繰り返される必要がある。一方、時間多重化処理は、カレントストリームの処理が中断し、次のストリームの処理が始まる度に、カレント処理状態を保存するための付加的メモリを必要とする。そうでなければ中断の同じポイントで第１ストリームの実行を再開することは不可能である。上記例において、状態情報は図１のトランスコーダモジュール108内に含まれる。他に、状態情報は、より複雑な読み取り及び書き込み制御器実行が適用されるなら、主要RAMメモリ112内に含まれる。状態を保存とは、状態データをメモリ内に書き込む処理を言い、状態を復元するとはメモリから状態データを検索することを言う。
【００２８】
ストリームの処理が中断される度に保存されなければならない状態数は特定の処理に依存する。MPEGのような圧縮標準に基づくほとんどのビデオ符号化、復号化及びトランスコード処理は、少なくともひとつの画素フレームが保存された状態に含まれることを要求する。これらの圧縮システムは、各フレームがすでに符号化されたひとつまたはそれ以上のフレームに基づいて最初に予測されるところの、一時予測として知られる技術を使用し、その後、一時予測と実際の画素との差のみがさらに圧縮される。Iフレームとして知られる他のフレームは、しばしばまれに送信され、一時予測を使用しない。Iフレームの圧縮は、先行フレームが必要ではないため、比較的効率が悪く、それらは送信後または記録エラーがビットストリーム内に発生した後、または先の情報が入手可能でないところの新しいビットストリームへチューニングする際に復号化される。Bフレームとして知られる他の種類のフレームは、フレームが表示順に並べられるときBフレームの前後の２つの異なるフレームからの予測を利用する。Bフレーム予測を利用するために、フレームは順序が狂って送信されなければならず、その結果両方の予測フレームは符号化されたBフレームが受信されたとき受信機に与えられる。
【００２９】
図７はBフレームを使用するシーケンスの送信順序750と表示順序700との間の差を示す。連続Pフレーム（例えば、P1、P4、P7、P11）の各対間のBフレームの数は時間変化する符号化変数である。
【００３０】
多くの場合、将来のフレームの予測に必要な先行フレームの格納に割当てられるべきメモリ量は、中断が生じるべきところのポイントを注意深く選択することにより大きく削減され得る。送信されるべき次のフレームがBフレームであるとき中断が生じれば、２つのフレームがメモリ内に保存される必要がある。他に、PフレームまたはIフレームを受信する前に中断が生じれば、ひとつのフレームのみが保存される必要がある。したがって、目標がメモリを節約することなら、各ストリームはPフレームまたはIフレームの送信直前に中断されなければならない。この修正はパケット分類器302の設計に単純に組み込まれる。新しいフレームを開始しなかったパケットに割当てられた人為的な高い優先順位は、新しいBフレームを開始するパケットへも割当てられる。これは、次のパケットがIフレームまたはPフレームのいずれにも対応しなければ、プロセッサを中断から有効に防止する。実際、Bフレームの最初のパケットの優先順位は比較的少量だけ上にバイアスされるべきである。ストリームが大量の連続Bフレームと続く場合には、ついにはその優先順位の利点を失い、次のストリームが顕著に遅くなる前に中断が生じる。
【００３１】
多くの場合、圧縮ビデオシーケンスはIフレームを含むように構成され、そのすぐ後にPフレームが続く。このようなIフレームで始まり、次のIフレームの直前のフレームで終わるフレームの集合は、グループ内のすべてのフレームがグループ以外のフレームに対するリファレンス無しで復号化されるため、閉じられた画像集合（クローズドGOP）として知られる。ビットストリームの処理がこのようなクローズドGOPの始まりの直前に中断されれば、フレームはメモリ内に保存される必要はない。しかし、それらは毎秒１つか２つの速度でしばしば送信されるため、クローズドGOPの開始を待つことは必ずしも可能ではない。この速度で、かなりの待ち時間がシステムに設計され、処理待ちのビットストリームデータを並ばせるのに大きなバッファが与えられなければ、単一のプロセッサにとって大量のストリームを扱うことは不可能である。
【００３２】
最近の圧縮アルゴリズムのいくつかは、任意の数の先に送信されたフレームを使って一時予測を使用するべくPフレーム及びBフレームの両方を許可する。MPEG-４標準（H.264として知られる）がその例である。このような圧縮システムにおいて、処理が中断される際に保存されるべき状態数は有意に増加する。また、この場合、異なるフレームの予測に対して必要なフレーム数の差が持続し、かつこの変化が予め分かるのでなければ、中断の間の状態を維持するためにメモリの利用を最適化するのは困難である。
【００３３】
状態を維持するために必要なほとんどのメモリは、受信されるべき他のフレームの予測に対して必要となるフレームにより消費されるが、あるメモリは、ストリーム間またはフレームから任意の単一ストリームのフレームへ変化する符号化パラメータに対して割当てられなければならない。これらのパラメータは符号化アルゴリズムに対して特定的であり、復号化及びトランスコード処理の場合において、しばしばさまざまなデータ符号化レイヤーのヘッダ内に埋め込まれる。
【００３４】
ビデオ圧縮アルゴリズム並びに中断及び状態保存に対するポリシーに依存して、単一プロセッサでの時間多重化実行に必要なメモリの数が、単一ストリームに対して専用の複数の個別プロセッサをサポートするのに必要なメモリの数と匹敵する。しかし、単一の大型メモリ装置を使用する利点が存在し、単一のメモリ制御器が単一システムとインタフェースする。単一のメモリ装置が単一のプロセッサを扱うなら、多くのプロセッサの場合とは反対に、複雑なアービトレーション・ポリシーは設計から無視され、メモリアクセスに費やす待ち時間が減少する。各個別のストリームに対して要求されるメモリの最大量を予め割当てる代わりに、メモリは各ストリームを処理するために必要なだけ割当てられる。統計的な利益は、他の処理リソースの共有から生じる改良された効率と同様であり、この場合、システムは全メモリ数を減らして設計され得る。
【００３５】
統計的メモリ割当てモデルから生じるひとつの複雑性は、メモリ割当てポリシーの設計にある。典型的に、メモリアロケータは、フレーム全体のサイズと等しい連続メモリブロックに対する要求を受信する。各フレームのサイズはたとえ単一のストリーム内でもストリーム間で変化するため、アロケータは自由メモリの十分に大きなブロックが常に利用可能であることを保証しなければならない。新しいブロックが連続して割当てられ、かつ古いブロックが連続してリリースされるような時間にわたって生じる過剰なフラグメンテーションを避けるための工程が取られなければならない。
【００３６】
適当なメモリ管理ポリシーの例が図８Aに示されている。この場合、メモリは、２の整数累乗ｎで分割された等しい水平及び垂直寸法を有するブロック802に割当てられる。ポリシーはできるだけ小さいブロックに割当てることであり、それは要求に対応する寸法と等しいかまたはそれより大きい。
【００３７】
図８Aは、図８B、８C及び８Dに示されるようなクワッドツリー構造によりモデル化される。ツリーの根はメモリ領域全体の中心804である。メモリの新しいブロックが割当てられる度に、中心804から新しく割当てられたブロックの中心へ伸びるブランチはツリーを拡張する。各単一のブランチはブロックの中心から、ブロックが構成される４つの象限のひとつの中心（すなわち、四角形中心806のようなブロックの四角形の中心）へ描かれる。図８Bはツリーの第１または根レベルのブランチを示す。図８Cは第２レベルのブランチを示し、図８Dは第３レベルのブランチを示す。より低いレベルのブランチは点線で示されている。各ブランチポイントの水平及び垂直座標は図８Aで使用されるスケールに対応している。
【００３８】
この例において、ブロックは常に正方形であるが、長方形領域もまた他の幾何形状と同様に簡単にサポートされる。例えば、任意のアスペクト比の長方形領域は、すべての水平パラメータまたは垂直パラメータに対して固定スケール因子を適用することにより実行を複雑にすることなくモデル化される。ブロックは２ではなく１次元に再分割され、一般化は簡単だが、付加的な複雑性を導入するため実施例には含まれていない。
【００３９】
このポリシーに従う、メモリのブロックを割当てかつリリースするためのソースコードの一部の例が図９及び図１０に与えられる。関数mem_allocateへの入力として与えられるパラメータｄはメモリの要求されたブロックの水平及び垂直寸法である。パラメータi及びjは、それぞれ、要求されたメモリブロックがそこから割当てられるブロックの中心に対応する垂直及び水平座標である。パラメータｋは座標i及びjが中心となるこのブロックの水平及び垂直寸法の二分の一である。関数は、最初に、図８Aに示された領域全体を表す完全メモリブロックを参照して、i、j、kでコールされる。その後、アロケータは、カレントメモリブロック（中心i、j、ｋで決定されるサイズを有する）が必要なもの以上であるか否かを決定し、もしそうなら、ブロックは、パラメータi、j、kでmem_allocateを再帰的にコールすることにより象限に再分割され、４つの下位象限のひとつを参照して更新される。適当な下位象限が識別されると、中心座標が(i,j)のブロックの左上角に対応する物理的アドレスaddr(i,j)がリターンされる。量D(i,j)は常に中心座標(i,j)のブロック内での割当てに適した最大ブロックを示すのに保持される。
【００４０】
関数mem_freeへの入力として与えられるパラメータi及びｊは、もはや必要ではなくかつリリースする準備ができているメモリブロックの水平及び垂直座標である。パラメータｋはこのブロックの対応する寸法である。メモリは、カレントブロック及びこのブロックが含まれるすべてのより大きいブロックに対する量D(i,j)を更新することにより効果的にリリースされる。
【００４１】
ブロックを等しいサイズの象限へ再分割することによりメインメモリを区分けする方法が改良される。最初に、あるレベルのフラグメンテーションが存在し、付加的メモリに対する要求を扱うことができない状態を生じさせる。第２に、要求されたメモリブロックのサイズが再分割された象限のひとつのサイズと正確に一致しなければ、割当てられたメモリブロックはオーバーサイズであり、余分な空間が無駄になる。本発明の他の実施例に従い、方法は、図１１に例示されるように固定サイズの小さいブロックにメインメモリを区分する。このブロックはページと呼ばれ、典型的なフレームのサイズより十分に小さく作成されている。したがって、新しいフレームがメモリ内に保存されるべきとき、多くのページ1102が割当てられる。フレームの水平及び垂直寸法がページの水平及び垂直寸法の整数倍でなければ、比較的少量のメモリが無駄となるが、この無駄はページ寸法が十分に小さい場合には無視できる。実際には、最適なページサイズは、可能な無駄なメモリのコストと付加的ページを管理するコストとのバランスを取ることにより選択される。
【００４２】
メモリ管理機能はすべての未割当てページ1110のトラックを維持し、新しいメモリが必要なときこのページを割当てることを含む。未割当てページに対応する物理的アドレスは、ひとつの実施例において、単純な先入れ先だしバッファ(FIFO)として編成されたフリーリストとして保持される。すなわち、ページのアドレスはページがリリースされる際に、図１１のフリーリストバッファ1104の一端に挿入され、ページは新しいページが割当てられるべき際にフリーリストの他端でのアドレスをポッピングすることにより消去される。
【００４３】
ページ管理は現に使用中の各ページに関連する仮想アドレスのトラックを維持するためにも使用される。仮想アドレスはストリームid、ストリーム内のフレームid、及びフレーム内の水平及び垂直座標から成る。ページの物理的アドレスへの仮想アドレスのマッピングは、図１１のトランスレーション・ルック・アサイド・バッファ(TLB)1106のような単純なルックアップテーブルにより実行される。この場合、ページ管理機能のコストは、フリーリストを維持するためのFIFO1104のコスト及びアドレスマッピングを保持するためのTLBのコストより少し多い。
【００４４】
ほとんどのメモリ管理処理はソフトウエア内で実行されるが、他の実施例に従う一部ハードウエア実行はフレーム内で生じる処理を高速化するのに所望される。例えば、他の因子が中断及びフレーム間移行を管理するためのソフトウエアの使用とともに、フレーム内で圧縮関連処理タスク用のカスタムハードウエアの使用を指令するなら、比較的少数のページアドレスのみをハードウエア内で実行される下位処理に対してダウンロードすることが可能である。このダウンロードが各新フレームを開始する前に実行されれば、次のフレームを処理しながら参照されるメモリに対応するページアドレスを転送することのみが必要である。これは、一時予測に使用されるフレームから成るすべてのページ、及び続くフレームの一時予測に必要であれば出力フレームを保存するのに必要なすべてのページを含む。出力フレームに対するメモリの割当ては、もはや必要とされない一次予測フレームにより使用される同一ページを再生することにより、またはフリーリストから新しいページを抜き取ることにより実行される。
【００４５】
ほとんどの圧縮システムにおいて、メモリは、典型的に４×４画素から１６×１６画素の範囲の非常に小さいブロックにアクセスされる。ページサイズはこのサイズより非常に大きいことが仮定され、典型的なアクセスサイズと同様の固定サイズのより小さいサブブロックにページをさらに再分割することが有利となる。単一フレームはメインメモリを通じてランダムに分配された複数のページから成るが、典型的にサブブロックは、ページ内部のすべての画素が集団でフレーム内で単一の連続の長方形を構成するように、順番に並べられる。ページ内部のこの線形アドレスはさらに図１２に示されている。
【００４６】
特定の実施例に従い、メインメモリにアクセスするのに使用されるハードウエア1300の例が図１３に示されている。任意のストリームの単一フレームを処理しながら、フレームid（フレーム1302）、フレーム内の垂直座標(y)1306、及びフレーム内の水平座標(x)1304を特定することにより、メモリアクセス要求が生成される。要求されたメモリブロックの垂直及び水平サイズは、ｙサイズ1310及びｘサイズ1308により特定される。アドレス生成器1320は、要求された領域の位置及び境界を、隣りのページの位置及び境界と比較し、要求を完了するのに必要なすべてのページのアドレスをキャッシュ1322に連続的に供給する。アドレス生成器1320は、各ページ内のオフセットをデータ組合せモジュール1330へ出力する。アドレス生成器を実行するのに使用されるコードの例は図１４に与えられている。この場合、サブブロックサイズは１６×１６画素であると仮定されている。
【００４７】
次に、キャッシュモジュール1322の動作が説明される。アドレス生成器により供給されるアドレスに対応するページがすでにキャッシュ内に存在する場合、ページはデータ組合せモジュール1330へ直接供給される。ページがキャッシュ1322内に存在しなければ、データはまず外部DRAM1340から検索され、その後データ組合せモジュールへ与えられる。
【００４８】
キャッシュ1322から受信された各ページ内の下位領域を選択するために、データ組合せモジュール1330は、アドレス生成器1320から受信されたページオフセット情報を使用する。データ組合せモジュール1330を実行するのに使用されるコードの例は図１５に与えられる。この例において、モジュール1330は従来のラスター走査順序で画素データの要求されたブロックを出力するために、サブブロックの行全体をバッファする。
【００４９】
単一フレームの圧縮中に要求されたパラメータの単純表示が図１６に示されている。表示はタグブロックと呼ばれ、処理を実行するのに必要なパラメータ1604ばかりでなく、ページアドレス1602を含む。例えば、このパラメータは、フレームサイズ、圧縮比率、フレーム種類（I、PまたはB）、動きベクトル探索範囲等を含む。ひとつのフレームの処理から次のフレームの処理までの効率的な移行のひとつの方法は、２つまたはそれ以上のタグブロックを使用することである。第１フレームが処理されている間、たったひとつのタグブロック1600が使用される。この時間中、処理用にスケジューリングされた次のフレームと関連する情報を与えるために、第２のタグブロック1650がダウンロードされる。
【００５０】
２つのタグブロックの場合、単一ビットは現に使用されているタグブロックを識別する。フレームが完全に処理された後、ビットは他のタグブロックを識別するためにトグルされる。第２のタグブロックが各フレームの処理と平行してプレロードされれば、第２フレームの処理はすぐに開始され、フレーム間遅延は避けられる。
【００５１】
実際に、フレームプロセッサのハードウエア実行は、しばしば、異なる演算が平行に実行されるようにパイプライン化され、各演算は異なる時間ポイントに対応する。この場合、タグブロック選択ビットのトグルは、フレーム全体が処理された後にパイプライン全体が空白となるまで、遅らされる。しかし、これは次のフレームの処理が始まる前に余分な遅延を導入し、パイプラインステージの数に依存して、この遅延時間は大きい。特定の実施例に従って、このフレーム間遅延を招くことを避けるひとつの方法は、処理パイプラインの各ステージに対する個別のタグブロック選択ビットを維持することである。これは図１７に示されている。第１パイプラインステージがカレントフレームのエンドに対応する最終データワードを生成すると、パイプラインステージに対応するタグブロック選択ビット1702がトグルされ、次のフレームの開始に対応するデータは次のクロックサイクルで受け取られる。各連続クロックサイクルで、次のパイプラインステージに対するタグブロック選択ビット1704がトグルされ、これが、処理全体が第１フレームから第２フレームへ移行されるまで続く。
【００５２】
上記説明は本発明の全体的な理解を与えるために使用されたものである。しかし、本発明を実施するために、特定の詳細は要求されないことは当業者の知るところのである。よって、本発明の特定の実施例の上記説明は例示のために与えられる。それらは網羅的ではなく、または開示された厳密な形式へ発明を限定するものではない。明らかに、多くの修正及び変更が上記教示を考慮して可能である。実施例は発明の原理及びその実際の応用を最適に説明するために選択されかつ記述されたものであり、当業者は、特定の使用に適するようにさまざまな修正を加えて本発明及び実施例を利用することが可能である。発明の太陽は特許請求の範囲に定義されたものである。
【図面の簡単な説明】
【００５３】
【図１】図１は、本発明の実施例にしたがって使用される時間多重化信号プロセッサシステムを示す。
【図２】図２は、本発明の実施例に従って受信パケットを書き込みかつ読み取るための処理を示す。
【図３】図３は、本発明の実施例に従う読取アドレス生成方法を示す。
【図４】図４は、本発明の実施例に従って使用されるパケット分類技術を示す。
【図５】図５は、本発明のパケットスケジューラーでの割り込み処理を示す。
【図６】図６は、本発明の実施例に従って実行されるパケットスケジューラーのソートを示す。
【図７】図７は、Bフレームを使用するシーケンスの送信順序と表示順序との間の差を示す。
【図８】図８(A)から(D)は、本発明の実施例に従って使用されるメモリ管理ポリシーを示す。
【図９】図９は、本発明の実施例に従ってメモリのブロックを割当てるのに使用されるコンピュータコードを示す。
【図１０】図１０は、本発明の実施例に従ってメモリのブロックをリリースするのに使用されるコンピュータコードを示す。
【図１１】図１１は、本発明の実施例に従って、固定サイズの小さいブロックを使用するメモリ管理を示す。
【図１２】図１２は、本発明の実施例に従うメモリ内の線形メモリアドレスを示す。
【図１３】図１３は、本発明の実施例に従って使用されるメモリアクセスハードウエアを示す。
【図１４】図１４は、本発明の実施例に従って使用されるアドレス生成器を実行するコンピュータコードを示す。
【図１５】図１５は、本発明の実施例に従って使用されるデータ融合モジュールを実行するコンピュータコードを示す。
【図１６】図１６は、単一フレームの圧縮中に本発明の実施例に従い要求されるパラメータを示す。
【図１７】図１７は、本発明の実施例に従い、フレーム間遅延を避けるためにパイプラインステージ用の独立タグブロック選択ビット技術を示す。
【図１】
2006508620.tif 000003
【図２】
2006508620.tif 000004
【図３】
2006508620.tif 000005
【図４】
2006508620.tif 000006
【図５】
2006508620.tif 000007
【図６】
2006508620.tif 000008
【図７】
2006508620.tif 000009
【図８】
2006508620.tif 000010
【図９】
2006508620.tif 000011
【図１０】
2006508620.tif 000012
【図１１】
2006508620.tif 000013
【図１２】
2006508620.tif 000014
【図１３】
2006508620.tif 000015
【図１４】
2006508620.tif 000016
【図１５】
2006508620.tif 000017
【図１６】
2006508620.tif 000018
【図１７】
2006508620.tif 000019
【手続補正書】
【提出日】平成17年9月1日(2005.9.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のデジタルストリームを処理する方法であり、各デジタルストリームは連続表示用に並べられたパケットを含むところの方法であって、
前記複数のデジタルストリームの各々に対するパケットを受信する工程と、
前記パケットの各々を前記複数のデジタルストリームのそれぞれのストリームと関連付ける工程と、
前記複数のデジタルストリームのひとつのパケットのサブセットが、パケットの他のサブセットの前に処理されるべきことを決定する工程と、
から成る方法。
【請求項２】
請求項１に記載の方法であって、さらに、複数のデジタルストリームの各々に関連する状態を保持する工程を含む方法。
【請求項３】
請求項２に記載の方法であって、前記状態は前記サブセットの処理に対するパラメータを含む、ところの方法。
【請求項４】
請求項２に記載の方法であって、前記状態はビデオの少なくともひとつのフレームを表す画素データを含む、ところの方法。
【請求項５】
請求項２から４のいずれかに記載の方法であって、さらに、前記状態を格納するためにメモリを割当てる工程を含む方法。
【請求項６】
請求項５に記載の方法であって、メモリを割当てる工程は、割当て単位を形成するようメモリを象限に回帰的に再分割する工程であって、前記割当て単位のひとつは、少なくともひとつの寸法がビデオフレームの対応する寸法より小さくなること無しにさらに再分割できない象限であるところの方法。
【請求項７】
請求項５または６に記載の方法であって、メモリはページに割当てられ、前記ページの各々は固定サイズの隣接するメモリ単位である、ところの方法。
【請求項８】
請求項７に記載の方法であって、未割当てページはメモリの未使用ページを管理するよう構成されたフリーリストを使って管理される、ところの方法。
【請求項９】
複数のデジタルストリームを処理するための装置であり、各デジタルストリームが連続表示用に並べられたパケットを含むところの装置であって、
複数のデジタルストリームの各々に対するパケットを受信する手段と、
前記パケットの各々を複数のデジタルストリームの各ストリームと関連付けるための手段と、
他のデジタルストリームのパケットの他のサブセットの前に、複数のデジタルストリームのひとつのパケットのサブセットが処理されるべきことを決定するための手段と、
から成る装置。
【請求項１０】
請求項９に記載の装置であって、さらに、受信されたパケットを格納するためのバッファを含む装置。
【請求項１１】
請求項１０に記載の装置であって、さらに、
処理用のパケットのサブセットを選択するための手段と、
前記バッファからパケットのサブセットを検索するための手段とを含む装置。
【請求項１２】
請求項９から１１のいずれかに記載の装置であって、さらに、複数のデジタルストリームの各々に対して優先順位を割当てるための手段を含む装置。
【請求項１３】
請求項１２に記載の装置であって、さらに、最高の優先順位と関連する複数のデジタルストリームのひとつに基づいて、処理されるべきパケットのサブセットを決定するための手段を含む装置。
【請求項１４】
請求項１２または１３に記載の装置であって、前記優先順位は期限を表す、ところの装置。
【請求項１５】
請求項１４に記載の装置であって、さらに、関連するアクセス単位のヘッダからデコーディング・タイム・スタンプを抽出するための手段を含み、前記デコーディング・タイム・スタンプは前記期限を導出するために使用される、ところの装置。
【請求項１６】
請求項９から１５のいずれかに記載の装置であって、さらに、複数のデジタルストリームのひとつの他のサブセットが新しいアクセス単位に関連していることを決定するための手段を含む装置。
【請求項１７】
請求項１６に記載の装置であって、前記他のサブセットが前記新しいアクセス単位と関連することを決定するための前記手段は、さらに、複数のデジタルストリームのひとつに関連する優先順位を調節するための手段を含むところの装置。
【請求項１８】
請求項１７に記載の装置であって、さらに、前記優先順位が、第１未処理パケットとして受信された他のサブセットのパケットに応答することを調節するための手段を含む装置。
【請求項１９】
請求項９から１８のいずれかに記載の装置であって、さらに、複数のデジタルストリームの各々に関連する状態を保持するための手段を含む装置。
【請求項２０】
請求項１９に記載の装置であって、前記状態を保持するための手段は処理パラメータを格納するためのメモリを含む、ところの装置。
【請求項２１】
請求項１９に記載の装置であって、前記状態を保持するための手段はビデオの少なくともひとつのフレームを表す画素データを格納するためのメモリを含む、ところの装置。
【請求項２２】
請求項２１に記載の装置であって、さらに、前記メモリを象限に回帰的に再分割するための手段を含む装置。
【請求項２３】
請求項２１に記載の装置であって、さらに、前記メモリをページに区分するための手段であって、前記ページの各々は固定サイズの隣接するメモリ単位である、ところの手段を含む装置。
【請求項２４】
請求項２３に記載の装置であって、さらに、メモリの未使用ページを管理するためのフリーリストを含む装置。
【請求項２５】
請求項２３または２４に記載の装置であって、さらに、仮想アドレスをページアドレスへマッピングするためのトランスレーション・ルックアサイド・バッファを含む装置。
【請求項２６】
請求項２３から２５のいずれかに記載の装置であって、さらに、メモリからページを検索しかつ要求されたサイズのブロックへデータを組み合わせるための手段を含む装置。
【請求項２７】
請求項２６に記載の装置であって、さらに、メモリから検索されたひとつまたはそれ以上のページを格納するためのキャッシュを含む装置。
【請求項２８】
データの複数のストリームを処理するための方法であって、
複数のストリームの単一ストリームを識別する工程と、
識別された単一ストリームに対応するデータのサブセットを第１フォーマットから第２フォーマットへ変換する工程と、
単一の識別されたストリームに対するデータの次のサブセットを分類する工程と、
から成る方法。
【請求項２９】
請求項２８に記載の方法であって、さらに、複数のストリームの各々に関連する状態を保持する工程を含む方法。
【請求項３０】
請求項２９に記載の方法であって、前記状態は、ひとつまたはそれ以上のビデオ、オーディオ、及び非A/Vデータを表すデータを含む、ところの方法。
【請求項３１】
データの複数のストリームをスケジューリングする方法であって、
第１ストリームに関連するデータの第１サブセットを分類し、第２ストリームに関連するデータの第２サブセットから前記第１サブセットを区別する工程と、
第１インターバルの間に第１フォーマットから第２フォーマットへ変換するために、データの前記第１サブセットのみを選択する工程と、
から成る方法。
【請求項３２】
請求項３１に記載の方法であって、さらに、前記複数のストリームの他が変換されない間に、前記第１フォーマットから前記第２フォーマットへ変換する工程を含む方法。
【請求項３３】
請求項３２に記載の方法であって、さらに、第１インターバルの間に前記第２サブセットに関連する状態を保持する工程であって、前記状態はひとつまたはそれ以上のビデオ、オーディオ、及び非A/Vデータを表すデータを含むところの工程を含む方法。
【請求項３４】
請求項３３に記載の方法であって、前記データはビデオを表し、ビデオの少なくともひとつのフレームを表す画素データを含む、ところの方法。
【請求項３５】
請求項３１から３４のいずれかに記載の方法であって、データの前記第１サブセットを分類する工程は、
データの前記第１及び第２サブセットを順位付けする工程と、
データの前記第１及び第２サブセットにそれぞれ第１優先順位及び第２優先順位のタグを付ける工程と、
から成るところの方法。
【請求項３６】
請求項３５に記載の方法であって、前記第１優先順位及び第２優先順位はそれぞれ第１ストリーム及び第２ストリームに対する優先順位を表す、ところの方法。
【請求項３７】
請求項３５に記載の方法であって、前記第１優先順位は第１期限までの第１時間間隔に関連し、前記第２優先順位は第２期限までの第２時間間隔に関連し、前記第１時間間隔は前記第２時間間隔より短い、ところの方法。
【請求項３８】
複数のストリームの各ストリームを変換するための装置であって、
複数のストリームの各々に対する各パケットのデータに優先順位を示すタグを割当てるよう構成された分類器モジュールと、
タグのサブセットを格納するよう構成された、複数のストリームの各々に関連するバッファと、
第１時間インターバルの間に第１フォーマットから第２フォーマットへ変換するために複数のストリームのひとつのみを選択するよう構成されたパケットスケジューラモジュールと、
から成る装置。
【請求項３９】
請求項３８に記載の装置であって、フレームの第１パケットは複数のストリームのひとつのフレームの第２パケットより優先順位が低い、ところの装置。
【請求項４０】
請求項３８または３９に記載の装置であって、さらに、ひとつまたはそれ以上のタグのサブセットに関連する相対的な優先順位を格納するよう構成された優先順位待ち行列モジュールを含む、ところの装置。
【請求項４１】
請求項４０に記載の装置であって、前記優先順位待ち行列モジュールは、前記第１フォーマットから前記第２フォーマットへのパケットのデータ変換をスケジューリングするために前記パケットスケジューラモジュールへ優先順位の範囲を与えるよう構成される、ところの装置。
【国際調査報告】
2006508620.tif 000020
2006508620.tif 000021
2006508620.tif 000022