(57)【特許請求の範囲】
【請求項１】
符号化／圧縮化されたデータストリームを復号化するオーディオ／ビデオ復号化回路であって、
該符号化／圧縮されたデータストリームを符号化／圧縮化されたオーディオフレームと符号化／圧縮されたビデオフレームとに分離するパーサと、
アドレス指定可能な記憶装置を有し、該パーサに結合されたメモリであって、該符号化／圧縮されたオーディオフレームと該符号化／圧縮化されたビデオフレームとを一時的に格納する第１の領域と、復号化／伸長されたビデオフレームを選択的に格納する複数のスロットを有する第２の領域とにアドレス・パーティショニングされているメモリと、
該メモリに結合されたデコーダであって、該符号化／圧縮されたビデオフレームを復号化し、復号化／伸長されたビデオフレームを生成するデコーダと
を備え、
該デコーダは、
該符号化／圧縮されたビデオフレームを受け取る手段と、
該受け取られた符号化／圧縮されたビデオフレームのタイプを判定する第１の判定手段と、
該メモリからディスプレイに現在出力されている復号化／伸長されたビデオフレームのタイプを判定する第２の判定手段と、
該受け取られた符号化／圧縮されたビデオフレームを復号化する手段と、
Ｂタイプの復号化／伸長されたビデオフレームが該メモリから該ディスプレイに現在出力されていると該第２の判定手段によって判定され、かつ、該受け取られ復号化された符号化／圧縮されたビデオフレームがＢタイプのビデオフレームであると該第１の判定手段によって判定された場合には、現在格納されているＢタイプのビデオフレームを保持し、かつ、該受け取られた符号化／圧縮されたビデオフレームを該メモリに格納しない手段と
を含む、オーディオ／ビデオ復号化回路。
【請求項２】
前記メモリの前記第２の領域が、復号化／伸長されたビデオフレームを格納する３つのスロットを有している、請求項１に記載のオーディオ／ビデオ復号化回路。
【請求項３】
前記メモリの前記第２の領域が、復号化／伸長されたビデオフレームを格納する４つのスロットを有している、請求項１に記載のオーディオ／ビデオ復号化回路。
【請求項４】
前記デコーダおよびビデオモニタに結合されており、前記ビデオフレームからグラフィックスデータを生成し、該グラフィックスデータをイメージとして該ビデオモニタ上に表示するグラフィックスコントローラをさらに備えている、請求項２に記載のオーディオ／ビデオ復号化回路。
【請求項５】
前記デコーダおよびビデオモニタに結合されており、前記ビデオフレームからグラフィックスデータを生成し、該グラフィックスデータをイメージとして該ビデオモニタ上に表示するグラフィックスコントローラをさらに備えている、請求項３に記載のオーディオ／ビデオ復号化回路。
【請求項６】
前記デコーダおよびディジタルディスプレイに結合されており、前記ビデオフレームからグラフィックスデータを生成し、該グラフィックスデータをイメージとして該ディジタルディスプレイ上に表示するグラフィックスコントローラをさらに備えている、請求項２に記載のオーディオ／ビデオ復号化回路。
【請求項７】
前記デコーダおよびディジタルディスプレイに結合されており、前記ビデオフレームからグラフィックスデータを生成し、該グラフィックスデータをイメージとして該ディジタルディスプレイ上に表示するグラフィックスコントローラをさらに備えている、請求項３に記載のオーディオ／ビデオ復号化回路。
【請求項８】
前記デコーダおよびテレビジョンディスプレイに結合されており、前記ビデオフレームからテレビジョンデータを生成し、該テレビジョンデータをイメージとして該テレビジョンディスプレイ上に表示するテレビジョン信号エンコーダをさらに備えている、請求項２に記載のオーディオ／ビデオ復号化回路。
【請求項９】
前記デコーダおよびテレビジョンディスプレイに結合されており、前記ビデオフレームからテレビジョンデータを生成し、該テレビジョンデータをイメージとして該テレビジョンディスプレイ上に表示するテレビジョン信号エンコーダをさらに備えている、請求項３に記載のオーディオ／ビデオ復号化回路。
【請求項１０】
ビデオデータのフレームをメモリに格納するかどうかを判定する方法であって、
（ａ）符号化／圧縮されたビデオフレームを受け取るステップと、
（ｂ）該受け取られた符号化／圧縮されたビデオフレームのタイプを判定するステップと、
（ｃ）該メモリからディスプレイに現在出力されている復号化／伸長されたビデオフレームのタイプを判定するステップと、
（ｄ）該受け取られた符号化／圧縮されたビデオフレームを復号化するステップと、
（ｅ）Ｂタイプの復号化／伸長されたビデオフレームが該メモリから該ディスプレイに現在出力されているとステップ（ｃ）において判定され、かつ、該受け取られ復号化された符号化／圧縮されたビデオフレームがＢタイプのビデオフレームであるとステップ（ｂ）において判定された場合には、現在格納されているＢタイプのビデオフレームを保持し、かつ、該受け取られた符号化／圧縮されたビデオフレームを該メモリに格納しないステップと
を包含する、方法。
【請求項１１】
（ｆ）最も古いＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが前記メモリのどこに現在格納されているかを判定するステップと、
（ｇ）Ｂタイプの復号化／伸長されたビデオフレームが該メモリから前記ディスプレイに現在出力されており、かつ、前記受け取られ復号化された符号化／圧縮化されたビデオフレームがＩタイプまたはＰタイプのビデオフレームである場合には、該受け取られ復号化／伸長されたビデオフレームを、該最も古いＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが格納されている該メモリの部分に書き込むステップと
をさらに包含する、請求項１０に記載の方法。
【請求項１２】
（ｆ）ＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが前記メモリから前記ディスプレイに現在出力されており、かつ、前記受け取られ符号化／圧縮されたビデオフレームがＢタイプのビデオフレームである場合には、該受け取られ復号化／伸長されたビデオフレームを、該メモリのスロット３に書き込むステップをさらに包含する、請求項１０に記載の方法。
【請求項１３】
（ｆ）ＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが前記メモリから前記ディスプレイに現在出力されており、かつ、ＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが該メモリのスロット３に格納されており、かつ、前記復号化された符号化／圧縮されたビデオフレームがＢタイプのビデオフレームである場合には、該メモリの該スロット３に格納されている、現在格納されているＩタイプまたはＰタイプの復号化／伸長されたビデオフレームを保持するステップをさらに包含する、請求項１０に記載の方法。
【請求項１４】
（ｆ）前記メモリのスロット３が空であるかどうかを判定するステップと、
（ｇ）ＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが該メモリから前記ディスプレイに現在出力されており、かつ、前記受け取られ符号化／圧縮されたビデオフレームがＢタイプのビデオフレームであり、かつ、該メモリの該スロット３が空である場合には、該受け取られ復号化／伸長されたビデオフレームを、該メモリの該スロット３に書き込むステップと
をさらに包含する、請求項１０に記載の方法。
【請求項１５】
（ｆ）前記メモリのスロット３に格納されているＢタイプのビデオフレームであって、該メモリから前記ディスプレイに現在出力されているＢタイプのビデオフレームがあるかどうかを判定するステップと、
（ｇ）該メモリのスロット３に格納されている該Ｂタイプの復号化／伸長されたビデオフレームが該メモリから前記ディスプレイに現在出力されており、かつ、前記受け取られ復号化された符号化／圧縮されたビデオフレームが、ＩタイプまたはＰタイプのビデオフレームである場合には、該受け取られ復号化／伸長されたビデオフレームを、該メモリの該スロット３に書き込むステップと
をさらに包含する、請求項１０に記載の方法。
【請求項１６】
（ｆ）最も古いＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが前記メモリのどこに現在格納されているかを判定するステップと、
（ｇ）ＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが該メモリから前記ディスプレイに現在出力されており、かつ、前記受け取られ復号化された符号化／圧縮化されたビデオフレームがＩタイプまたはＰタイプのビデオフレームである場合には、該受け取られ復号化／伸長されたビデオフレームを、該最も古いＩタイプまたはＰタイプの復号化／伸長されたビデオフレームが格納されている該メモリの部分に書き込むステップと
をさらに包含する、請求項１０に記載の方法。
【発明の詳細な説明】
発明の分野
本発明は、広くは、マルチメディアアプリケーションの分野に関する。具体的には、本発明は、マルチメディア用のデコーダ／デコンプレッサおよびメモリコントローラに関する。本発明は、モーション・ピクチャ・エキスパート・グループ（MPEG  IおよびII）のデータ圧縮／伸長規格に特に好適である。
発明の背景
最近、パーソナルコンピュータは、オーディオおよびビデオ情報を含むマルチメディアアプリケーションを取り入れている。オーディオ情報およびビデオ情報を圧縮／符号化し、伸長／復号化するための規格をいくつかのマルチメディアグループが確立し、提案している。モーション・ピクチャ・エキスパート・グループにより確立されたMPEG IおよびIIは、マルチメディアPCアプリケーションの分野で最も広く受け入れられている国際規格である。その他の規格としては、ジョイント・フォトグラフィック・エキスパート・グループにより確立されたJPEGおよびモーションJPEGがある。図1Aは、MPEGアルゴリズムに従って圧縮され、符号化されたビデオおよび／またはオーディオデータの伸長をおこなうMPEGオーディオおよびビデオデコーダ120の図である。システムデコーダ110は、インタレースされ圧縮されたビデオおよび／またはオーディオデータを有する符号化されたMPEGデータストリーム101を読み出し、必要なタイミング情報、すなわち、ビデオプレゼンテーションタイムスタンプ（VPTS）104、システムタイムクロック（STC）とも称されるシステムクロック基準（SCR）105、オーディオプレゼンテーションタイムスタンプ（APTS）106、ならびに分離されたビデオの符号化されたビットストリーム102およびオーディオの符号化されたビットストリーム103を発生する。ビデオデコーダ111は、ビデオデータストリーム102を伸長し、伸長されたビデオ信号107を発生する。オーディオデコーダ112は、オーディオデータストリーム103を伸長し、伸長されたオーディオ信号108を発生する。伸長されたビデオ信号107は、PCモニタあるいはその他のディスプレイユニットに結合され、伸長されたオーディオ信号108は、オーディオスピーカあるいはその他のオーディオ発生手段に結合される。
MPEG符号化／圧縮されたデータストリームは、複数の符号化／圧縮されたビデオデータパケットあるいはブロックと、複数の符号化／圧縮されたオーディオデータパケットあるいはブロックとを含んでいることがある。MPEGエンコーダは、ピクチャとも称されるビデオフレーム毎にこれらのビデオパケットを符号化／圧縮する。これらのピクチャすなわちフレームは、１個の輝度信号および２個のクロミナンス信号を表すマルチビットの数からなる３つの矩形マトリックスから構成される、ソースすなわち復元されたイメージデータである。図2A〜図2Cは、利用される符号化／圧縮されたビデオフレームのタイプを図示している。図2Aは、イントラフレームすなわちIタイプのフレームを示している。Iタイプのフレームすなわちピクチャは、過去あるいは未来からの情報を用いずに符号化されたビデオデータのフレームであり、その他のタイプのフレームの復号化／伸長の基礎として利用される。図2Bは、予測フレームすなわちPタイプのフレームを図示している。Pタイプのフレームすなわちピクチャは、過去のIタイプのフレームまたはPタイプのフレーム（この場合は、I1 200）からの動き補償された予測を用いて符号化／圧縮されるフレームである。つまり、ある与えられた現在のビデオデータフレームを符号化／圧縮するのに以前のフレームが用いられる。205aは、Pタイプのフレーム210をつくるための動き補償された予測情報を表している。図2Cは、双方向フレームすなわちBタイプのフレーム220を図示している。Bタイプのフレームすなわちピクチャは、過去のIタイプの参照フレーム（この例では、200）あるいはPタイプの参照フレームおよび未来のIタイプの参照フレームあるいはPタイプの参照フレーム（この例では、210）、すなわちそれら両方の組み合わせから得られた動き補償された予測を用いて符号化／圧縮されるフレームである。図2Dは、表示順序I1B2B3P4B5P6と呼ばれるものにおけるグループオブピクチャを表している。この図は、Iタイプのフレームと、Pタイプのフレームとの間に挿入された複数のBタイプのフレーム、および動き補償情報が流れる方向を示している。
動き補償は、符号化／圧縮および復号化／伸長のための画素値予測効率を改善するために、あるフレームから次のフレームへと動きベクトルを用いることを指している。この予測方法は、オフセット値およびエラーデータを得るために動きベクトルを用いる。これらの動きベクトルは、ある与えられたビデオデータのフレームを圧縮／符号化するか、または伸長／復号化するためにエラーデータと共に用いられうる、復号化された画素値を有する過去または未来のビデオデータフレームを参照する。
Pタイプのフレームを復号化／伸長する能力は、以前のIタイプまたはPタイプの参照フレームが利用可能であることを要求し、Bタイプのフレームは、後続するIタイプまたはPタイプの参照フレームが利用可能であることを要求する。例えば、以下のフレームシーケンスつまり表示順序を有する符号化／圧縮されたデータストリームを考える。すなわち、I1B2B3P4B5P6B7P8B9B10P11…Pn-3Bn-2Pn-1Inを考える。
与えられたこの表示順序に対応する復号化順序は、
I1P4B2B3P6B5P8B7P11B9B10…Pn-1Bn-2Inとなる。
この復号化順序は、表示順序とは異なる。なぜなら、Bタイプのフレームは、未来のIタイプまたはPタイプのフレームが復号化されることを必要とするからである。Pタイプのフレームは、以前のIタイプの参照フレームが利用可能であることを要求する。例えば、P4は、符号化／圧縮されたI1フレームが利用可能になるように、I1が復号化されることを要求する。同様に、フレームP6は、フレームP6を復号化／伸長するためにはP4が利用可能であることを要求する。例えばB3のようなBタイプのフレームは、復号化されるためには、P4およびI1のような過去および未来のIタイプまたはPタイプの参照フレームを必要とする。Bタイプのフレームは、符号化のあいだに、Iタイプ、Pタイプあるいはそれらの組み合わせの間に挿入されるフレームであり、イメージを忠実に再生するためには必要ない。Iタイプのフレーム以前のフレーム（この例では、Pn-1など）は、Iタイプのフレームを復号化するのには必要ない。また、復号化／伸長されるために、Pn-1を必要とする未来のフレームはない。
一般に、動きの１秒１秒がすべて、少なくとも２つのIタイプのフレームを必要とする。Iタイプのフレームは、150キロビット／秒のサンプリングレートを有しており、一方、Pタイプのフレームは、50キロビット／秒のサンプリングレートを有している。
表示処理は、復号化処理よりも遅くなることがある。例えば、240×16のピクチャは、3072のクロックサイクルが復号化される（40Mhzで76.8μs）ことを要求する。16ラインのビデオデータを75Hzのリフレッシュレートで表示するためには、200μs（13μs×16＝200μs）を要する。これらのビデオフレームは、表示される以前にバッファリングされる。通常、表示と復号化との間には１フレームの遅延がある。表示と復号化との間の差は、テアリング（tearing）として知られている状態をもたらす。テアリングは、表示フレームが、復号化されたフレームにより上書きされる時に発生する。
図1Bは、テアリングを図示している。閉まっているドアのイメージ133を表すデータの復号化／伸長されたフレーム132が、現在、バッファ135に格納されている。この復号化／伸長されたフレームは、現在、ディスプレイユニット140に表示されている。この表示期間のあいだに、開いたドアのイメージ131を表すデータを有する別の復号化／伸長されたフレーム130が、バッファ135に格納される。この時点で、ディスプレイユニット140は、現在135に格納されている新しいフレームからの情報を用いて、表示を開始することになる。その結果、第１の格納されたイメージ141が部分的に表示され、新たに格納されたイメージ142も部分的に表示される。これが、テアリング効果である。
MPEGストリームを通常のビデオストリームと組み合わせるためのさまざまな方法は、図7A〜図7Cから分かる。
発明の要旨
集積化されたシステムと、表示するビデオフレームを処理するのにより小さい記憶空間を用いる新規なメモリコントローラ回路を有するビデオデコーダと、を備えたマルチメディアシステムが記載される。このマルチメディアシステムは、符号化／圧縮されたデータストリームを復号化することによって、符号化／圧縮されたデータストリームを、符号化／圧縮されたオーディオデータと、符号化／圧縮されたビデオデータとに分離する、オーディオ／ビデオ復号化／伸長回路を有している。アドレシング可能な記憶装置を有するメモリは、圧縮されたオーディオデータおよび符号化／圧縮されたビデオデータを一時的に格納する第１の領域と、復号化／伸長されたビデオフレームを選択的に格納する複数のスロットを有する第２の領域と、にアドレス・パーティショニングされる。符号化／圧縮されたビデオデータを復号化し、復号化／伸長されたビデオデータを生成するデコーダが設けられる。
フレームバッファメモリを効率よく用いることによって、マルチメディアシステムのコストを下げるための新規な方法が記載される。これらの方法は、符号化／圧縮されたビデオフレームを受け取ることと、それがBタイプのフレームであるか、Pタイプのフレームであるか、あるいはIタイプのフレームであるかを判定することと、を必然的に伴う。現在表示されている復号化／伸長されたビデオフレームのタイプもまた、判定される。次に、符号化／圧縮されたビデオフレームは復号化され、以下の表に従ってアドレス・パーティショニングされたメモリのさまざまなスロットへと書き込まれる。
以下の表は、開示される本発明の作用を要約している。
0003759167.tif 000002
マルチメディアシステムの一部は、オーディオサウンドおよびビデオイメージを、時間情報と、ビデオデータの圧縮／符号化されたパケットと、オーディオデータの圧縮／符号化されたパケットとを含む、圧縮／符号化されたビットストリームに圧縮／符号化する。圧縮／符号化されたビットストリームは、後で再生できるようにCDROMあるいはその他の記憶装置へと記録されてもよいし、ビデオイメージおよびオーディオプレイバックの表示を与えるマルチメディアシステムの再生部に直接、転送されてもよい。
マルチメディアシステムの再生部は、概略的には、コンパクトディスクの読み出し専用メモリの読み取り器と、プロセッサ回路と、オーディオ／ビデオデコーダ回路と、音声発生用のオーディオスピーカと、その音声再生に対応することのあるイメージを表示する１つ以上の表示装置と、を備えている。
よって、本発明によれば、圧縮／符号化されたオーディオおよびビデオデータフレームを受け取るマルチメディアシステム内の表示を制御するのに必要なメモリ回路の個数およびサイズを最小化することによって、システム設計のコストを下げることができる。
【図面の簡単な説明】
図1Aは、MPEG復号化システムの従来の技術によるブロック図である。
図1Bは、フレームバッファメモリ内に同時に格納されている２つの異なるフレームからのフレームデータが表示装置上に表示される、従来の技術による装置内のテアリングの問題を示す図面である。
図2A〜図2Dは、ビデオフレームの従来技術による符号化／圧縮を示す図である。
図3は、3スロットフレームバッファメモリアレイとインタフェースする本発明のブロック図である。
図4は、4スロットフレームバッファメモリアレイとインタフェースする本発明のブロック図である。
図5A〜図5Gは、3スロットフレームバッファメモリを用いる本発明の復号化方法を表す図である。
図6は、本発明がマルチメディアコンピュータシステムでどのように用いられるかを示す高レベルシステム図である。
図7A〜図7Cは、グラフィックスおよび符号化されたデータの転送を組み合わせるための本発明によるオプションの構成を図示している。
発明の詳細な説明
本発明の第１の実施の形態を示す図3を参照すると、メモリ321は、アドレス位置により多数の領域にパーティショニングされている。第１の領域（ビットストリームバッファ370と称される）は、オーディオ／ビデオの符号化されたデータパケットを一時的に格納するためのものである。メモリ321内の第２の領域（フレームバッファ350と称される）は、スロット371〜373と呼ばれる３つの副領域にアドレスパーティショニングされている。スロット1 371、スロット2 372およびスロット3 373は、それぞれ、復号化／伸長されたビデオフレームの１個の完全なフレームを格納することができる。
モノリシックな集積回路（ここでは、「Vidsyst（ビデオシステム）デコーダ」と称される）は、本発明のアルゴリズムおよび回路を実現する。Vidsystデコーダ311は、プロセッサ（不図示）からMPEGデータストリーム101を受け取り、符号化されたデータパケットをシステムパーサ382にわたすホストインタフェース381を有している。システムパーサ382は、タイミング情報（VPTS 104、SCR 105、APTS 106）をデータパケットからパーシングするのと共に、ビデオの符号化されたデータパケットをオーディオの符号化されたデータパケットからパーシングする。ビデオの符号化されたデータパケットは、ビデオデータストリームとして送られ、メモリ321内のビットストリームバッファ370に一時的に格納される。オーディオの符号化されたデータパケットもまた、メモリ321内のビットストリームバッファに一時的に格納される。準備ができると、メモリ321のビットストリームバッファ370内のビデオの符号化されたデータパケットは、読み出され、ビデオデコーダ383内で復号化・伸長されることによって、伸長されたビデオデータ107を生成する。
さまざまなタイプの符号化されたフレームを復号化するためには、Pタイプの符号化されたフレームおよびBタイプの符号化されたフレームを復号化するのに参照フレームを用いる必要がある。よって、データの伸長／復号化されたフレームは、通常、メモリ321へと保存しなおされ、他のフレームを復号化するのに利用される。もし、システムの遅延のために、伸長されたビデオデータフレームの表示が準備できていないのなら、このフレームはスキップされてもよい。準備ができると、メモリ321のビットストリームバッファ370内のオーディオの符号化されたデータパケットもまた、読み出され、オーディオデコーダ（不図示）へと復号化・伸長されることによって、伸長されたオーディオデータを生成する。
ビデオの符号化されたデータパケットの中には、さまざまな符号化されたビデオフレームがある。これらの中で、Iタイプのフレームは、メモリのおよそ20キロバイトを必要とし、Pタイプのフレームは、およそ10キロバイトを必要とし、Bタイプのフレームは、およそ3キロバイトを必要とする。第１の実施の形態では、メモリ321内の第２の領域（フレームバッファ350と称される）は、アドレスによりパーティショニングされた３つのスロット371〜373を有している。スロット1 371、スロット2 372およびスロット3 373は、それぞれ、復号化／伸長されたビデオフレームの１個の完全なフレームを格納することができる。典型的には、スロット1およびスロット2は、復号化／伸長されたIタイプおよびPタイプのビデオフレームを格納するのに用いられ、スロット3は、通常、復号化／伸長されたBタイプのフレームを格納するが、後述するように、復号化／伸長されたIタイプおよびPタイプのビデオフレームを格納してもよい。
メモリアレイ321は、メモリ領域を適正にアドレシングするために、アドレスデコーダと、データバッファと、制御回路375とを備えている。典型的には、このメモリは、ダイナミックランダムアクセスメモリ（DRAM）タイプであるが、ビデオメモリ（VMEM）タイプであっても、あるいはスタティックランダムアクセスメモリ（SRAM）タイプであってもよい。
Vidsystデコーダ311の中で、メモリコントローラ380は、その他の回路と協同して、メモリ321に対してアドレス122および制御123を発生する。発生されたアドレスおよび制御は、メモリ321へと書き込まれるか、またはそれから読み出される対応するデータと適正にタイミングが合わされる。
図4は、本発明の第２の実施の形態を示している。ここで、メモリ421は、アドレス位置によって、ビデオデータのフレームを格納する４つの「スロット」を含む異なる複数の領域にパーティショニングされている。第１の領域370は、図3の場合と同様にビットストリームバッファであり、符号化されたビデオおよびオーディオパケットを一時的に格納するためのものである。メモリ421内の第２の領域（フレームバッファ450と称される）は、アドレスによりパーティショニングされた４つのスロット471〜473を有している。スロット1 471、スロット2 472、スロット3 473およびスロット4 474は、それぞれ、同じサイズの復号化／伸長されたビデオフレームの１個の完全なフレームを格納することができる。
フレームバッファメモリが４つのスロットにパーティショニングされるとき、テアリングの問題はない。メモリのスロットは、現在表示されているフレームを有するスロット内へと書き込まなくても、利用可能である。さらに、4スロットメモリパーティショニングの場合、表示を止めることもできる。しかし、より低コストのコンピュータシステムには、より少ない量のメモリが好ましい。よって、3スロット解決手段を用いてメモリをより効率よく利用するほうが望ましい。いくつかのBタイプフレームを落とし、選択されたいくつかのスロットにおけるフレームを上書きすることによって、従来の技術に見られ、図1Bに図示されているテアリングの問題は発生しなくなる。例えば、図5A〜図5Gに図示されている以下のケースを考える。
第１の例である図5Aは、表示順序をI1B2B3P4とし、対応する復号化順序をI1P4B2B3としている。よって、ビデオデコーダ383は、まずI1フレームを復号化し、復号化／伸長されたI1フレームをスロット1 371に格納する。以前に格納された復号化／伸長されたI1フレームを用いて、P4フレームが次に復号化される。復号化／伸長されたP4フレームは、スロット2 372に格納される。次に、それぞれスロット1 371およびスロット2 372内に格納されている復号化／伸長されたフレームI1およびP4の一方または両方を用いて、B2フレームが復号化される。復号化／伸長されたB2フレームは、スロット3 373内に格納される。
次は、B3フレーム505を復号化／伸長するのが望ましい。しかし、3スロットメモリアレイを用いれば、復号化／伸長されたI1、P4およびB2フレームと共に現在格納されているスロットのどれも、それらが表示される前には、上書きしたいとは思わない。復号化／伸長されたI1およびP4フレームの場合、これらのフレームは、B3フレームを正しく復号化するのに必要とされる。復号化／伸長されたB2フレームの場合、このフレームは、表示装置上に表示されていないかもしれないし、あるいは、表示装置上にその一部だけが表示されているかもしれない。もし復号化／伸長されたB2フレームが復号化／伸長されたB3フレームにより上書きされるのなら、テアリングの問題が発生する可能性がある（図1Bを参照のこと）。これを避けるために、復号化／伸長されたB3フレームの情報は、メモリアレイ321に格納されず、表示されもしない。よって、復号化／伸長されたB2フレームは完全に表示されうる。Bタイプのフレームは、伸長されたモーションビデオTMセグメントの実質的な再生には必須ではないので、現在表示中であるか、またはこれから表示される復号化／伸長されたBタイプのフレームを上書きすることは、3スロットのフレームバッファシステムでは許されない。
次に、表示順序がI1B2P3I4であり、対応する復号化順序がI1P3B2I4である第２の例を示す図5Bを参照する。ビデオデコーダ383は、まずI1フレームを復号化し、復号化／伸長されたI1フレームをスロット1 371内に格納する。以前に格納された復号化／伸長されたI1フレームを用いて、P3フレームが次に復号化され、スロット2 372に格納される。次に、スロット1 371に格納されている復号化／伸長されたフレームI1およびスロット2 372に格納されている復号化／伸長されたフレームP3を用いて、B2フレームが復号化される。復号化／伸長されたフレームB2は、スロット3 373に格納される。
次に、復号化／伸長されたフレームB2が現在表示されている間に、I4 515が復号化される。Iタイプのフレームは、他のいかなるフレームからの情報も必要としない。よって、最も古いIタイプまたはPタイプのフレームが上書きされうる。よって、ここでは、スロット1 371に格納されている復号化／伸長されたフレームI1を復号化／伸長されたフレームI4で上書きする。
表示順序I1B2P3B4P5を有する第３の例を考える。対応する復号化順序は、I1P3B2P5B4である。図5Cに示されているように、ビデオデコーダ383は、まずI1フレームを復号化し、復号化／伸長されたI1フレームをスロット1 371内に格納する。以前に格納された復号化／伸長されたI1フレームを用いて、P3フレームが次に復号化される。復号化／伸長されたP3フレームは、スロット2 372に格納される。次に、スロット1およびスロット2にそれぞれ格納されている復号化／伸長されたフレームI1およびP3の両方を用いて、B2フレームが復号化される。
次にP5を復号化するのが望ましい。P5は、復号化／伸長されたフレームP3を参照として必要とするが、復号化／伸長されたフレームI1は必要としない。よって、復号化／伸長されたP5フレームは、P3に比べるとより以前の、つまりより古いフレームである、371に格納されている復号化／伸長されたI1を上書きしてもよい。
次に、復号化／伸長されたフレームP3およびP5を用いて、B4 525を復号化する。P3は、現在表示されている（501）復号化／伸長されたフレームであり、またB2はP3よりも前であるため既に表示されているので、復号化／伸長されたB4は、現在、スロット3 373に格納されているB2を上書きすることができる。
第４の例として、表示順序I1P2B3P4を有し、復号化順序I1P2P4B3を有する図5Dを考える。ビデオデコーダ383は、まずI1フレームを復号化し、復号化／伸長されたI1フレームをスロット1 371内に格納する。次に、以前に格納された復号化／伸長されたI1フレームを用いて、P2フレームが復号化される。復号化／伸長されたP2フレームは、スロット2 372に格納される。次に、スロット2内に格納されている復号化／伸長されたフレームP2を用いて、P4フレームが復号化される。復号化／伸長されたフレームP4は、この時点で、スロット3 373に格納される。
復号化／伸長されたI1フレームが現在表示されており（501）、符号化／圧縮されたB3が次に復号化される（535）。Bタイプのフレームは、伸長されたモーションビデオJのセグメントの実質的な再生には必須ではない。よって、符号化／圧縮されたBタイプのフレームが捨てられるようにし、スロット2 372に格納されている復号化／伸長されたP2フレームを表示させ、その後、スロット3 373に格納されている復号化／伸長されたP4フレームを表示させても、伸長されたモーションビデオJのセグメントの解像度が大幅な損失を被ることはない。
第５の例である図5Eを参照する。この例では、表示順序は、I1B2P3であり、対応する復号化順序は、I1P3B2である。ビデオデコーダ383は、まずI1フレームを復号化し、復号化／伸長されたI1フレームをスロット1 371に格納する。次に、以前に格納された復号化／伸長されたI1フレームを用いて、P3フレームが復号化され、スロット2 372に格納される。
図5Dの場合と同様に、復号化／伸長されたI1フレームが現在表示されており（501）、符号化／圧縮されたBタイプのフレームが次に復号化される。すなわち、B2 545である。しかし、この図では、空のスロット、すなわちスロット3 373がある。よって、以前に格納された復号化／伸長されたI1フレームおよび以前に格納された復号化／伸長されたP3フレームを用いて、符号化／圧縮されたB2フレームが復号化／伸長され、スロット3 373へと格納される。
表示順序I1B2P3P4を有し、対応する復号化順序I1P3B2P4を有する図5Fに示されている第６の例を考える。ビデオデコーダ383は、まずI1フレームを復号化し、復号化／伸長されたI1フレームをスロット1 371に格納する。次に、以前に格納された復号化／伸長されたI1フレームを用いて、P3フレームが復号化され、スロット2 372に格納される。次に、以前に格納された復号化／伸長されたI1フレームおよび以前に格納された復号化／伸長されたP3フレームを用いて、B2フレームが復号化される。復号化／伸長されたB2フレームは、その後、スロット3 373に格納される。
次に、スロット2 372に格納されており、現在表示されている（501）復号化／伸長されたフレームP3を用いて、P4フレーム555が復号化される。P3は現在表示されており、B2は、既に表示されたので、復号化／伸長されたフレームP4は、スロット3 373に格納され、復号化／伸長されたフレームB2を上書きする。
表示順序がI1P2P3P4であり、その復号化順序がI1P2P3P4である図5Gに示されている第７の例をさらに考える。ビデオデコーダ383は、まずI1フレームを復号化し、復号化／伸長されたI1フレームをスロット1 371内に格納する。次に、以前に格納された復号化／伸長されたI1フレームを用いて、P2フレームが復号化される。復号化／伸長されたP2フレームは、スロット2 372に格納される。次に、スロット2内に格納されている復号化／伸長されたフレームP2を用いて、P3フレームが復号化される。スロット3は、通常はBタイプのフレームを格納するのに用いられる。しかし、スロット3は、Pタイプのフレームを収容することもできる。よって、P3は、スロット3 373に格納される。
次に、P4フレーム565が復号化される。P4は、現在、スロット3 373に格納されている、より新しい復号化／伸長されたフレームP3から情報を引き出す。P4は、それよりも古い復号化／伸長されたフレームをもはや必要としないし、しかも、以前に復号化／伸長されたフレームからの情報を必要とするBタイプのフレームはないので、最も古いIタイプまたはPタイプのフレームを上書きする。よって、I1は、P3をスロット1 371に格納することによって、上書きされる。符号化／圧縮されたPタイプのフレームが復号化されている間に、復号化／伸長されたIタイプのフレームが表示されている時、または、符号化／圧縮されたIタイプのフレームが復号化されている間に、復号化／伸長されたIタイプのフレームが表示されている時、この例により説明されたのと同じ作用が用いられる。
マルチメディアシステム
本発明のマルチメディアアプリケーションの一例が、図6により図示されている。例えばマルチメディアコンピュータのようなマルチメディアディジタルシステム600は、その内部でCDROM読み取り器611およびオーディオ／ビデオデコーダ612に結合するメインシステムボード610を有している。このマルチメディアディジタルシステム600は、イメージソース601およびエンコーダ602を有し、例えば、ディジタルディスプレイ605、CRTモニタ606あるいはテレビジョン607のような外部表示装置に結合されうる、符号化システムに外部で結合されてもよい。
当初、符号化は、イメージデータを供給する何らかのソースからのデータに対してなされる。イメージデータを供給するソースの例をいくつか挙げれば、ビデオカメラ、TVモニタ、コンピュータ、スキャナ、および静止カメラがある。ソースには関係なく、イメージデータは、バス635上をエンコーダ602へと供給される。
イメージ603が例えばビデオカメラのようなイメージソース601により読み出されると、そのイメージをエンコーダ602により符号化されうるデータストリームにバス635上で変換する。用いられる規格のタイプ次第で、エンコーダ602は、MPEG Iエンコーダでも、MPEG IIエンコーダでも、JPEGエンコーダでも、あるいは、圧縮／符号化されたデータを生成するその他のタイプのユニットでもよい。イメージデータが符号化された後、そのデータは、エンコーダ602から直接、プロセッサに結合されてもよいし、コンパクトディスク読み出し専用メモリ（CDROM）604上に書き込まれてもよい。もしCDROM上に書き込まれるのなら、エンコーダ602から記録された圧縮／符号化されたデータをプロセッサ613に結合するためには、ディスクがCDROM読み取り器611中に挿入されなければならない。プロセッサ613は、例えば、インテル80486のような標準的なマイクロプロセッサでもよいし、専用のタイプのプロセッサでもよい。プロセッサ613は、圧縮／符号化されたデータをシステムメモリ614に格納することができる。このデータは、後に読み出されてシステムバス615上に送られる。あるいは、プロセッサ613は、圧縮／符号化されたデータをシステムバス615に直接、結合してもよい。システムバスは、ISAバス、PCIバス、あるいはその他の規格のコンピュータバスでよく、また、ある種の専用バスであってもよい。
システムバス615上の圧縮／符号化されたデータストリームは、オーディオ／ビデオデコーダシステム612に結合される。システムバス615上の圧縮／符号化されたデータは、「Vidsyst」デコーダ311に結合される。Vidsystデコーダ311内で、システムデコーダ622は、圧縮／符号化されたデータを圧縮／符号化されたビデオデータ、圧縮／符号化されたオーディオデータおよびタイミング制御信号へとパーシングする。システムデコーダ622は、オーディオ／ビデオ同期回路620に結合されており、それによって、タイミング制御信号を伝える。システムデコーダ622をオーディオデコーダ627に直接、結合して、圧縮／符号化されたオーディオデータを運ぶようにしてもよいし、オーディオデコーダ627に運ばれる以前に、圧縮／符号化されたオーディオデータのフレームを一時的に格納するFIFO 641を介して、オーディオデコーダ627に間接的に結合してもよい。また、システムデコーダがビデオデコーダ383に直接結合されることによって、圧縮／符号化されたビデオデータを運ぶようにしてもよい。
あるいは、ビデオデコーダ383に運ばれる以前に、圧縮／符号化されたビデオデータのフレームを一時的に格納するFIFO 642を介して、システムデコーダ622をビデオデコーダ383に間接的に結合してもよい。メモリ321の圧縮／符号化されたエリア370内のビデオの符号化されたデータパケットが、読み出され、ビデオデコーダ383内で復号化・伸長されることによって、伸長されたビデオデータ107を生成し、かつ、後にPタイプまたはBタイプのフレームを復号化するのに必要とされる復号化／伸長されたフレーム124を生成する。この伸長されたビデオデータは、バス626上に供給され、スロット371〜373に格納されることによって、後続するフレームの復号化に用いられる。
グラフィックスコントローラ625は、伸長されたビデオデータストリームを受け取り、ビデオディスプレイメモリ624と協同して、通常の手法により、ディジタルディスプレイ605あるいはCRTモニタ606上のイメージをスキャンする。コーデック628は、伸長されたビデオデータストリームを受け取り、テレビジョン607が受け付けることのできる、YUVあるいはRGBのようなデータフォーマットに変換する。コーデック628は、伸長されたビデオデータストリームを、NTSCあるいはPALテレビジョン上に表示するためのNTSCあるいはPALフォーマットに変換する。ただし、未来のフォーマット変換を用いてもよい。オーディオデコーダ627は、圧縮／符号化されたオーディオデータストリームを、アナログ増幅装置（不図示）あるいはドライブスピーカ608に直接運ばれる、伸長されたオーディオアナログ信号に伸長／復号化する。あるいは、オーディオデコーダ627は、圧縮／符号化されたオーディオデータストリームを、バス609を介してディジタル増幅装置（不図示）に運ばれる、伸長されたディジタルオーディオデータストリームに伸長／復号化してもよい。
組み合わされたビデオデータ
図6は、また、グラフィックスデータと符号化されたデータとが、バス615および表示装置605〜607を共有する方法の一例を図示している。この場合、グラフィックスコントローラ625は、バス626上の伸長されたビデオデータストリームと、同一の表示装置モニタ606あるいはディジタルディスプレイ605上に表示される、バス615上のグラフィックスデータと、を組み合わせる内部マルチプレクサ（不図示）を有している。この場合、グラフィックスデータは、バックグラウンドウィンドウおよびディスプレイ上のその他のウィンドウ上に与えられ、伸長されたデータは、同一のディスプレイ上の別のウィンドウ内に表示される。TVモニタは、同一のディスプレイ上で両タイプのデータを組み合わせることができる。
図7Aは、図6に対応する簡略化されたブロック図である。図6および図7Aにおいて、バス615は、そのバスからVidsystデコーダ619へとドライブされる符号化されたデータと、バス615からグラフィックスコントローラ625へとドライブされるグラフィックスデータとの間で、時間多重化される。グラフィックスコントローラは、グラフィックスデータと伸長されたビデオデータとを同一の表示装置上で多重化する内部マルチプレクサを含んでいる。
図7Bは、グラフィックスデータおよび伸長されたビデオデータを同一の表示装置上に表示するための別の選択肢を図示している。この場合、バス615は、符号化されたデータと、グラフィックスデータと、符号化されたデータから生成された伸長されたビデオデータと、を時間多重化する。符号化されたデータは、バス615上に与えられ、双方向ポートを有するVidsystデコーダ719により受け取られる。Vidsystデコーダ719は、符号化されたデータを復号化／伸長することによって、伸長されたデータをバス615へとドライブしなおす。グラフィックスコントローラ725は、ディジタルディスプレイ605、モニタ606あるいはTV 607のそれぞれの上でのほぼ同時の表示のため、内部で多重化されうるように、グラフィックスデータおよび伸長されたデータの両方を受け取る。この場合、グラフィックスコントローラ725は、２つのタイプのデータを適正に多重化するのみならず、グラフィックスデータおよび伸長されたビデオデータを、TV 607上に表示されるNTSC信号あるいはPAL信号へと適正に変換することもできるように、さらなる回路を含んでいる。
図7Cは、外部機器を用いてグラフィックスデータおよび伸長されたビデオデータを同一の表示装置上に表示するための別の選択肢を図示している。図7Aと同様に、バス615は、符号化されたデータおよびグラフィックスデータを時間多重化する。Vidsyst 619は、バス615から符号化されたデータを受け取り、マルチプレクサ701により画素データとしてディジタルディスプレイ605に選択的に結合される、伸長されたビデオデータストリームを生成する。このビデオデータストリームは今度は、ディジタル・アナログ変換器704およびマルチプレクサ702を介し、アナログ信号としてモニタ606に選択的に結合され、NTSC/PALコーデック628およびマルチプレクサ703を介し、NTSC信号あるいはPAL信号としてTV 607に選択的に結合される。グラフィックスコントローラ726は、バス615からグラフィックスデータを受け取り、画素データをディジタルディスプレイ605に供給し、アナロググラフィックス信号をモニタ606に供給し、NTSC/PAL信号をTV 607に供給し、タイミング／制御信号をディスプレイ605〜607に供給し、マルチプレクサ制御信号をマルチプレクサ701〜703に供給する。マルチプレクサ701〜703を用いて、グラフィックスコントローラは、マルチプレクサ制御信号を発生し、Vidsystデコーダからのグラフィックスデータおよび伸長されたビデオデータがディスプレイ605〜607のいずれかに表示されるタイミングを発生する。グラフィックスコントローラ625および725内の内部マルチプレクサは、外部マルチプレクサ701〜703と同様に動作する。
よって、以上には、マルチメディア用の新規なメモリコントローラ回路が記載された。ここで、メモリは、多数の領域にパーティショニングされ、それらの領域のうちの少なくとも１つが、復号化／伸長されたビデオデータのフレームを格納する多数のスロットを有している。データのフレームは、フレーム間の遷移からイメージのテアリングを排除しつつ、MPEG、あるいはその他の規格、要件に準じたアルゴリズムに従ってメモリへと供給され、メモリから読み出される。
ここでは、本発明の好ましい実施の形態およびさまざまな代替の実施の形態が詳細に開示され、説明されたが、本発明の精神および範囲から離れることなく、形態および細部についてさまざまな変更がなされうることは、当業者には自明であろう。
【図１Ａ】
0003759167.tif 000003
【図１Ｂ】
0003759167.tif 000004
【図２Ａ】
0003759167.tif 000005
【図２Ｂ】
0003759167.tif 000006
【図２Ｃ】
0003759167.tif 000007
【図２Ｄ】
0003759167.tif 000008
【図３】
0003759167.tif 000009
【図４】
0003759167.tif 000010
【図５Ａ】
0003759167.tif 000011
【図５Ｂ】
0003759167.tif 000012
【図５Ｃ】
0003759167.tif 000013
【図５Ｄ】
0003759167.tif 000014
【図５Ｅ】
0003759167.tif 000015
【図５Ｆ】
0003759167.tif 000016
【図５Ｇ】
0003759167.tif 000017
【図６】
0003759167.tif 000018
【図７Ａ】
0003759167.tif 000019
【図７Ｂ】
0003759167.tif 000020
【図７Ｃ】
0003759167.tif 000021