(57)【要約】変動する再生速度でデジタルビデオを再生するシステムは、データストアからエンコードされたピクチャを検索するために構成されるフェッチャーモジュール、及び入力キャッシュからエンコードされたピクチャを選択的に削除するために構成されるアロケータモジュールを含む。システムは、デコーダモジュール及び出力キャッシュモジュールを含む。デコーダモジュールは、入力キャッシュから受信されたピクチャをデコードする。出力キャッシュモジュールは、複数のデコードされたピクチャを記憶し、出力としてピクチャのうちの選択されたピクチャを供給する。ピクチャは、それぞれのピクチャに対応する優先度に従ってモジュールのそれぞれで処理される。
2008529405.tif 000002
【特許請求の範囲】
【請求項１】
可変の再生速度でデジタルビデオを再生するシステムであって、
データストアからエンコードされたピクチャを検索するために構成されるフェッチャーモジュールと、
検索されたエンコードされたピクチャを入力キャッシュに追加し、エンコードされたピクチャを前記入力キャッシュから削除するために構成されるアロケータモジュールと、
前記入力キャッシュから受信されたピクチャをデコードするために構成されるデコーダモジュールと、
複数のデコードされたピクチャを記憶し、前記複数のピクチャのうちの選択されたピクチャを出力として供給するために構成される出力キャッシュモジュールとを有し、
それぞれのピクチャに対応する優先度に従って前記モジュールのそれぞれでピクチャが処理される、
ことを特徴とするシステム。
【請求項２】
前記優先度は、ビデオタイムライン内のピクチャの位置とエイムポイント内のピクチャの位置との間の距離を示す、
請求項１記載のシステム。
【請求項３】
前記エイムポイントは、ビデオ再生の位置、速度及び加速度のうちの少なくとも１つに依存するビデオタイムライン内でのターゲットロケーションを規定する、
請求項２記載のシステム。
【請求項４】
前記モジュールのそれぞれは、ビデオタイムライン内の異なるエイムポイントを利用する、
請求項３記載のシステム。
【請求項５】
前記エイムポイントは、ビデオ再生の速度及びビデオ再生の加速度を少なくとも１つのチューニング係数で乗算し、乗算結果をビデオタイムラインにおける現在の位置と合計することで決定される、
請求項３記載のシステム。
【請求項６】
前記フェッチャーモジュールは、前記データストアから最も高い優先度を有するエンコードされたピクチャを検索する、
請求項１記載のシステム。
【請求項７】
前記ビデオ再生の加速度を予め決定された最大の加速度に制限するために構成される上側制御レイヤを更に有する、
請求項１記載のシステム。
【請求項８】
前記デコーダモジュールによるデコーディングの前に、前記データストアから検索されたエンコードされたピクチャを記憶する入力キャッシュを更に有する、
請求項１記載のシステム。
【請求項９】
前記アロケータモジュールは、前記入力キャッシュが前記データストアから新たに検索されたピクチャを記憶するために利用可能なスペースを有さないときに動作する、
請求項８記載のシステム。
【請求項１０】
前記デコーダモジュールは、少なくとも２つのデコーダを有する、
請求項１記載のシステム。
【請求項１１】
前記デコーダモジュールは、少なくとも１つのデコーダと、前記少なくとも１つのデコーダに対応する少なくとも１つのピクチャのファーストインファーストアウトタグを含む、
請求項１記載のシステム。
【請求項１２】
前記デコーダモジュールは、前記入力キャッシュ内のエンコードされたピクチャを評価し、デコーディングのために前記入力キャッシュから少なくとも１つのピクチャを選択し、
選択された少なくとも１つのピクチャは、前記デコーダモジュールに対応するエイムポイントに基づいて最も高い優先度を有する、
請求項１記載のシステム。
【請求項１３】
前記出力キャッシュモジュールは、高い優先度のピクチャで最も低い優先度のピクチャを上書きするために構成されるライトコントローラを更に有する、
請求項１記載のシステム。
【請求項１４】
前記出力キャッシュモジュールは、複数の出力キャッシュバッファを含み、前記ライトコントローラは、それぞれデコードされたピクチャを書き込む前に、前記複数の出力キャッシュバッファから前記出力キャッシュバッファのうちの１つを選択する、
請求項１３記載のシステム。
【請求項１５】
前記出力キャッシュモジュールは、それぞれのフィールド時間の間の表示のために前記複数の出力キャッシュバッファから前記ビデオタイムライン内の現在の位置に最も近い少なくとも１つのフィールドを選択するために構成されるリードコントローラを更に有する、
請求項１４記載のシステム。
【請求項１６】
前記出力キャッシュモジュールは、調節可能な量により前記リードコントローラについて意図されるポジションコマンドを遅延させるために構成されるリードコントローラ・ファーストインファーストアウトを更に有する、
請求項１５記載のシステム。
【請求項１７】
可変の再生速度でデジタルビデオを再生する方法であって、
ビデオタイムラインにおけるエイムポイントを決定するステップと、
入力キャッシュにおけるストレージのため、少なくとも１つのエンコードされたピクチャを転送するステップと、
前記エイムポイントに従って入力キャッシュから少なくとも１つのピクチャを選択するステップと、
前記選択された少なくとも１つの選択されたピクチャをデコードするステップと、
前記デコードされたピクチャを出力キャッシュに書き込むステップと、
前記出力キャッシュから、前記ビデオタイムライン内の現在の位置に最も近い少なくとも１つのピクチャを読み取るステップと、
を含む、ことを特徴とする方法。
【請求項１８】
前記入力キャッシュからエンコードされたピクチャを選択的に削除するステップを更に含む、
請求項１７記載の方法。
【請求項１９】
前記エイムポイントは、ビデオ再生の速度及びビデオ再生の加速度を少なくとも１つの調整係数により乗算し、乗算結果を前記ビデオタイムラインにおける現在の位置と合計することで決定される、
請求項１７記載の方法。
【請求項２０】
前記選択するステップは、
前記入力キャッシュ内のエンコードされたピクチャを評価するステップと、
デコーディングのために前記入力キャッシュから少なくとも１つのピクチャを選択するステップとを更に含み、
選択された少なくとも１つのピクチャは、デコーディングのためにエイムポイントに基づいて最も高い優先度を有する、
請求項１７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルビデオサーバ及び他のビデオプレーヤと使用するためのビデオ再生システム全般に関する。
【背景技術】
【０００２】
従来のデジタルビデオシステムは、慣習的に、デジタルビデオデコーダの出力で圧縮されていないビデオの複数のフレームをバッファリングするために十分なメモリが不足していた。この出力バッファキャパシティの不足のため、データ検索のような機能、フィールド又はフレームのようなピクチャのデコード、及びフレームを表示することが窮屈に統合され、適切なビデオプレイバックの品質を生成するためにスケジュールされるデザインとなっていた。したがって、ビデオプレイバックシステムデザインにおけるプライマリドライバは、リアルタイムで、正しい表示順序で、デコーダ出力に現れる、正しい１以上のピクチャを有するという必要性であった。
【０００３】
規則的な再生速度でのデジタルビデオプレイバックは、１×と呼ばれ、現代のビデオプレイバックシステムにおいて比較的容易に達成することができる。巻き戻し、スローモーション、早送り、早送り及び巻き戻し（シャトル）、及びフレーム毎の動き（ジョグ）のような可変速度のプレイバックは、益々達成することが困難である。さらに、複雑な問題は、ビデオプレイバックシステムにとって、ビデオプレイバックの間にジョグ及び／又はシャトル制御のリアルタイムのユーザ操作に応答することが必要である。デジタルビデオシステムは、上述されたプレイバックモードのそれぞれでのスムーズなプレイバックを提供するだけでなく、ビデオプレイバックシステムのジョグ又はシャトル制御を介して受信されるような、ユーザ要求に応答してあるモードから別のモードへのスムーズな遷移を提供する必要がある。
【０００４】
たとえば、スローモージョン効果を生成する１つの方法は、デコーディングとの同期で実行されるデコーダの出力でのフィールド補間による。この技術は、ジョグ又はシャトル制御に応答するやり方で実現することが困難である。ジョグ及びシャトル制御への応答が問題となる別のケースは、デュアルトラックムービーで使用される影響に関する。デュアルトラックムービーは、２以上のビデオトラック間のフェード又はトランジションのような影響を典型的に含む。ジョグ及び／又はシャトル制御に応答するやり方でビデオをプレイバックしつつ、かかる影響を生成することは困難である。
【０００５】
デジタルビデオシステムがロンググループオブピクチャ（ｌｏｎｇ−ＧＯＰ）でフォーマットされたビデオを再生する場合、良好なパフォーマンスを提供することが更に困難になる。ｌｏｎｇ−ＧＯＰは、ＭＰＥＧ−２のｌｏｎｇ−ＧＯＰのようなビデオ圧縮フォーマット、又はフレーム間で前方向及び／または後方動き予測を使用する他のビデオ復号化プロセスを示す。多くの係るビデオデコーダの共通の失敗は、システムがシャトルスピードにおける変化のような乱れに反応する間、プレイバックがフレームをポーズ及びリピートすることである。
【０００６】
別の例は、リバースでｌｏｎｇ−ＧＯＰのフォーマットされたビデオの再生である。リバースでｌｏｎｇ−ＧＯＰを再生することは、従来のデコーダがフレームのうちの幾つかのみをデコードするために特に問題である。これらのフレームは、埋めるために必要とされるように出力で繰り返される。この部分的なデコーディングは、それら従属のＰ及びＢフレームをデコードする前にＩ及びＰ（アンカ）フレームをデコードするための必要から生じる。さらに、大部分のデコーダチップは、ＧＯＰ内で前方をデコードし、プレイバック速度を変えたときにジャンピー又はジャーキーなプレイバック又はポーズのような目に見えるアーチファクトとなる。
【０００７】
このリスティングが包括的となることが意図されていないが、様々なプレイバックモードで平滑及び応答するビデオプレイバックを提供することに関わる複雑さの例示である。しかし、ビデオを編集するとき、シャトル及びジョグ制御に対して高速、平滑、正確な応答を有することが特に重要である。これは、たとえばよく繰り返されるビデオエディティングタスクといった、ムービークリップにおけるキューポイントをビデオエディタが配置するために必要とされる時間量に著しい影響を及ぼす。上述された問題は、ｌｏｎｇ−ＧＯＰが慣習的にビデオエディティングシステムで何故避けられているかを例示するものである。
【０００８】
過去のデザインは、デコーディングに先立ってディスクからピクチャを読み取る。ピクチャは、ピクチャがデコード及び表示される前に、幾つかの時間についてメモリにバッファリングされる。これは、フェッチングとデコーディングの間である程度の独立性を提供するが、再生速度が変化したとき、システムは、ディスクから異なるピクチャを取り出す必要がある。異なるピクチャがフリーメモリに記憶される必要がある。デジタルビデオシステムは、どのピクチャをフリーにするかを判定し、入力バッファから除く必要がある。ビデオプレイバックシステムの動作は、一般に、フロントエンド駆動であり、リアルタイムでスケジューリングされる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、ビデオデコーディングシステムを通してピクチャがロード、処理及び供給される増加される制御を提供するデジタルビデオ再生システムが必要とされている。
【課題を解決するための手段】
【００１０】
本発明は、デジタルビデオを処理するシステムに関する。本発明の１態様は、変化する再生速度でデジタルビデオを再生するシステムである。システムは、フェッチャーモジュール、アロケータモジュール、デコーダモジュール、及び出力キャッシュモジュールを含む。フェッチャーモジュールは、データストアからエンコードされたピクチャを検索するために構成される。アロケータモジュールは、検索されたエンコードされたピクチャを入力キャッシュに追加し、エンコードされたピクチャを入力キャッシュから選択的に削除するために構成される。デコーダモジュールは、入力キャッシュから受信されたピクチャをデコードする。出力キャッシュモジュールは、複数のデコードされたピクチャを記憶し、選択されたピクチャの１つを出力として提供する。ピクチャは、それぞれのピクチャに対応する優先度に従って、上述されたモジュールのそれぞれで処理される。
【００１１】
１実施の形態では、優先度は、ビデオタイムライン及びエイムポイント内でのピクチャの位置間の距離を示す。エイムポイントは、ビデオ再生の位置、速度、及び／又は加速度の少なくとも１つに依存してビデオタイムライン内のターゲットロケーションを規定する。ビデオ再生システムのモジュールのそれぞれは、ビデオタイムライン内の異なるエイムポイントを利用することができる。エイムポイントは、ビデオ再生の速度及びビデオ再生の加速度を少なくとも１つのチューニング係数により乗算し、乗算の結果をビデオタイムラインにおける現在の位置と合計することで決定することができる。
【００１２】
フェッチャーは、データストアから最も高い優先度を有するエンコードされたピクチャを検索する。また、システムは、予め決定された最大の加速にビデオ再生の加速度を制限するために構成される上側制御レイヤを含む。デコーダによるデコードの前にデータストアから検索されるエンコードされたピクチャを記憶するための入力キャッシュを含むことができる。１態様では、入力キャッシュがデータストアからの新たに検索されたピクチャを記憶するために利用可能なスペースを有さないときに、アロケータは動作可能である。
【００１３】
１実施の形態では、デコーダモジュールは、少なくとも２つのデコーダを含む。別の実施の形態では、デコーダモジュールは、少なくとも１つのデコーダと、少なくとも１つのピクチャのファーストインファーストアウト（ＦＩＦＯ）タグを含む。それぞれのデコーダは、ピクチャＦＩＦＯに対応することができる。デコーダモジュールは、入力キャッシュ内のエンコードされたピクチャを評価し、デコーディングのために入力キャッシュから少なくとも１つのピクチャを選択する。選択されたピクチャは、デコーダモジュールに対応するエイムポイントに基づいて最も高い優先度を有する。
【００１４】
出力キャッシュモジュールは、最も低い優先度のピクチャを高い優先度のピクチャで上書きするために構成されるライトコントローラを含む。出力キャッシュモジュールは、複数の出力キャッシュバッファを含む。したがって、ライトコントローラは、それぞれデコードされたピクチャを書き込む前に複数の出力キャッシュバッファから出力キャッシュバッファのうちの１つを選択することができる。
【００１５】
出力キャッシュモジュールは、それぞれフィールドタイムの間に表示するためにビデオタイムライン内の現在の位置に最も近い出力キャッシュバッファから少なくとも１つのフィールドを選択するために構成されるリードコントローラを更に含む。リードコントローラＦＩＦＯは、出力キャッシュモジュールに含まれる。リードコントローラＦＩＦＯは、調節可能な量によりリードコントローラについて意図されるポジションコマンドを遅延することができる。
【発明を実施するための最良の形態】
【００１６】
本発明の好適な実施の形態は、添付図面を参照して更に詳細に以下に記載される。  
本発明は、デジタルビデオサーバ及び他のビデオプレーヤにおける使用のためのデジタルビデオ再生システムを提供する。フロントエンドで駆動される、リアルタイムでスケジュールされるアーキテクチャに依存するよりはむしろ、本発明は、デジタルビデオ再生システム内でそれぞれのモジュールがどのピクチャが処理又は実行されるかをスケジュール、又は選択するのを可能にする。本実施の形態で開示される本発明のアレンジメントによれば、ビデオ再生システムのそれぞれのモジュールは、優先度のスキームに従って所与の時間で、ピクチャの処理の優先度を決定する。
【００１７】
本実施の形態で使用されるように、タイムラインとは、ビデオ再生システムが再生するピクチャ又は動画の年代的な一連を示す。動画は、大きな複雑な動画に結合することができる１以上の個別のビデオファイル及び／又はピクチャを含む。したがって、ビデオファイル及び／又はピクチャは、再生されるべき特定の順序で再生される必要がある。本実施の形態で使用されるピクチャは、ビデオのフィールド及び／又はフレームを示す。
【００１８】
図１は、本発明の１実施の形態に係るビデオプレイバックシステム１００を説明する概念図である。ビデオプレイバックシステム１００は、デジタルビデオコンテンツをデコード及び再生することができる。図示されるように、ビデオプレイバックシステム１００は、ファイルシステムインタフェースモジュール１０５、フェッチャーモジュール１７５、アロケータモジュール１８０、入力キャッシュ１８５、デコーダモジュール１１０、及び出力キャッシュモジュール１１５を含む。上述されたモジュールは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリ、コントローラ、プロセッサ、ディスクリートコンポーネント、ホストコンピュータ又はコントローラ内で実行する適切なソフトウェア又はコンピュータプログラム、若しくはその組み合わせのような集積回路（ＩＣ）を使用して実現される。
【００１９】
ビデオ再生システム１００は、大容量記憶装置１２０を更に含む。大容量記憶装置１２０は、磁気ハードディスクドライブ、光ディスク、メモリ等である。モジュール１０５〜１１５、１７５〜１８５、及び大容量記憶装置１２０は、通信バス又は図示されるような他の適切な回路を介して相互接続される。何れのケースにおいても、フェッチャーモジュール１７５、アロケータモジュール１８０、デコーダモジュール１１０、及び出力キャッシュモジュール１１５は、優先度のスキームに基づいて処理されるべき特定のピクチャを選択することにおいて独立に動作する。１実施の形態では、優先度のスキームは、更に詳細に本実施の形態で記載される、エイムポイントに基づいている。
【００２０】
上側制御レイヤ１２５も含まれる。上側制御レイヤ１２５は、集約されるプロセッサ及び／又はシグナリングシステムとして実現される。かかるように、上側制御レイヤ１２５は、モジュールのそれぞれを初期化し、ビデオプレイバックシステム１００のそれぞれのモジュールのそれぞれにタイミング情報を供給することで、デジタルビデオプレイバックの開始及び停止全体を管理する。したがって、上側制御レイヤ１２５は、デジタルビデオストリーム内のそれぞれのピクチャに関するポジション情報１３０を提供する。ポジション情報１３０から、ディファレンシエータ１３５は、デジタルビデオストリームに関する速度情報１４０及び加速度情報１４５を判定する。速度情報１４０は、現在のピクチャの位置から前のピクチャの位置を引くことで決定される。加速度情報１４５は、現在のピクチャの速度から前のピクチャの速度を減算することで決定される。
【００２１】
１実施の形態では、上側制御レイヤ１２５は、フェッチャーモジュール１７５、アロケータモジュール１８０、デコーダモジュール１１０及び出力キャッシュモジュール１１５のそれぞれに、位置１３０、速度１４０、及び／又は加速度１４５の情報を提供する。それぞれ個々のモジュールは、それ自身のエイムポイントを計算する。別の実施の形態では、それぞれのモジュールには、上側制御レイヤ１２５からのエイムポイントが提供される。いずれのケースにおいても、時間的に任意のポイントでそれぞれのモジュールにより使用されるエイムポイントは、他のモジュールにより使用されるものとは異なる。かかる情報は、それぞれのモジュールがデジタルビデオタイムラインにおいて異なるピクチャを処理しているので、あるモジュールから別のモジュールに変化する。
【００２２】
それぞれのモジュールについて決定された速度及び加速度の情報は、１以上のチューニング係数により乗算することができる。速度及び加速度は、異なるチューニング係数により乗算される。さらに、異なるチューニング係数は、ビデオ処理チェイン内のそれぞれのもジュールのロケーションを考慮するために、それぞれのモジュールについて使用することができる。ひとたび速度及び加速度情報が予め決定されたチューニング係数で乗算されると、結果は、あるモジュールから次のモジュールに変化する、デジタルビデオのタイムライン内の現在の位置に追加される。結果は、動きの方向におけるビデオタイムライン内の現在の位置に先行するエイムポイントである。したがって、リアルタイムでの所与のポイントで、たとえばフェッチャーモジュール１７５のエイムポイントは、デコーダモジュール１１０のためのエイムポイントよりもデジタルビデオのタイムラインに沿って更に遠く前方にある。
【００２３】
Ａ＆Ｂトラック情報１５５は、タイムライン内の所与のポジションで１又は２のビデオトラックが存在するかを示す。Ａ＆Ｂのトラック情報１５５は、どのビデオファイルがこれらのトラックに対応するか、及びミックスパーセンテージ情報１５０により反映される２つのトラック間のミックスパーセンテージを更に示す。
【００２４】
２以上のビデオのトラックが存在するケースでは、ミックスパーセンテージ情報１５０は、ビデオプレイバックシステム１００の出力で再生されるか、特定のタイプのワイプ効果のような「混合効果」を駆動することになる、それぞれのトラックのパーセンテージを示す。かかる情報は、あるトラックから別のトラックへの遷移がどのように処理されるかを示す。上側制御レイヤ１２５は、垂直方向の割り込み１５５を提供し、この割り込みにより、フェッチャーモジュール１７５、アロケータモジュール１８０、デコーダモジュール１１０、及び出力キャッシュモジュール１１５に実行させる。それぞれのモジュールは、少なくとも１つのピクチャを処理するため、割り込み当たり１回実行する。
【００２５】
上側制御レイヤ１２５の別の機能は、１以上のピクチャリスト１６５を作成及び管理することである。ピクチャリスト１６５は、入力又は出力キャッシュに現在記憶されているピクチャ、又はシステムの幾つかの部分で進行中のピクチャの一覧である。それぞれのピクチャは、ピクチャリスト内でソフトウェアオブジェクト１７０に関連される。ソフトウェアオブジェクト１７０は、タグと呼ばれ、限定されるものではないが、デジタルビデオタイムライン内のピクチャの位置、ピクチャが対応するトラック、ビデオプレイバックシステム１００内のピクチャの現在のロケーション、ファイルピクチャポジション、符号化タイプ（すなわちＩ，Ｐ，Ｂ，ＤＶ等）、散乱／収集リスト等を含む。１つのタグが示されているが、それぞれのピクチャは、それ自身のタグと関連付けされる。
【００２６】
１実施の形態では、シングルピクチャリスト１６５は、ビデオ再生システム１００全体を通して使用される。このピクチャリスト１６５は、ビデオ再生システム１００のそれぞれのモジュールによりアクセス可能なメモリに記憶される。別の実施の形態では、それぞれのモジュールは、それ自身のピクチャリストを含み、及び／又は維持することができる。
【００２７】
上側制御レイヤ１２５、又は別の制御プロセッサは、全体としてシステム１００に関して加速度の制限を強制する。かかる制限は、ビデオタイムラインにおいてユーザが位置する場所をユーザが理解するのを容易にする滑らかなビデオ再生を提供する。たとえば、±５×／ｓｅｃ、又は５フレーム／ｓｅｃ２の制限が強制される。これは、速度がピクチャ当たり５を超えるピクチャを増加又は減少するのを防止することに等価である。かかる機能は、たとえばシャトル速度制御ノブを読み出す環境で、ソフトウェア機能として実現される。
【００２８】
ファイルシステムインタフェース１０５は、大容量記憶装置１２０の中間として機能する。かかるように、ファイルシステムインタフェース１０５は、大容量記憶装置１２０に記憶された特定のフォーマットのデータを読み取り、更に、かかるデータをフェッチャーモジュール１７５に伝達するために構成される。フェッチャーモジュール１７５は、ファイルシステムインタフェース１０５を通して大容量記憶装置１２０内に記憶されるエンコードされたピクチャを検索するために構成される。フェッチャーモジュール１７５は、大容量記憶装置１２０をサーチし、入力キャッシュ１８５内に既にダウンロードされていない最も高い優先度のピクチャを選択する。ピクチャの優先度は、デジタルビデオタイムラインにおけるエイムポイントに関するピクチャの接近の度合いを示す。ビデオ再生システム１００内のそれぞれのモジュールは、デコーディングプロセスの間で必要とされるように、１以上のピクチャについて優先度の情報を決定する。それぞれのピクチャはデジタルビデオタイムライン内の特定のポジションを占有するので、このケースではフェッチャーモジュール１７５である特定のモジュールについてエイムポイントからそのピクチャの距離が決定される。ピクチャとエイムポイント間の距離が小さくなると、ピクチャの優先度が高くなる。
【００２９】
フェッチャーモジュール１７５内で、予測器１９２は、予測アルゴリズムを実行する。アルゴリズムは、現在の再生速度の情報と、上側制御レイヤ１２５から決定されるエイムポイントに依存する。これに応じて、予測器１９２は、理想的なピクチャのセット、すなわち大容量記憶装置１２０から検索された高い優先度のピクチャのセットを選択する。
【００３０】
アロケータモジュール１８０は、フェッチャーモジュール１７５が１以上の高い優先度のピクチャを検索する必要があるケースで、最も低い優先度のピクチャにより占有される入力キャッシュ１８５のメモリをフリーにするか、又は再使用する。アロケータモジュール１８０は、たとえば、入力キャッシュ１８５が新たに検索されたピクチャのために十分な記憶スペースを有さないときに動作する。アロケータモジュール１８０は、入力キャッシュ１８５からのピクチャを削除し、ピクチャを上書き等する。入力キャッシュ１８５からメモリをフリーにする技術が使用される。ピクチャが大容量記憶装置１２０からフェッチャーモジュール１７５により検索された後、アロケータモジュール１８０は、それらのピクチャを入力キャッシュ１８５に配置する。入力キャッシュ１８０は、デコーダモジュール１１０によるデコーディングの前にエンコードされた、又は圧縮されたピクチャを記憶する。
【００３１】
デコーダモジュール１１０は、ハードウェアデコーダ１９０及びピクチャタグＦＩＦＯ１９５を含む。１実施の形態では、ハードウェアデコーダ１９０は、ハードウェアデコーダ１９０が一般的なビデオデコーディング機能を実行するのを可能にするオペレーショナルソフトウェアを含む。たとえば、ソフトウェアは、デコーダ１９０に、デコーディングを開始し、デコーディングを停止し、リセットを実行するように指示する。にもかかわらず、デコーダ１９０は、専用のハードウェアベースのデコーダよりもプロセッサ内で実行するソフトウェアベースのデコーダとして実現することができる。
【００３２】
何れのケースにおいても、デコーダ１９０と共に機能するソフトウェアは、特定のビデオフォーマット及び／又はメディアタイプをデコードするためにデコーダ１９０を構成又は再構成することができる。ソフトウェアは、デコーディングのためにビデオデータ又はピクチャが利用可能ではないとき、ブランクピクチャをデコーダ１９０に供給する。ブランクピクチャは、出力キャッシュモジュール１１５での削除のためにマークされるピクチャを示し、かかるように、再生されるべきではない。かかるピクチャは、デコーダ１９０を占有された状態にすることが意図されるフィラーピクチャとして見ることができる。ピクチャタグＦＩＦＯ１９５は、実際のデコーダ１９０において進行中のピクチャを表すタグのような情報を記憶する。ピクチャタグＦＩＦＯ１９５は、デコーダ１９０の出力にあるピクチャを正しく識別する。
【００３３】
１実施の形態では、図１の示されるように、デコーダ１９０は、デュアルビデオストリームを収容するように２つのデコーダ又は２つのチャネルを含む（以下、集合的に「デコーダ」）。かかるように、両方のデコーダは同じタイプのデジタルビデオをデコードするが、それぞれのデコーダは、異なるバラエティのデジタルビデオをデコードするために構成される。しかし、２を超えるデコーダが含まれることも理解されるべきである。それぞれのデコーダは、そのデコーダからの出力を識別するためにそれ自身のピクチャタグＦＩＦＯと関連付けされる。本発明は、リアルタイムよりも高速に動作するデコーダを含む、シングルストリームデコーダ及び／又はマルチストリームデコーダに適用される。
【００３４】
デコーダ１９０は、大容量記憶装置１２０から読み取られ、入力キャッシュ１８５内に記憶されるピクチャのみを処理する。デコーダ１１０は、入力キャッシュ１８５に配置され、出力キャッシュモジュール１１５にないか、又はデコーダ１９０内でデコードされている２つの最も高い優先度のピクチャを一般に選択する。１を超えるデコーダが使用される場合、すなわち１を超えるデジタルビデオストリームを処理するため、それぞれのピクチャは、ビデオストリームがＭＰＥＧストリーム、デジタルビデオ（ＤＶ）、及び／又はＧＯＰフォーマットであるか、のようなビデオデータフォーマット化に関する制約を収容するために特定のデコーダに向けられる。したがって、従属するピクチャがＬｏｎｇ−ＧＯＰフォーマットについて処理される前に、必要とされるアンカーフレームを供給するため、デコーダ１１０は、ＧＯＰアウェアな判定を行うためにプログラムされる。
【００３５】
Ｌｏｎｇ−ＧＯＰフォーマットに関して、フェッチャーモジュール１７５及びデコーダモジュール１１０は、必要とされるようにＧＯＰアウェアな判定を行う。かかるメカニズムは、ＭＰＥＧ  Ｉ及びＰ符号化ピクチャのようなアンカーフレームがＭＰＥＧ  Ｐ及びＢ符号化ピクチャのような従属のピクチャの前に検索されることを保証する。
【００３６】
出力キャッシュモジュール１１５は、ライトコントローラ２００、複数の出力キャッシュバッファ２０５、リードコントローラ２１０、リードコントローラＦＩＦＯ２１５を含む。ライトコントローラ２００は、デコーダ１９０が出力する複数の出力キャッシュバッファのうちのどれがデコードされたピクチャを書き込むかを選択する。ライトコントローラ２００は、最も低い優先度のピクチャを廃棄、すなわち高い優先度のピクチャで上書きする。出力キャッシュバッファ２０５は、デコーダ１９０により書き込まれる圧縮されていないピクチャを一時的に記憶するメモリである。出力キャッシュバッファ２０５の数は、デザインの好みに従って変化し、処理されているビデオストリームの数にリンク又は依存する必要がない。
【００３７】
リードコントローラ２１０は、出力キャッシュバッファの内容を分析し、ビデオタイムライン内の現在のポジションと比較したときに最も近いピクチャを選択する。たとえば、リードコントローラ２１０は、それぞれのフィールドタイムについて、Ａ及びＢ出力で表示されるべき２つのフィールドを選択する。
【００３８】
リードコントローラＦＩＦＯ２１５は、上側制御レイヤ１２５からリードコントローラ２１０にポジションコマンドを遅延させる。遅延機能は、ビデオ出力として必要とされるピクチャを供給するため、システム１００に更なる時間を供給する。リードコントローラＦＩＦＯ２１５は、変化する遅延量を提供するために調節され、これにより、ビデオプレイバックシステム１００が良好なパフォーマンスのために同調されるのを可能にする。１実施の形態では、リードコントローラＦＩＦＯ２１５は、ゼロ遅延に設定されるか、システム１００から全体として除外される。
【００３９】
リードコントローラＦＩＦＯ２１５は出力キャッシュモジュール１１５の一部として記載されているが、別の実施の形態では、リードコントローラＦＩＦＯ２１５は、上側制御レイヤ１２５に組み込まれる。これに応じて、本発明はそのように限定されない。
【００４０】
図２は、本発明の別の実施の形態に係るデジタルビデオを再生する方法３００を説明するフローチャートである。本方法３００は、ステップ３０５で開始し、フェッチャーモジュール１７５は、ビデオタイムライン内の現在のポジションを示すエイムポイントを取得する。先に述べたように、エイムポイントは、ビデオタイムライン内のポジションを変えるために使用されるユーザ制御から割り込まれたとき、速度及び加速度について補正される。
【００４１】
ステップ３１０では、アロケータモジュール１８０は、入力キャッシュが検索されたピクチャを記憶するために十分なスペースを有するかを判定する。十分なスペースを有する場合、本方法は、ステップ３２０に進む。十分なスペースを有さない場合、ステップ３１５で、アロケータモジュール１８０は、要求された、取り出されたピクチャを記憶するための十分なスペースを残すため、入力キャッシュから１以上のピクチャを移動、上書き又は削除する。アロケータモジュール１８０は、検索されたピクチャよりも低い優先度を有するピクチャを任意に移動する。アロケータモジュール１８０は、以前に記憶されたピクチャが高い優先度を有し、新たなピクチャのためのスペースを提供するために再使用し、したがって、その時間で取り出しを一時的に停止させる。入力キャッシュで利用可能なスペースの量を増加させるため、そこで記憶されるピクチャは、典型的に、エンコードの間に圧縮される。すなわち、入力キャッシュに記憶されるピクチャは、なおエンコードされ、これによりメモリが節約される。
【００４２】
１実施の形態では、アロケータモジュール１８０は、入力キャッシュに記憶される全てのピクチャの最も低い優先度を有するピクチャを移動させる。アロケータモジュール１８０は、エイムポイントを取得し、このエイムポイントは、入力キャッシュからどのピクチャを移動するかを評価するために使用される。
【００４３】
エイムポイント及び予測器１９２を使用して、フェッチャーモジュール１７５は、ステップ３２０で、大容量記憶装置から１以上のピクチャを検索する。予測器１９２は、ピクチャのために優先度の情報を計算し、フェッチャーモジュール１７５が適切なピクチャを選択及び検索するのを可能にする。最も高い優先度を有するピクチャ、すなわちビデオタイムライン内のピクチャのポジションに基づいてエイムポイントに最も近いピクチャを選択することができる。フェッチャーモジュール１７５は、どのピクチャが大容量記憶装置から既に検索されているか、どのピクチャが入力キャッシュに位置されるかを判定するためにピクチャリストにアクセスする。先に述べたように、フェッチャーモジュール１７５は、ＧＯＰアウェアな判定を行うことができる。したがって、従属のピクチャが対応するアンカーピクチャよりもエイムポイントに近い場合、フェッチャーモジュール１７５は、ピクチャを適切にデコードするため、従属のピクチャの前にアンカーピクチャを選択する。
【００４４】
ステップ３２５では、フェッチャーモジュール１７５は、検索されたピクチャのタグ内で指定された情報を更新する。すなわち、フェッチャーモジュール１７５は、検索されたピクチャが、現在、又はやがて、入力キャッシュに配置されることを示すロケーションフラグを設定する。ステップ３３０では、検索されたピクチャは、入力キャッシュに記憶される。
【００４５】
ステップ３３５では、デコーダモジュール１１０は、エイムポイントを取得する。ステップ３４０では、デコーダモジュール１１０は、入力キャッシュから１以上のピクチャを選択する。入力キャッシュから選択されたピクチャは、ビデオタイムライン内のピクチャのエイムポイント及びロケーションを使用して、デコーダモジュール１１０により計算されるように、最も高い優先度を有するピクチャとすることができる。ステップ３４５では、選択されたピクチャは、デコーダモジュール１１０にロードされ、処理される。ステップ３５０では、デコーダモジュール１１０は、ピクチャが現在デコーダにあることを示すため、ロードされたピクチャに対応するタグを更新する。デコーダ出力から利用可能なピクチャは、ピクチャタグＦＩＦＯにより示すことができる。
【００４６】
ステップ３５５では、デコーダ１９０は、ライトコントローラ２００により選択された出力キャッシュバッファにデコードされたピクチャを書き込む。先に述べたように、ライトコントローラ２００は、どの出力キャッシュバッファにデコードされたピクチャが書き込まれるかを選択する。１を超えるビデオストリームがデコードされるケースでは、第一のストリームからデコードされたピクチャは、そのフレーム又はピクチャについて選択された出力キャッシュバッファに記憶される。第二のストリームに対応するデコードされたピクチャは、そのフレームについて選択された出力キャッシュバッファに記憶される。したがって、ピクチャは、デコードされたフォーマット又は圧縮されていないフォーマットで出力キャッシュバッファに記憶される。
【００４７】
ライトコントローラ２００は、高い優先度のピクチャのための余地をつくるため、低い優先度のピクチャを上書き、及び／又は廃棄する。この決定をなすため、ライトコントローラ２００は、エイムポイントを取得し、エイムポイントをビデオタイムライン内のピクチャのポジションと比較する。したがって、ライトコントローラ２００は、出力バッファキャッシュにピクチャを書き込むのに使用される優先度の情報を計算する。ライトコントローラ２００は、記憶されているピクチャを上書きしないことを決定し、代わりに、特定のデコーダストリームの出力を廃棄する。
【００４８】
ステップ３６０では、リードコントローラ２００は、表示のためにビデオタイムライン内の現在のポジションに関して、最も近いピクチャ又はフィールドを選択する。したがって、２つのビデオストリームがリードコントローラ２００によりデコードされる場合、リードコントローラ２００は、それぞれのビデオストリームについて２つである４つのフィールドを選択する。選択されたピクチャは、２つのストリームのデコーダのケースで出力Ａ及びＢにわたり供給される。ミックスパーセンテージ信号は、表示又はレンダリングされるべきそれぞれデータストリームのパーセンテージを示す。
【００４９】
インタレースビデオ出力フォーマットに関して、第一のビデオフィールドタイムにおけるビデオ出力のために選択されたソースバッファは、第二の出力フィールドタイムの間に使用されるソースバッファとは異なる。これは、ここで例示されるデュアルストリームデコーダアーキテクチャとの組み合わせで高速でビデオを再生するときに特に有効である。そのケースでは、６０のフルフレームは、シングルトラックから毎秒当たりデコードされ、リードコントローラ２００は、これらのフレームのそれぞれのうちから１フィールドを選択する。これにより、従来のデザインで可能な平滑さの約２倍の平滑さであるプレイバックが得られる。
【００５０】
ここで開示される本発明のアレンジメントは、フロントエンド駆動、リアルタイムスケジュールデコーディングよりはむしろ、ピクチャ選択及びデコーディングを駆動するために優先度が使用されるシステムを利用する。優先度は、速度及び加速度について調節されるビデオタイムライン内の現在のポジションであるエイムポイントからビデオタイムライン内のピクチャの距離に従って決定することができる。また、圧縮されていないキャッシュと共にバックエンド選択プロセスが利用される。したがって、ビデオプレイバックアーキテクチャは、リアルタイムで厳密に機能する必要があることからデコーダを解放する。これにより、たとえば、リバースで再生している間、デコードハードウェアにより必要とされるように、ＧＯＰにおけるフォワードデコーディングを可能にする。さらに、大容量記憶及びデコードメカニズムの遅延は、ハードウェア又はソフトウェアベースであるにせよ隠され、これによりユーザ制御に対して高速な応答が可能になる。本発明は、シングルトラックの高速シャトルプレイバックに関して、改善されたデコーディングを達成するために典型的なデュアルデコーダハードウェアの両方のデコーダを利用する。
【００５１】
本発明は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせで実現される。本発明は、１つのコンピュータシステムでの集約化されたやり方で、又は異なるエレメントが幾つかの相互接続されたコンピュータシステムにわたり分散される分散されたやり方で実現される。ここで記載される方法を実行するために適応される任意の種類のコンピュータシステム又は他の装置が適する。ハードウェアとソフトウェアの典型的な組み合わせは、ロード及び実行されたときに、ここで記載された方法を実行するようにコンピュータシステムを制御するコンピュータプログラムをもつ汎用コンピュータシステムである。
【００５２】
また、本発明の態様は、ここで記載された方法の実現を可能にする全ての機能を含み、コンピュータシステムにロードされたとき、これらの方法を実行することができるコンピュータプログラムプロダクトに埋め込まれる。このコンテクストにおけるコンピュータプログラムは、情報処理機能を有するシステムに、直接的に特定の機能を実行させるか、若しくは、ａ）別の言語、コード又は表記への変換、ｂ）異なるマテリアルフォームにおける再生、のいずれか一方又は両方の後に特定の機能を実行させることが意図される命令のセットからなる、任意の言語、コード又は表記での表現を意味する。
【００５３】
本発明は、本発明の精神又は本質的な属性から逸脱することなしに、他の形式で実施することができる。したがって、本発明の範囲を示すものとして、上述した明細書よりはむしろ、特許請求の範囲に対して参照が行われる。
【図面の簡単な説明】
【００５４】
【図１】本発明の１実施の形態に係るデジタルビデオ再生システムを説明する概念図である。
【図２】本発明の別の実施の形態に係るデジタルビデオを再生する方法を説明するフローチャートである。
【図１】
2008529405.tif 000003
【図２】
2008529405.tif 000004
【国際調査報告】
2008529405.tif 000005
2008529405.tif 000006