(57)【特許請求の範囲】
【請求項１】
圧縮された映像を表すビットストリームのフレームを３：２のプルダウンを用いてデコードしそして表示するための方法において、
上記フレームをデコードして、デコードされた像情報を得ると共に、上記フレームのデコードされた像情報の一部だけをフレームバッファに書き込む段階を備え、この書き込み段階は、上記デコードされた像情報の第１部分を上記フレームバッファの第１セットのメモリ位置に書き込むことを含み、
更に、上記第１セットのメモリ位置に書き込まれた像情報を表示するために読み出す段階を備え、そして
上記フレームバッファに書き込まれていないフレームの残りの部分を再びデコードし、そのデコードされた像情報の第２部分を、既に表示されて将来再表示されることのない像情報を含む上記第１セットのメモリ位置に、上記情報の読出しを開始した後に書き込む段階を備え、
それにより、フレームバッファのサイズを１フレームのデコードされた像情報全てを記憶するに充分なサイズより小さくしたことを特徴とする方法。
【請求項２】
上記第１セットのメモリ位置は、上記フレームバッファのせいぜい１／３である請求項１に記載の方法。
【請求項３】
デコードされた像情報の上記第１部分は、上記フレームの第１フィールドの第１部分であり、上記第１フィールドは、上記フレームのトップフィールド又はボトムフィールドのいずれか一方のフィールドであり、上記第１フィールドは、最初に表示されるべきフィールドではなく、そしてデコードされた像情報の上記第２部分は、上記フレームの上記第１フィールドの第２部分である請求項１に記載の方法。
【請求項４】
上記第１フィールドの上記第１部分は、上記第１フィールドの初期部分であり、そして上記第１フィールドの上記第２部分は、上記第１フィールドの最終部分である請求項３に記載の方法。
【請求項５】
上記フレームの第２フィールドは、第１部分及び第２部分より成り、上記第２フィールドは、上記フレームのトップフィールド又はボトムフィールドの他方のフィールドであり、上記第２フィールドの上記第２部分は、上記第２フィールドの最終部分であり、そして上記第２フィールドの上記第１部分の全部又は一部は、上記第２フィールドの初期部分であり、
第２フィールドの初期部分のデコードされた像情報の一部は、第１フィールドの初期部分の像情報と同時にフレームバッファに書き込まれ、
第１フィールドの像情報は、第２フィールドの最終部分の像情報と同時にフレームバッファに書き込まれず、
第２フィールドの最終部分の像情報は、第２フィールドの初期部分の像情報の直後にフレームバッファに書き込まれ、そして
第２フィールドの像情報は、第１フィールドの最終部分の像情報と同時にフレームバッファに書き込まれない請求項４に記載の方法。
【請求項６】
上記フレームバッファは、多数の同じサイズのメモリ割り当て単位に分割され、各々のメモリ割り当て単位は隣接しており、上記第１セットのメモリ位置は、１組の上記メモリ割り当て単位より成り、そして１フレームのデコードされた像情報全てを保持するに充分なメモリ割り当て単位のサイズの最小倍数は、メモリ割り当て単位のサイズの偶数倍である請求項１に記載の方法。
【請求項７】
メモリ割り当て単位のサイズは、マクロブロックの１行に対応する像情報を保持するのに必要なメモリのサイズに等しいか又はその倍数である請求項６に記載の方法。
【請求項８】
デコードされた像情報の上記第１部分は、上記フレームの第１フィールドの第１部分であり、上記第１フィールドは、上記フレームのトップフィールド又はボトムフィールドのいずれか一方のフィールドであり、上記第１フィールドは、最初に表示されるべきフィールドではなく、そしてデコードされた像情報の上記第２部分は、上記フレームの上記第１フィールドの第２部分である請求項６に記載の方法。
【請求項９】
上記第１フィールドの上記第１部分は、上記第１フィールドの初期部分であり、そして上記第１フィールドの上記第２部分は、上記第１フィールドの最終部分である請求項８に記載の方法。
【請求項１０】
上記フレームの第２フィールドは、第１部分及び第２部分より成り、上記第２フィールドは、上記フレームのトップフィールド又はボトムフィールドの他方のフィールドであり、上記第２フィールドの上記第２部分は、上記第２フィールドの最終部分であり、そして上記第２フィールドの上記第１部分の全部又は一部は、上記第２フィールドの初期部分であり、
第２フィールドの初期部分のデコードされた像情報の一部は、第１フィールドの初期部分のデコードされた像情報と同時にフレームバッファに書き込まれ、
第１フィールドの像情報は、第２フィールドの最終部分の像情報と同時にフレームバッファにに書き込まれず、
第２フィールドの最終部分の像情報は、第２フィールドの初期部分の像情報の直後にフレームバッファに書き込まれ、そして
第２フィールドの像情報は、第１フィールドの、最終部分の像情報と同時にフレームバッファに書き込まれない請求項９に記載の方法。
【請求項１１】
２つのフィールドの像情報が同時に書き込まれるときは、メモリ割り当て単位の連続する対に同時に書き込まれ、各対のメモリ割り当て単位は、既にそれらの手前の内容を最後に表示し始めている２つの最も最近表示されたメモリ割り当て単位であり、そして
１つのフィールドの像情報が別のフィールドの像情報と同時に書き込まれないときは、連続するメモリ割り当て単位に書き込まれ、各メモリ割り当て単位は、既にその手前の内容を最後に表示し始めている最も最近表示されたメモリ割り当て単位である請求項１０に記載の方法。
【請求項１２】
書き込まれるべきメモリ割り当て単位は、現在デコードされているフレームのフィールドの区分と、現在デコードされているフレームの区分に対応し、デコードされるべき直前のフレームにおいてまだデコードされていない区分とを保持するのにどのメモリ割り当て単位を使用したかに関する情報から、２つのメモリ割り当て単位の表示時間を比較せずに決定される請求項１１に記載の方法。
【請求項１３】
圧縮された映像を表すビットストリームのフレームを３：２のプルダウンを用いてデコードしそして表示するための方法において、
上記フレームをデコードして、デコードされた像情報を得ると共に、上記フレームのデコードされた像情報の一部だけをフレームバッファに書き込む段階を備え、この書き込み段階は、上記デコードされた像情報の第１部分を上記フレームバッファの第１セットのメモリ位置に書き込むことを含み、
更に、上記第１セットのメモリ位置に書き込まれた像情報を表示するために読み出す段階を備え、そして
上記フレームバッファに書き込まれていないフレームの残りの部分を再びデコードし、そのデコードされた像情報の第２部分を、既に表示されて将来再表示されることのない像情報を含む上記第１セットのメモリ位置に、上記情報の読出しを開始した後に書き込む段階を備え、
それにより、フレームバッファのサイズを１フレームのデコードされた像情報全てを記憶するに充分なサイズより小さくし、
上記第１セットのメモリ位置は、上記フレームバッファのせいぜい１／３であり、
上記フレームバッファは、多数の等しいサイズのメモリ割り当て単位に分割され、各メモリ割り当て単位は隣接し、上記第１セットのメモリ位置は、１組の上記メモリ割り当て単位より成り、そして１フレームのデコードされた像情報全てを保持するに充分なメモリ割り当て単位のサイズの最小倍数は、メモリ割り当て単位のサイズの偶数倍であり、そして
上記デコード動作は、両方向の予想を含むことを特徴とする方法。
【請求項１４】
上記フレームバッファは、３つのメモリ割り当て単位より成り、そして上記第１セットのメモリ位置は、１つのメモリ割り当て単位より成る請求項１３に記載の方法。
【請求項１５】
上記フレームバッファは、９つのメモリ割り当て単位より成り、そして上記第１セットのメモリ位置は、３つのメモリ割り当て単位より成る請求項１３に記載の方法。
【請求項１６】
上記フレームバッファは、５つのメモリ割り当て単位より成り、そして上記第１セットのメモリ位置は、１つのメモリ割り当て単位より成る請求項１３に記載の方法。
【請求項１７】
圧縮された映像を表すビットストリームのフレームを３：２のプルダウンを用いてデコードしそして表示するシステムにおいて、
デコーダと、
上記デコーダに接続されて、「トップフィールド第１」信号及び「繰り返し第１フィールド」信号に応答するメモリコントローラと、
上記メモリコントローラに接続された表示サブシステムと、
上記メモリコントローラに接続されたメモリであって、１フレームのデコードされた像情報全てを記憶するのに充分なサイズより小さいサイズのフレームバッファを含むメモリとを備え、
上記デコーダは、フレームの一部を２回デコードし、
上記メモリコントローラは、
上記フレームをデコードして、デコードされた像情報を得ると共に、上記フレームのデコードされた像情報の一部だけをフレームバッファに書き込む段階を備え、この書き込み段階は、上記デコードされた像情報の第１部分を上記フレームバッファの第１セットのメモリ位置に書き込むことを含み、
更に、上記第１セットのメモリ位置に書き込まれた像情報を表示するために読み出す段階を備え、そして
上記フレームバッファに書き込まれていないフレームの残りの部分を再びデコードし、そのデコードされた像情報の第２部分を、既に表示されて将来再表示されることのない像情報を含む上記第１セットのメモリ位置に、上記情報の読出しを開始した後に書き込む、
という段階を実行するように、デコーダ、表示サブシステム及びメモリを制御し、
それにより、フレームバッファのサイズを１フレームのデコードされた像情報全てを記憶するに充分なサイズより小さくしたことを特徴とするシステム。
【請求項１８】
上記フレームバッファのサイズは、１フレームのデコードされた像情報全てを記憶するのに充分なサイズの少なくとも３／４である請求項１７に記載のシステム。
【請求項１９】
上記デコーダは、２回デコードされるべきフレームの部分の開始点についての上記ビットストリーム内の位置を記憶するレジスタを含み、
上記デコーダは、上記メモリコントローラにより発生されるビットストリーム記憶位置信号に応答し、そして
上記デコーダは、上記メモリコントローラにより発生される第２デコード開始信号に応答する請求項１７に記載のシステム。
【請求項２０】
上記「トップフィールド第１」信号は上記デコーダにより発生され、そして上記「繰り返し第１フィールド」信号は上記デコーダにより発生される請求項１７に記載のシステム。
【請求項２１】
上記「トップフィールド第１」信号は、上記メモリコントローラによりクロックされるカウンタにより発生され、そして上記「繰り返し第１フィールド」信号は上記カウンタにより発生される請求項１７に記載のシステム。
【請求項２２】
上記メモリコントローラに接続され、上記ビットストリームのマクロブロックの行の始めにスライスヘッダを挿入する前置プロセッサを更に備えた請求項２１に記載のシステム。
【請求項２３】
上記メモリコントローラは、データポート及びアドレスポートを有するレジスタファイルと、該レジスタファイルのデータボート及び上記メモリのアドレスポートに接続されたメモリ割り当て単位デコードアドレスレジスタと、上記レジスタファイルのデータポート及び上記メモリのアドレスポートに接続されたメモリ割り当て単位表示アドレスレジスタとを備えている請求項１７に記載のシステム。
【請求項２４】
上記フレームバッファは、複数のメモリ割り当て単位より成り、そして上記レジスタファイルは、１フレームのデコードされた像情報全てを記憶するに必要なメモリ割り当て単位の数に等しい数のアドレスを有する請求項２３に記載のシステム。
【発明の詳細な説明】
発明の分野
本発明は、一般に、３：２のプルダウンを用いた像の圧縮解除に係り、より詳細には、３：２のプルダウンを用いてＢ画像をデコードしそして表示することに係る。
先行技術の説明
デジタル処理、記憶及び通信システムのマルチメディア用途は、圧縮映像を表すための規格の発展から明らかなように、急速に進歩している。
１９９２年１１月に認定されたＭＰＥＧ−１（ムービングピクチャーエキスパートグループ１）国際規格（ＩＳＯ／ＩＥＣ  １１１７２）は、主として、約１．５Ｍビット／ｓ（メガビット／秒）の連続転送レートに対して開発されたものであるが、大巾な融通性を有している。従って、画像レートが約２４ないし３０連続（非飛び越し）画像／秒（画像／ｓ）のときは、水平約３５０ペル（画素−像データのサンプル）ｘ垂直約２５０ペルの空間解像度において良好な結果をもたらす。
１９９４年３月に採用されたＭＰＥＧ−２国際規格原案（ＩＳＯ／ＩＥＣ  １３８１８−２）は、改善された能力を規定するもので、制限のあるパラメータをもつメインレベル（ＭＰ＠ＭＬ）シンタックスサブセットにおけるメインプロファイルが、デジタルＴＶ用としてインターナショナル・レディオ・コンサルテーティブ・コミッティ（ＣＣＩＲ）６０１解像度で規定されており、即ちＮＴＳＣ（ナショナル・テレビジョン・システム・コミッテイ）の場合には７２０ｘ４８０＠３０フレーム／ｓで、そしてＰＡＬ／ＳＥＣＡＭ（フェーズ・オルターネーション・ライン／シーケンシャル・カラー・ウイズ・メモリ）の場合には７２０ｘ５７６＠２５フレーム／ｓでインターレースされるというものである。デジタルテレビジョンパラメータの詳細は、ＣＣＩＲ推奨勧告６０１−２「スタジオ用デジタルテレビジョンのエンコードパラメータ（Encoding Parameters of Digital Television for Studios）」（１９８２年、１９８６年、１９９０年）に見ることができる。
ＴＶスクリーンに表示される像は、一連のフレームである。各フレームは、全て奇数の線より成る上部フィールドと、全て偶数の線より成る下部フィールドの２つのフィールドに分割される。ここで、「上部フィールド」及び「下部フィールド」は、それぞれ「トップフィールド」及び「ボトムフィールド」のことを指すが、以下、「上部フィールド」及び「下部フィールド」という用語を使用する。これら２つのフィールドは、フレーム周期の半分に等しい間隔でインターレースして表示される。ＮＴＳＣでは、フレーム周期が約３０Ｈｚであり、ＰＡＬ／ＳＥＣＡＭでは、２５Ｈｚである。
３０画像／ｓで連続する映画のようなソース資料は、各画像（フレーム）を、インターレースして表示される２つのフィールドに分離することによりＮＴＳＣに変換することができる。
多くの映画は、２４画像／ｓで連続する。このような映画は、３：２のプルダウンを用いて次のようにＮＴＳＣに変換される。各画像（フレーム）は、２つのフィールドに分離される。画像の半分は２つのフィールドとして表示され、そして他の半分（１つおきの画像）は、上部及び下部フィールドが常に交番する状態で３つのフィールドとして表示される。例えば、映画が、画像Ｐ０、Ｐ１、Ｐ２及びＰ３で構成される場合には、各画像が上部及び下部フィールドＴ０、Ｂ０、Ｔ１、Ｂ１、Ｔ２、Ｂ２、Ｔ３及びＢ３に分離される。画像Ｐ０及びＰ２は２つのフィールドとして表示され、そして画像Ｐ１及びＰ３は、３つのフィールドとして、Ｔ０、Ｂ０、Ｔ１、Ｂ１、Ｔ１、Ｂ２、Ｔ２、Ｂ３、Ｔ３、Ｂ３のように表示される。下部フィールドは、画像Ｐ２の上部フィールドの前に表示されることに注意されたい。この手順を繰り返すと、毎秒２４枚の画像が表示され、即ち１２枚の画像は２つのフィールドとして表示され、そして１２枚の画像は３つのフィールドとして表示され、全部で６０フィールド／秒（フィールド／ｓ）となり、これは、ＮＴＳＣフィールドレートである。
いずれの画像も２つ又は３つのフィールドとして表示できる一般化されたプルダウンを用いると、表示フレームレートと画像レートとの比は、１と１．５との間の任意の数となる。この一般化されたプルダウンを用いると、２０ないし３０画像／ｓの連続映画は、ＮＴＳＣを用いて表示することができ、そして１６．６７−２５画像／ｓの連続映画は、ＰＡＬ／ＳＥＣＡＭを用いて表示することができる。
このプルダウン特徴は、ＭＰＥＧデコーダにも使用される。ＭＰＥＧ−１シーケンス及びＭＰＥＧ−２の連続シーケンスは、これを用いて、ＮＴＳＣ及びＰＡＬ／ＳＥＣＡＭディスプレイに、連続的にエンコードされた（ビット流に変換された）映画を表示する。ここで、「ビット流」は、「ビットストリーム」のことを指すが、以下、「ビット流」という用語を使用する。ＭＰＥＧ規格は、ビット流シンタックスを定義し、柔軟なデコーダがこのビット流をいかに処理して音声及び映像情報を抽出するか規定している。映像データの表示は、ＭＰＥＧ規格の範囲を越えるものであるが、テレビ受像機又はインターレース式モニタに表示する実際的なＭＰＥＧ用途では、プルダウン特徴を具現化するディスプレイユニットが要望される。
ＭＰＥＧ−１ビット流は、連続走査像を表すもので、インターレース又は３：２のプルダウンを特定しない。プルダウン特徴は、デコーダ及びディスプレイユニットによって自律的に実行されねばならない。ＭＰＥＧ−２ビット流は、連続的及びインターレース式の両方のシーケンスを表すことができる。連続フレームは、３：２のプルダウンが行われる仕方を指令するために、ｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔ及びｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄの２つのフラグを備えている。
ＭＰＥＧ−１及びＭＰＥＧ−２の両方は、各画像を、マクロブロックと称する１６ｘ１６の方形ペルブロックに分割し、これは、周波数変換、量子化及びエントロピーコード化の組合せを用いて１つづつエンコードされる。動画像圧縮及び予想コード化も、必要な高い圧縮を得るためにしばしば使用される。動画像圧縮は、過去の画像と、表示シーケンスにおいてその適当な位置の前にエンコードされた将来の画像との両方を用いて行われる。従って、デコーダは、２つの全画像を記憶できねばならない。デコードの際に両方向予想（即ち順方向及び逆方向の両方の予想）を必要とする画像は、Ｂ画像と称する。ここで、「Ｂ画像」は、「Ｂピクチャ」のことを指すが、以下、「Ｂ画像」という用語を使用する。このＢ画像は、他の画像を予想するのには使用されない。
データの崩壊に対してある程度の余裕を与えるために、各画像のマクロブロックは、一連の次々のマクロブロックであるスライスにグループ分けされる。各スライスは、その手前のスライスの情報に関わりなくデコードされる。ＭＰＥＧ−１は、マクロブロックの分布をスライスに制限するものではない。ＭＰＥＧ−２は、画像のマクロブロックの各行の始めから新たなスライスが開始されることを要求する。
上記したＭＰＥＧ−２のメインレベルサブセットにおけるメインプロファイルは、ビット流をデコードするのに１６メガビット（Ｍビット）のメモリで充分であるように定義されている。最近まで、メモリの編成は、次の通りである。
−  順方向予想画像に対し、７２０ｘ５７６ｘ８ｘ１．５＝４８６０Ｋビット
−  逆方向予想画像に対し、７２０ｘ５７６ｘ８ｘ１．５＝４８６０Ｋビット
−  デコードされそして表示されるフレームに対し、７２０ｘ５７６ｘ８ｘ１．５＝４８６０Ｋビット
−  映像バッファとして１７９２Ｋビット
−  システムバッファとして１２Ｋビット
−  音声バッファとして４Ｋビット
これらの全ての数値を加算すると、丁度１６Ｍビットとなる。全く余裕はない。
デマルチプレクス及びパケットオーバーヘッドのためのシステム搬送バッファとして少なくとも１２４Ｋビットの付加的なバッファが必要とされることが明らかである。３：２のプルダウン特徴がサポートされない場合には、Ｂ画像をメモリに完全に記憶せずに、それをいかにデコード及び表示するかはこれまでに知られており、従って、付加的な１２４Ｋビットのバッファを受け入れることができる。ＮＴＳＣの場合には、フレーム当たり４８０本の線だけであり、従って、Ｂ画像がデコードされそして表示されるときにそれを完全に記憶することにより、３：２のプルダウンをサポートしながら、１２４Ｋビットのメモリを使用することができる。メモリのサイズは、ＰＡＬ／ＳＥＣＡＭに対し、３：２のプルダウン特徴がサポートされる場合に問題となる。この重要な特徴は、全Ｂ画像を記憶しながらもＰＡＬ／ＳＥＣＡＭに対して実施するには非常に経費がかかることがこれまでに知られている。この経費は、あるサイズでは標準的なメモリしか入手できず、メモリが１６Ｍビットを越えて増加すると、メモリコントローラの複雑さ及び消費電力も増加することによるものである。
発明の要旨
そこで、本発明の目的は、３：２のプルダウンを用いて画像をデコードし表示するのに必要なフレームバッファを、１つの全フレームに対して像情報を保持するのに必要なサイズ以下に減少することである。
本発明の付加的な特徴及び効果は、以下に詳細に説明し、その一部分は、以下の説明から明らかとなろうし、又本発明の実施により学習することもできよう。本発明の目的及び効果は、請求の範囲に特に指摘した手段及びその組合せにより実現できそして得ることができよう。
本発明は、圧縮された映像を表すビット流をデコードしそして表示するシステムに向けられる。このシステムは、デコーダと、該デコーダに接続されたメモリマネージャーと、該メモリマネージャーに接続されたディスプレイサブシステムと、該メモリマネージャーに接続されたメモリとを含む。メモリは、全フレームのデコードされた像情報を記憶するのに充分なサイズより小さいサイズのフレームバッファを含む。メモリマネージャーは、「上部フィールド第１（top field first）」信号及び「繰り返し第１フィールド（repeat first field）」信号に応答する。
本発明の方法は、３：２のプルダウンを用いて表示されるべきフレームをデコードし、そしてそのフレームのデコードされた像情報の一部分をフレームバッファに書き込むことを含む。フレームバッファのサイズは、全フレームのデコードされた像情報を記憶するのに充分なものではない。デコードされた像情報の第１部分は、フレームバッファの第１セットのメモリ位置に書き込まれる。全フレームをデコードした後に、フレームの一部分が２回目にデコードされる。少なくとも１回は表示された像情報を含む第１セットから、デコードされた像情報の第２部分がメモリ位置に書き込まれる。
【図面の簡単な説明】
以下、添付図面を参照し、本発明の好ましい実施形態を詳細に説明する。
図１は、３：２のプルダウンを使用してビット流をデコードしそして表示する通常の方法を示すタイミング図である。
図２、３、４Ａ及び４Ｂは、本発明によりビット流をデコードしそして表示する方法を示すタイミング図である。
図５は、本発明によるデコード及び表示システムのブロック回路図である。
図６は、本発明によるデコード及び表示システムの別の実施形態を示すブロック回路図である。
図７は、図５のメモリコントローラ２２の細部を示すブロック回路図である。
好ましい実施形態の詳細な説明
本発明は、幾つかの好ましい実施形態について以下に説明する。これらの好ましい実施形態は、３：２のプルダウンを用いて画像をデコードする装置及び方法である。従来知られているデコード方法を図１を参照して説明する。明らかなように、この方法では、１つの全フレームの像情報を保持するのに充分なサイズのフレームバッファを使用することが必要である。
一連のＢ画像に対して、デコード及び表示の両方に同じメモリが使用される。予想に使用される画像は、将来の画像を予想するのに必要であるためにオーバーライトすることができない。図１において、ｖｄｅｆｌは、ディスプレイの垂直偏向信号である。上昇する線Ａは、表示の進行（通常は上から下へ）を示し、そして下降する線Ｂは、垂直帰線周期を示す。太線Ｃは、表示のアクティブな部分を示し、そして非常に太いセグメントＤは、マクロブロックの最初と最後の行を示す（画像はフレームがエンコードされそしてフィールドが表示されるので各フィールドに８本の表示線がある）。
図１は、一連の３つのＢ画像を示す。フレーム１は、３つのフィールドについて表示され、上部フィールドが繰り返される。デコード及び表示に同じメモリが使用されるので、フィールドが表示される前にそれにオーバーライトしたり又はフィールドがデコードされる前にそれを表示したりするのを回避するために幾つかの制約が課せられる。
−  上部フィールド０（上部０）のマクロブロックの最後の行が表示される前にフレーム０をデコードしなければならない。上部フィールド０のマクロブロックの最後の行は、時間ｔ5とｔ6との間に表示される。従って、フレーム０は、ｔ5の前にデコードされる。
−  下部フィールド０（下部０）のマクロブロックの最初の行が表示された後にのみフレーム１をデコードしなければならない。下部フィールド０のマクロブロックの最初の行は、時間ｔ7とｔ8との間に表示される。従って、フレーム１は、ｔ8の後にデコードされる。
−  上部フィールド１（上部１）のマクロブロックの最後の行が表示される前にフレーム１をデコードしなければならない。上部フィールド１のマクロブロックの最後の行は、時間ｔ13とｔ14との間に表示される。従って、フレーム１は、ｔ13の前にデコードされる。
−  上部フィールド１のマクロブロックの最初の行が２回目に表示された後にのみフレーム２をデコードしなければならない。上部フィールド１のマクロブロックの最初の行は、時間ｔ19とｔ20との間に２回目の表示がなされる。従って、フレーム１は、ｔ20の後にデコードされる。
−  下部フィールド２（下部２）のマクロブロックの最後の行が表示される前にフレーム２をデコードしなければならない。下部フィールド２のマクロブロックの最後の行は、時間ｔ25とｔ26との間に表示される。従って、フレーム２は、ｔ25の前にデコードされる。
これらの制約のために、デコーダは、２つのフィールドの表示周期（ＮＴＳＣの場合は４８０本の線、そしてＰＡＬ／ＳＥＣＡＭの場合は５７６本の線）に、１つの垂直帰線周期（ＮＴＳＣの場合は２２．５本の線、そしてＰＡＬ／ＳＥＣＡＭの場合は２４．５本の線）を加えて、１６本の線を表示するに必要な時間を引いた時間内に、いずれのフレームもデコードできねばならない。デコーダは、ＮＴＳＣの場合、フレーム周期の（４８０線＋２２．５線−１６線）／５２５線＝９２．６７％でフレームをデコードできねばならず、そしてＰＡＬ／ＳＥＣＡＭの場合、（５７６線＋２４．５線−１６線）／６２５線＝９３．５２％でフレームをデコードできねばならない。
図１において、例えば、ｔ5とｔ8との間から明らかなように、デコーダは、同じフレームのフィールド間に生じる垂直帰線消去周期中、及び上部フィールド１（上部１）が繰り返される間に停止される。本発明は、これら周期の幾つかを使用してマクロブロックの行の幾つかを２回デコードすることにより、メモリをセーブする。この付加的なデコード動作にアイドル周期が使用される程度まで、本発明は、処理能力の増加又はより広いメモリ帯域巾を必要としない。支払うべき費用は、メモリコントローラの複雑さの僅かな増加だけである。この同じ方法を用いて、ＮＴＳＣの所要メモリを減少することができる。節約されたメモリを用いて、オフスクリーンメモリ又はグラフィックオーバーレイのような付加的な機能を与えることができる。
画像がＲ行のマクロブロックを有しそしてマクロブロックのｒ行を節約すべき場合には、２ｒ行を２回デコードする必要がある。デコーダの速度を著しく増加せずに、マクロブロックのＲ／２行までを２回デコードすることができる。それ故、ｒはＲ／４以下であり、即ちフレームメモリの２５％までを節約することができる。ＰＡＬ／ＳＥＣＡＭ（Ｒ＝３６）の場合には、マクロブロックの９行までを節約することができ、そしてＮＴＳＣ（Ｒ＝３０）の場合には、マクロブロックの７行までを節約することができる。テーブル１は、ＰＡＬ／ＳＥＣＡＭのメモリ節約能力を示し、そしてテーブル２は、ＮＴＳＣのメモリ節約能力を示している。第３の欄は、メモリ割り当て単位（ＭＡＵ）サイズｓをマクロブロックの行で示す。ＭＡＵサイズｓは、ｒの約数であることが必要であり、Ｒ／ｓは、偶数でなければならない。簡単さと融通性との間には兼ね合いがある。ｓが大きいほど、メモリコントローラは簡単になるが、ｓが小さいほど、操作の融通性は大きくなる。
0003943129.tif 000002
0003943129.tif 000003
上記の条件を受ける任意数Ｒ、ｒ及びｓに作用する一般的なアルゴリズムは、次の通りである。
３：２のプルダウンなしにＢ画像をデコードするときは、フレームの第１フィールドを表示すべきところより少なくとも１フィールド周期だけ前に開始するのが好ましい。２つのフィールドが同時にデコードされる。スクリーンの同じ部分に表示される２つのフィールドの区分を対応区分と称する。このような区分は、最も最近表示されたメモリ割り当て単位（少なくともマクロブロックの第１行）であって、既に表示された像情報が将来再表示されることのないメモリ割り当て単位に、このようなＭＡＵが使用できるようになったときに、同時に書き込まれる。フレームの第２の半分をデコードする間に、表示されるべき第１フィールドの第１の半分に対する像情報を保持するのに使用された幾つかの又は全てのＭＡＵが再使用される。
３：２のプルダウンを使用してＢ画像をデコードするときは、フレームの第１フィールドを表示すべきところより少なくとも１フィールド周期だけ前に開始するのが好ましい。２つのフィールドが同時にデコードされる。
フレームの第１の（Ｒ−２ｒ）／Ｒについては、２つのフィールドの対応区分は、最も最近表示されたメモリ割り当て単位（少なくともマクロブロックの第１行）であって、既に表示された像情報が将来再表示されることのないメモリ割り当て単位に、このようなＭＡＵが使用できるようになったときに、同時に書き込まれる。
フレームの第１の（Ｒ−２ｒ）／Ｒをデコードした後に、フレームの残り部分がデコードされるが、表示されるべき第１フィールドの像情報のみが書き込まれる。第２フィールドの対応区分の像情報は破棄される。第１フィールドの像情報は、最も最近表示されたメモリ割り当て単位（少なくともマクロブロックの第１行）であって、既に表示された像情報が将来再表示されることのないメモリ割り当て単位に、このようなＭＡＵが使用できるようになったときに書き込まれる。次いで、フレームの最後の２ｒ／Ｒが再びデコードされるが、表示されるべき第２フィールドの像情報のみが書き込まれる。第１フィールドの対応区分の像情報は破棄される。第２フィールドの像情報は、最も最近表示されたメモリ割り当て単位（少なくともマクロブロックの第１行）であって、既に表示された像情報が将来再表示されることのないメモリ割り当て単位に、このようなＭＡＵが使用できるようになったときに書き込まれる。これらのＭＡＵは、表示されるべき第２フィールドの第１の半分に対する像情報を保持するのに使用される最初のＭＡＵである。
上記方法は、表示されるべき情報が、処理能力及びメモリ帯域巾を著しく増加せずに時間内にデコードされる（マクロブロックの最後の行が表示され始める前にデコードが終了する）よう確保する。
２つのＭＡＵの表示時間を比較せずに、上記一般的なアルゴリズムを実施することができる。このためには、現在デコードされているフレームのフィールドの区分と、現在デコードされているフレームの区分に対応していて、デコードされるべき直前のフレーム内でまだデコードされていない区分とを保持するためにどんなＭＡＵが使用されたかに関する情報を維持することが必要となる。
デコード及び表示にメモリを割り当てるための上記アルゴリズムを書くためには、幾つかの表示法が必要になる。
Ｒ＝マクロブロックの行での画像高さ
ｒ＝マクロブロックの行でのメモリ節約量
ｓ＝マクロブロックの行でのＭＡＵサイズ
ｎ＝フレーム番号（現在デコードされているフレーム）
（ｎ−１）＝手前のデコードされたフレーム
Ｆ＝フィールド−Ｔ（頂部）又はＢ（底部）
！Ｆ＝反対のフィールド（！Ｔ＝＝Ｂそして１Ｂ＝＝ｔ）
Ｆｎ＝フレーム「ｎ」のフィールド「Ｆ」
ｉ＝フィールドの区分番号ｉ≦Ｒ／（２ｓ）
Ｆｎｉ＝フレーム「ｎ」、区分「ｉ」のフィールド「Ｆ」
Ｍ＝メモリ割り当て単位Ｍ≦（Ｒ−ｒ）／ｓ
Ｍ（Ｆｎｉ）＝「Ｆｎｉ」が記憶される「Ｍ」
Ｄ０、Ｄ１＝一時的変数
ｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔ＝ＭＰＥＧ−２映像ビット流からの又は内部で発生されたフラグ
ｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄ＝ＭＰＥＧ−２映像ビット流からの又は内部で発生されたフラグ
Ｃ状の擬似コードで書き込まれるＢフレームをデコードするときに適用されるべき一般的ルールは、次の通りである。
0003943129.tif 000004
0003943129.tif 000005
Ｒ＝３６、ｒ＝９及びｓ＝９の場合の特定の解決策を、図２及びテーブル３を参照して説明する。３：２のプルダウンを用いてＢフレームをデコードしそして表示するのに使用されるメモリは、各々マクロブロックの９行より成る３つのメモリ割り当て単位Ｍ０、Ｍ１及びＭ２に論理的に分割される。
図２は、一連の３つのＢ画像を示す。フレーム１は、３つのフィールドに対して表示され、上部フィールドが繰り返される。
フレーム０の第１フィールドは、ｔ4とｔ10との間に表示される。フレーム０のデコード動作は、手前のフィールドが時間ｔ0に表示され始めた８本の表示線巾の後に時間ｔ1に開始される。時間ｔ1において、表示されているフィールドの第２の半分を保持する１つのＭＡＵのみは使用できない。従って、Ｍ０及びＭ１の２つのＭＡＵが使用できる。上部フィールドの第１区分Ｔ００はＭ０に書き込まれ、そして下部フィールドの第１区分Ｂ００はＭ１に書き込まれる。これらＭＡＵのうち、表示されるべき第１のものはＭ０であり、時間ｔ4からｔ7までである。従って、フレーム０の第１区分のデコード動作は、遅くても、ｔ7より８本の表示線だけ前のｔ6において終了しなければならない。
このフレームは３：２のプルダウンを用いて表示されないので、デコーダは、フレームの第２区分をデコードする前に、２つのＭＡＵが使用できるようになるまで待機する。Ｍ２は、時間ｔ1とｔ2との間に使用できるようになり、そして次に使用できるようになるＭＡＵは、ｔ4において表示され始めた８本の表示線の後のｔ5においてＭ０となる。上部フィールドの第２区分Ｔ０１はＭ２に書き込まれ、そして下部フィールドの第２区分Ｂ０１はＭ０に書き込まれる。これらＭＡＵのうち、表示されるべき第１のものは、Ｍ２であり、時間ｔ7からｔ10までである。従って、フレーム０の第２区分のデコード動作は、遅くとも、ｔ10より８本の表示線だけ前のｔ9に終了しなければならない。
次のフレームであるフレーム１は、３：２のプルダウンを用いて表示される。フレーム１の第１フィールドは、ｔ18とｔ24との間に表示される。デコーダは、２つのＭＡＵが使用できるようになると、デコードを開始する。Ｍ２は、ｔ7とｔ10との間に表示され、従って、ｔ7より８本の表示線だけ後のｔ8に使用できるようになる。次に使用できるようになるＭＡＵであるＭ１は、ｔ11とｔ14との間に表示され、従って、ｔ11より８本の表示線だけ後のｔ12に使用できるようになる。従って、フレーム１のデコード動作は、手前の下部フィールド０がｔ11において表示され始めた８本の表示線だけ後の時間ｔ12に開始される。上部フィールドの第１区分Ｔ１０は、Ｍ２に書き込まれ、そして下部フィールドの第１区分Ｂ１０は、Ｍ１に書き込まれる。これらＭＡＵのうち、表示されるべき第１のものはＭ２であり、ｔ18からｔ21までである。従って、フレーム１の第１区分のデコード動作は、遅くとも、ｔ21より８本の表示線だけ前のｔ20において終了しなければならない。
この点において、フレームの第１の（Ｒ−２ｒ）／Ｒ（即ち１／２）がデコードされる。前記したように、フレームの残りがデコードされるが、ＭＡＵが使用できるようになったときに、表示されるべき第１フィールドに対する像情報のみが書き込まれる。次に使用できるようになるＭＡＵは、ｔ14に表示され始めた８本の表示線の後のｔ15におけるＭ０である。フレームの第２区分がデコードされそして上部フィールドの第２区分Ｔ１１がＭ０に書き込まれる。この第２区分はｔ21とｔ24との間に表示され、従って、ｔ24より８本の表示線だけ前のｔ23においてデコード動作が終了しなければならない。
この点において、全フレーム１が１回デコードされる。次いで、前記したように、フレームの最後の２ｒ／Ｒ（即ち１／２）が再びデコードされるが、ＭＡＵが使用できるようになったときに、表示されるべき第２フィールドの像情報が書き込まれる。Ｍ２及びＭ０は、上部フィールドの繰り返しのためにセーブしなければならない。従って、最初に使用できるようになるＭＡＵは、ｔ25に表示され始めた８本の表示線の後のｔ26におけるＭ１である。フレームの第２区分が再びデコードされ、そして下部フィールドの第２区分Ｂ１１がＭ１に書き込まれる。この第２区分は、ｔ27とｔ29との間に表示され、従って、ｔ29より８本の表示線だけ前のｔ28においてデコード動作を終了しなければならない。
表示されるべき次のフレームであるフレーム２は、２つのＭＡＵが使用できるようになるや否やデコードされ始める。Ｍ１は、ｔ27とｔ28との間に使用できるようになる。次に使用できるようになるＭＡＵは、ｔ30とｔ33との間に表示され始めた８本の表示線の後のｔ31におけるＭ２である。上部フィールドの第１区分Ｔ２０は、Ｍ２に書き込まれ、そして下部フィールドの第１区分Ｂ２０は、Ｍ１に書き込まれる。これらＭＡＵのうち、最初に表示されるべきは、Ｍ１であり、ｔ37からｔ40までである。従って、フレーム２の第１区分のデコード動作は、遅くとも、ｔ40より８本の表示線だけ前のｔ39に終了しなければならない。
このフレームは３：２のプルダウンを用いて表示されないので、デコーダは、フレームの第２区分をデコードする前に、２つのＭＡＵが使用できるようになるまで待機する。ｔ33とｔ36との間に表示され始めた８本の表示線の後のｔ34に、Ｍ０が使用できるようになり、そして次に使用できるようになるＭＡＵは、ｔ37に表示され始めた８本の表示線の後のｔ38におけるＭ１である。上部フィールドの第２区分Ｔ２１は、Ｍ１に書き込まれ、そして下部フィールドの第２区分Ｂ２１は、Ｍ０に書き込まれる。これらのＭＡＵのうち、最初に表示されるべきは、Ｍ０であり、ｔ40からｔ43までである。従って、フレーム２の第２区分のデコード動作は、遅くとも、ｔ43より８本の表示線だけ前のｔ42に終了しなければならない。
時々、同じＭＡＵがデコード及び表示の両方に使用され、それ故、ＭＡＵデータが表示される前にそれにオーバーライトしたりＭＡＵデータがデコードされる前にそれを表示したりすることを回避するために制約が適用される。これら制約により、デコーダは、１つのフィールドの表示周期から、１６本の線を表示するのに必要な時間を差し引いた時間に、フレームの半分をデコードする必要がある（図２のｔ26とｔ28との間のＢ１１のデコード動作を参照されたい）。あるフィールドは、それ以上にデコードすることができるが、他のフィールドについてはデコーダが計算帯域巾を必要とする。ＮＴＳＣの場合は、デコーダは、フレーム周期の２ｘ（２４０線−１６線）／５２５線＝８５−３３％にフレームをデコードする必要があり、そしてＰＡＬ／ＳＥＣＡＭの場合には、フレーム周期の２ｘ（２８８線−１６線）／６２５線＝８７．０４％にフレームをデコードする必要がある。この解決策（ｒ＝９；ｓ＝９）は、あるデコード動作に垂直帰線周期を使用できないので、既に知られている解決策に比して若干高速のデコーダを必要とする。
テーブル３は、ｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄ及びｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔの次の組合せで５つのフレームのＭＡＵ割り当てを示す。
−  repeat＿first＿field=0、top＿field＿first=1
−  repeat＿first＿field=0、top＿field＿first=1
−  repeat＿first＿field=1、top＿field＿first=1
−  repeat＿first＿field=1、top＿field＿first=0
−  repeat＿first＿field=0、top＿field＿first=1
このようなフレームシーケンスは、各フレームが表示されるフィールド周期の数に基づき２２３３２フレームシーケンスと称する。これは、３：２のプルダウンを伴ったり伴わなかったりする連続フレームの全ての考えられる組合せを含む最も短いフレームシーケンスである。
−  ２つのフィールドの後に２つのフィールド
−  ２つのフィールドの後に３つのフィールド
−  ３つのフィールドの後に３つのフィールド
−  ３つのフィールドの後に２つのフィールド
0003943129.tif 000006
0003943129.tif 000007
Ｒ＝３６、ｒ＝６及びｓ＝６の場合の特定の解決策を、図３及びテーブル４を参照して説明する。３：２のプルダウンでＢフレームをデコード及び表示するのに使用されるメモリは、各々マクロブロックの６行である５つのメモリ割り当て単位（ＭＡＵ）−Ｍ０、Ｍ１、Ｍ２、Ｍ３及びＭ４に論理的に分割される。
図３は、一連の３つのＢ画像を示す。フレーム１は、３つのフィールドに対して表示され、上部フィールドが繰り返される。
フレーム０の第１フィールドは、ｔ4とｔ13との間に表示される。フレーム０のデコード動作は、時間ｔ0の前に、Ｍ０及びＭ１のＭＡＵが使用できるようになったときに開始する。上部フィールドの第１区分Ｔ００はＭ０に書き込まれ、そして下部フィールドの第１区分Ｂ００はＭ１に書き込まれる。これらＭＡＵのうち、最初に表示されるべきものはＭ０であり、ｔ4からｔ7までである。従って、フレーム０の第１区分のデコード動作は、遅くても、ｔ7より８本の表示線だけ前のｔ6において終了しなければならない。
このフレームは３：２のプルダウンを用いて表示されないので、デコーダは、フレームの第２区分をデコードする前に、２つのＭＡＵが使用できるようになるまで待機する。Ｍ２及びＭ３対は、ｔ1とｔ2との間に使用できるようになる。上部フィールドの第２区分Ｔ０１は、Ｍ２に書き込まれ、そして下部フィールドの第２区分Ｂ０１は、Ｍ３に書き込まれる。これらＭＡＵのうち、最初に表示されるべきものは、Ｍ２であり、ｔ7からｔ10までである。従って、フレーム０の第２区分のデコード動作は、遅くとも、ｔ10より８本の表示線だけ前のｔ9において終了しなければならない。
このフレームは３：２のプルダウンを用いて表示されないので、デコーダは、フレームの第３区分をデコードする前に、更に２つのＭＡＵが使用できるようになるまで待機する。Ｍ４は、ｔ5の前に使用できるようになり、次に使用できるようになるＭＡＵは、ｔ4に表示され始めた８本の表示線の後のｔ5におけるＭ０である。上部フィールドの第３区分Ｔ０２は、Ｍ４に書き込まれ、そして下部フィールドの第３区分Ｂ０２は、Ｍ０に書き込まれる。これらＭＡＵのうち、最初に表示されるべきものは、Ｍ４であり、ｔ10からｔ13までである。従って、フレーム０の第３区分のデコード動作は、遅くとも、ｔ13より８本の表示線だけ前のｔ12において終了しなければならない。
次のフレームであるフレーム１は、３：２のプルダウンを用いて表示される。フレーム１の第１フィールドは、ｔ24とｔ33との間に表示される。デコーダは、２つのＭＡＵが使用できるようになると、デコードを開始する。Ｍ２は、ｔ7とｔ10との間に表示され、従って、ｔ7より８本の表示線の後のｔ8に使用できるようになる。次に使用できるようになるＭＡＵであるＭ４は、ｔ10とｔ13との間に表示され、従って、ｔ10より８本の表示線の後のｔ11において使用できるようになる。上部フィールドの第１区分Ｔ１０は、Ｍ２に書き込まれ、そして下部フィールドの第１区分Ｂ１０は、Ｍ４に書き込まれる。これらのＭＡＵのうち、最初に表示されるべきものは、Ｍ２であり、ｔ24からｔ27までである。従って、フレーム１の第１区分のデコード動作は、遅くとも、ｔ27より８本の表示線だけ前のｔ26において終了しなければならない。
この点において、フレームの第１の（Ｒ−２ｒ）／Ｒ（即ち、２／３）は、まだ完全にデコードされていない。デコーダは、フレームの第２区分をデコードする前に、更に２つのＭＡＵが使用できるようになるまで待機する。Ｍ１は、ｔ14に表示され始めた８本の表示線の後にｔ15において使用できるようになり、そして次に使用できるようになるＭＡＵは、ｔ17に表示され始めた８本の表示線の後のｔ18におけるＭ３である。上部フィールドの第２区分Ｔ１１は、Ｍ１に書き込まれ、そして下部フィールドの第２区分Ｂ１１は、Ｍ３に書き込まれる。これらＭＡＵのうち、最初に表示されるべきものは、Ｍ１であり、ｔ27からｔ30までである。従って、フレーム１の第２区分のデコード動作は、遅くとも、ｔ30より８本の表示線だけ前のｔ29において終了しなければならない。
この点において、フレームの第１の（Ｒ−２ｒ）／Ｒ（即ち、２／３）がデコードされる。前記したように、フレームの残りがデコードされるが、ＭＡＵが使用できるようになったときに、表示されるべき第１のフィールドの像情報のみが書き込まれる。次に使用できるようになるＭＡＵは、ｔ20に表示され始めた８本の表示線の後のｔ21におけるＭ０である。フレームの第３区分はデコードされ、そして上部フィールドの第３区分Ｔ１２がＭ０に書き込まれる。この第３区分はｔ30とｔ33との間に表示され、デコード動作は、ｔ33より８本の表示線だけ前のｔ32において終了しなければならない。
この点において、フレーム１全体が１回デコードされる。次いで、前記のように、フレームの最後の２ｒ／Ｒ（即ち１／３）が再びデコードされるが、ＭＡＵが使用できるようになったときに、表示されるべき第２のフィールドの像情報のみが書き込まれる。Ｍ２、Ｍ１及びＭ０は、上部フィールドの繰り返しのためにセーブされねばならない。従って、最初に使用できるようになるＭＡＵは、ｔ34に表示され始めた８本の表示線の後のｔ34におけるＭ４である。フレームの第３区分が再びデコードされ、そして下部フィールドの第３区分Ｂ１２がＭ４に書き込まれる。この第３区分はｔ40とｔ43との間に表示され、デコード動作は、ｔ43より８本の表示線だけ前のｔ42において終了しなければならない。
次に表示されるべきフレームであるフレーム２は、２つのＭＡＵが使用できるようになるや否やデコードされ始める。Ｍ３は、ｔ37とｔ40との間に表示され始めた８本の表示線の後のｔ38に使用できるようになる。次に使用できるようになるＭＡＵは、ｔ40とｔ43との間に表示され始めた８本の表示線の後のｔ41におけるＭ４である。上部フィールドの第１区分Ｔ２０は、Ｍ４に書き込まれ、そして下部フィールドの第１区分Ｂ２０は、Ｍ３に書き込まれる。これらのＭＡＵのうち、最初に表示されるべきものは、Ｍ３であり、ｔ54からｔ57までである。従って、フレーム２の第１区分のデコード動作は、遅くとも、ｔ57より８本の表示線だけ前のｔ56において終了しなければならない。
このフレームは３：２のプルダウンを用いて表示されないので、デコーダは、フレームの第２区分をデコードする前に、２つのＭＡＵが使用できるようになるまで待機する。Ｍ２は、ｔ44とｔ47との間に表示され始めた８本の表示線の後のｔ45に使用できるようになり、そして次に使用できるようになるＭＡＵは、ｔ47に表示され始めた８本の表示線の後のｔ48におけるＭ１である。上部フィールドの第２区分Ｔ２１は、Ｍ１に書き込まれ、そして下部フィールドの第２区分Ｂ２１は、Ｍ２に書き込まれる。これらのＭＡＵのうち、最初に表示されるべきものは、Ｍ２であり、ｔ57からｔ60までである。従って、フレーム２の第２区分のデコード動作は、遅くとも、ｔ60より８本の表示線だけ前のｔ59において終了しなければならない。
このフレームは３：２のプルダウンを用いて表示されないので、デコーダは、フレームの第３区分をデコードする前に、２つのＭＡＵが使用できるようになるまで待機する。Ｍ０は、ｔ50とｔ53との間に表示され始めた８本の表示線の後のｔ51に使用できるようになり、そして次に使用できるようになるＭＡＵは、ｔ54に表示され始めた８本の表示線の後のｔ55におけるＭ３である。上部フィールドの第３区分Ｔ２２は、Ｍ３に書き込まれ、そして下部フィールドの第３区分Ｂ２２は、Ｍ０に書き込まれる。これらのＭＡＵのうち、最初に表示されるべきものは、Ｍ０であり、ｔ60からｔ63までである。従って、フレーム２の第３区分のデコード動作は、遅くとも、ｔ63より８本の表示線だけ前のｔ62において終了しなければならない。
時々、同じＭＡＵがデコード及び表示の両方に使用され、それ故、ＭＡＵデータが表示される前にそれにオーバーライトしたりＭＡＵデータがデコードされる前にそれを表示したりすることを回避するために制約が適用される。これら制約により、デコーダは、１つのフィールドの表示周期から、１６本の線を表示するのに必要な時間を差し引いた時間に、フレームの１／３をデコードする必要がある（図２のｔ26とｔ28との間のＢ１１のデコード動作を参照されたい）。更に、デコーダは、１つのフレームの表示周期に１つのフレームをデコードする必要がある。あるフィールドは、更にゆっくりとデコードすることができるが、他のフィールドについてはデコーダが計算帯域巾を必要とする。従って、ＮＴＳＣ及びＰＡＬ／ＳＥＣＡＭの両方に対し、デコーダは、フレーム周期の１００％において１つのフレームをデコードする必要がある。この解決策は、メモリを節約するだけでなく、デコーダの処理能力もある程度節約し、全てのフレーム周期をデコード動作に使用することができる。これは、Ｒ＝３６、ｒ＝９又は８の場合を除き、テーブル１及び２に示す全てのＲ、ｒの組合せに対して言えることである。
テーブル４は、２２３３２フレームシーケンスのＭＡＵ割り当てを示す。
0003943129.tif 000008
0003943129.tif 000009
Ｒ＝３６、ｒ＝９及びｓ＝３の場合の特定の解決策を、図４Ａ及び４Ｂとテーブル５を参照して以下に説明する。３：２のプルダウンでＢフレームをデコードしそして表示するのに使用されるメモリは、各々マクロブロックの３行より成る９つのＭＡＵ、即ちＭ０−Ｍ８に論理的に分割される。フレーム全体を記憶するためには、１２個のＭＡＵが必要となる。９つのＭＡＵは、図４Ａ及び４Ｂに示されたように、上記で一般的に述べた方法に基づいてデコード及び表示のために割り当てられる。Ｒ＝３６、ｒ＝９及びｓ＝９の解決策に比して、これは、大きな操作上の融通性を与えるが、メモリコントローラが複雑なものとなる。図４Ａ及び４Ｂは、一連の３つのＢ画像を示す。フレーム１は、３つのフィールドに対して表示され、上部フィールドが繰り返される。２つの図は、重畳する。フレーム０の表示周期の部分は、両方の図に示されている。
テーブル５は、２２３３２フレームシーケンスに対して考えられるＭＡＵ割り当てを示す。
0003943129.tif 000010
0003943129.tif 000011
0003943129.tif 000012
0003943129.tif 000013
Ｒ＝３０、ｒ＝５及びｓ＝５の場合には、３：２のプルダウンでＢフレームをデコードしそして表示するのに使用されるメモリは、各々マクロブロックの５行より成る５つのＭＡＵ、即ちＭ０−Ｍ４に論理的に分割される。全フレームを記憶するためには、６個のＭＡＵが必要とされる。５つのＭＡＵは、上記したＲ＝３６、ｒ＝６及びｓ＝６の解決策による方法に基づいてデコード及び表示するように割り当てられる。唯一の相違は、Ｒ、ｒ及びｓが５／６でスケーリングされることである。
本発明によるデコード及び表示システム１０のブロック図が、図５に示されている。このシステム１０は、ＭＰＥＧ−２に適合するもので、デコーダ１２と、該デコーダ１２と通信するメモリコントローラ２２と、該メモリコントローラ２２と通信するメモリ２４と、該メモリコントローラ２２と通信する表示サブシステム２６とを備えている。
デコーダ１２は、パイプライン式のものであり、パーザ１４と、該パーザ１４と通信する逆量子化装置１６と、該逆量子化装置１６と通信するＩＤＣＴ（逆離散的コサイン変換器）計算ユニット１８と、該ＩＤＣＴ計算ユニット１８と通信する動き補償装置２０とを備えている。
メモリ２４は、映像、デマルチプレクス及びパケットオーバーヘッドバッファ３２と、第１予想画像バッファ３４と、第２予想画像バッファ３６と、フレームバッファ３８と、システムバッファ及びシステム搬送バッファとして使用されるバッファ４０とを備えている。フレームバッファ３８は、フレーム全体の像情報を記憶するのに必要なサイズより小さいサイズである。
到来する映像ビット流は、信号３０で示したようにメモリコントローラ２２に到着し、メモリ２４の映像バッファ３２に記憶される。メモリコントローラ２２は、信号５２で示すように、メモリ２４と通信する。次いで、ビット流は、信号４２で示すように、パーザ１４により読み取られる。
各フレームの始めに、パーザ１４は、ｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄ及びｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔフラグを読み取る。ｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄが真である場合には、パーザ１４は、ＲＦＦ（ｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄ）信号４４をメモリコントローラ２２にアサートする。ｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔが真である場合には、パーザ１４は、ＴＦＦ（ｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔ）信号４６をメモリコントローラ２２にアサートする。メモリコントローラ２２は、フレームがデコードされるときに、各フレームの記憶の開始に信号４４及び４６をサンプルする。デコーダのパイプライン遅延により、信号は、それらがサンプルされるときに有効である。パイプライン遅延は、処理されたマクロブロックがデコーダ１２により出力されるインターバルの一部分である。
Ｂ画像のデコード中に、動き補償装置２０は、信号４８で示すように、バッファ３４及び３６からメモリコントローラ２２を経て順方向及び逆方向の予想情報を読み取り、そしてデコードされたフレーム情報を、信号５０で示すように、メモリコントローラ２２を経てフレームバッファ３８に書き込む。
メモリコントローラ２２は、デコーダ１２及び表示サブシステム２６によるメモリへのアクセス要求を調整する。又、メモリアクセスのタイミング及びメモリ位置を制御する。正しいタイミングを維持するために、メモリコントローラ２２は、イネーブル信号５４を用いてデコーダの処理を一時的に保留する。通常の動作中に、システムファンクションについてはバッファ４０に、ビット流の書き込み及び読み取りについては映像バッファ３２に、動き補償装置２０により順方向及び逆方向予想バッファ３４及び３６に、そしてデコード及び表示についてはフレームバッファ３８に、インターリーブされたメモリアクセスが生じる。
両フィールドの像情報がフレームバッファ３８に同時に書き込まれるところのマクロブロックの最後の行のデコード中に、メモリコントローラ２２は、マクロブロックの次の行の始めに、ビット流記憶位置信号５６をアサートすることにより、フレームが２回デコードされることをパーザ１４に知らせる。この信号は、マクロブロックの行と行との間にパーザ１４によりサンプリングされる。信号５６がアサートされると、パーザ１４は、マクロブロックの次の行の始めに、スライスの開始位置をレジスタ２８に記憶する。
３：２のプルダウンでのフレームの最初の完全なデコード動作が終わると、デコーダ１２はアイドル状態となり、第２のデコード信号５８がアサートされ始めるのを待機する。信号５８がアサートされると、デコーダ１２は、レジスタ２８に記憶された位置において第２回目のデコードを開始する。
図６は、３：２のプルダウンを用いて、２４画像／ｓの連続画像レートをもつＭＰＥＧ−１ビット流をデコードするために、デコード及び表示システム１０をいかに変更すべきかを示している。ＭＰＥＧ−１ビット流は、ｔｏｐ＿ｆｉｅｌｄ＿ｆｉｒｓｔ及びｒｅｐｅａｔ＿ｆｉｒｓｔ＿ｆｉｅｌｄフラグを含んでおらず、従って、ＴＦＦ及びＲＦＦ信号各々４６及び４４は、信号６０を用いてメモリコントローラ２２’によりフレーム間でクロックされるカウンタ６２によって発生される。カウンタ６２は、２ビットカウンタであり、最下位ビットはＲＦＦ信号４４でありそして最上位ビットはＴＦＦ信号４６である。メモリコントローラ２２’は、信号６０を発生する点でメモリコントローラ２２とは異なる。パーザ１４’及びデコーダ１２’は、信号４４及び４６を発生しない点でパーザ１４及びデコーダ１２とは異なる。
ＭＰＥＧ−１においては新たなスライスが必ずしもマクロブロックの各行の始めにスタートしないので、マクロブロックの各行の始めにスライスヘッダを挿入する前置プロセッサ６４を設けることが必要となる。上記の変更以外は、デコード及び表示システム１０’は、上記したシステム１０と同様である。
図７は、本発明を実施するのに使用されるメモリコントローラ２２の主要成分を示すブロック回路図である。フレームバッファメモリ割り当ての状態は、フィールドの各区分ごとに１つづつ、Ｒ／ｓ個のエントリーをもつレジスタファイル７２に保持される。これらエントリーの半分は、上部フィールドに使用され、そして他の半分は、下部フィールドに使用される。
新たなフレーム区分のデコード動作が始まると、その像情報を記憶するＭＡＵのアドレスを決定しなければならない。信号５０ａを用いて動き補償装置２０により与えられたマクロブロックの行は、分割器１０６によりｓ（ＭＡＵサイズ）で分割され、フィールド選択番号ｉ（信号８８）が得られる。この信号は、動き補償装置２０により与えられたフィールド信号５０ｂ、ＴＦＦ信号４６及びＲＦＦ信号４４と共に、ポインタ及びアドレス決定ユニット６６により使用されて、レジスタファイル７２への読み取りポインタ８６が計算される。この読み取りポインタ８６は、マルチプレクサ７４によりレジスタファイル７２のアドレスポートに付与される。マルチプレクサ７４は、ポインタ及びアドレス決定ユニット６６により与えられる選択信号６６により制御される。次いで、データライン１０８ａ、１０８ｂ及び１０８ｃを用いて、アドレスレジスタの内容がレジスタ８０に読み込まれる。この内容は、デコード動作に使用されるＭＡＵのアドレスである。このように、レジスタ８０には、１つのＭＡＵのみが書き込まれる（３：２のプルダウンでのフレームの最後の２ｒ／Ｒのデコード中）か、又は２つのＭＡＵが同時に書き込まれる（３：２のプルダウンを伴わないデコード中又は３：２のプルダウンでのフレームの最初の（Ｒ−２ｒ）／Ｒのデコード中）かに基づいて１つ又は２つのＭＡＵアドレスがロードされる。
次いで、レジスタファイル７２は、書き込みポインタ８８をフィールド信号８９と組み合わせてマルチプレクサ７４を経てアドレスとして付与し、そしてレジスタ８０の内容をレジスタファイル７２のアドレスされたレジスタに書き込むことにより更新される。レジスタ８０に２つのＭＡＵアドレスがロードされた場合には、レジスタファイル７２への２つの書き込みが行われ、その間に、書き込みポインタ８８は同じ値を有するが、フィールド信号８９は異なる値を有する。
現在フィールド区分のデコードの残りの部分中に、レジスタ８０の内容をマルチプレクサ８４を経てアドレス５２ａとしてメモリ２４へ付与することにより、適当なＭＡＵがアドレスされる。メモリ２４のライン５２ｂは、動き補償装置２０の出力５０に接続される。その他の時には、ライン５２ｂは、他の装置に接続されてもよい。
上記手順は、デコードされた像情報を記憶するために新たなＭＡＵをアクセスすべきたびに繰り返される。
レジスタファイル７２は、一貫したやり方で初期化される必要がある。即ち、表示されるべき第１のフィールドが上部又は下部フィールドの場合には、上部又は下部フィールドの第１のｒ／ｓエントリーを除く各エントリーが、０ないしＲ／ｓ−１の範囲の異なる数を含んでいなければならない。このような初期化を行う簡単な方法は、次の通りである。表示されるべき第１のフィールドが上部フィールドである場合は、連続する上部フィールドのエントリーが、０からＲ／（２ｓ）−１までの連続する数で初期化され、次いで、連続する下部フィールドのエントリーが、Ｒ／（２Ｓ）から（Ｒ−ｒ）／ｓ−１まで及び０からｒ／ｓ−１までの連続する数で初期化される。表示されるべき第１のフィールドが下部フィールドである場合には、連続する下部フィールドのエントリーが、０からＲ／（２ｓ）−１までの連続する数で初期化され、次いで、連続する上部フィールドのエントリーが、Ｒ／（２Ｓ）から（Ｒ−ｒ）／ｓ−１まで及び０からｒ／ｓ−１までの連続する数で初期化される。
図１ないし４に示したように、画像は、デコード動作に対してフィールド周期遅延を伴って表示される。例えば、図２において、フレーム０は、ｔ1にデコードされ始め、そしてｔ4に表示され始める。ディスプレイにより読み取られるべきＭＡＵのアドレスを発生するために、ポインタ及びアドレス決定ユニット６６は、表示タイミングブロック６８からの信号７０に基づいてレジスタファイル７２への読み取りポインタ８６を計算する。読み取りポインタ８６は、マルチプレクサ７４によりレジスタファイル７２のアドレスポートに付与される。アドレスされたレジスタの内容は、次いで、データライン１０８ａ、１０８ｂ及び１０８ｄを用いて、レジスタ８２へ読み込まれる。この内容は、表示に使用されるＭＡＵのアドレスである。
現在フィールド区分の表示の残り部分の間に、レジスタ８２の内容をマルチプレクサ８４を経てアドレス５２ａとしてメモリ２４に付与することにより適当なＭＡＵがアドレスされる。
上記の手順は、表示のために新たなＭＡＵをアクセスすべきたびに繰り返される。
ポインタ及びアドレス決定ユニット６６への入力８８は、所与の時間にどんなフィールド区分がデコードされているかを指示するが、所与の時間にどんなマクロブロックがデコードされているかは指示しない。上記のように、ビット流記憶位置信号５６は、マクロブロックの行と行との間にサンプリングされ、そしてビット流の位置の前にデコードされるべき区分にあるデコードされるべき最後のマクロブロック行を記憶すべきである間にのみアサートされねばならない。これを行うために、ユニット６６により発生された信号９２は、アンドゲート９６により信号９０と合成され、その出力が信号５６である。信号９０は、所定のＭＡＵに対応するデコードされている区分において最後のものでないマクロブロック中にのみアサートされる。信号９０は、次のように発生される。デコードされているマクロブロックの行を指定する信号５０ａは、減少装置１０４により最初に減少され、次いで、分割器１０２によりｓで分割される。分割器１０２の出力１００は、次いで、比較器９４により信号８８と比較される。比較器９４の出力は、信号９０である。
要約すれば、３：２のプルダウンで映像ビット流をデコードしそして表示するための装置及び方法が提供された。本発明は、デコードされた全フレームを保持するには充分でないサイズのフレームバッファを使用できるようにする。この際に、本発明は、メモリ節約を果たし、デコーダの設計に付加的な融通性を与え、そしてメモリコントローラの複雑さ及び電力消費を減少させる。ＭＰＥＧ−２デコーダの場合に、本発明は、１６メガビットのメモリのみを用いた３：２のプルダウンのメインレベルデコーダにおいてＰＡＬ／ＳＥＣＡＭメインプロファイルを実施できるようにする。
好ましい実施形態について本発明を説明したが、本発明は、これに限定されるものではない。むしろ、本発明の範囲は、請求の範囲のみによって限定されるものとする。
【図１】
0003943129.tif 000014
【図２】
0003943129.tif 000015
【図３】
0003943129.tif 000016
【図４Ａ】
0003943129.tif 000017
【図４Ｂ】
0003943129.tif 000018
【図５】
0003943129.tif 000019
【図６】
0003943129.tif 000020
【図７】
0003943129.tif 000021