(57)【特許請求の範囲】
【請求項１】
画像ブロックに対応し、復号パラメータを含むヘッダによって区分されたパケットとして到着する圧縮画像データを処理するための動画像復号器において、
パケット内のデータを処理する際に前記復号パラメータを使用する第１の複数の処理用エレメントと、
画像メモリ（１５）と前記第１の複数の処理用エレメントとに接続されたメモリバス（ＭＢＵＳ）と、
前記画像メモリと前記第１の複数の処理用エレメントとの間で前記処理用エレメントの処理速度に適合した速度でデータを交換させるために前記メモリバスに接続されたメモリコントローラ（２４）と、
前記メモリバスに接続され、圧縮データを受け取り、該圧縮データからパケット及び前記復号パラメータを取り出す可変長復号器（ＶＬＤ）と、
パイプライン方式でパケットを処理するように接続された第２の複数の処理用エレメントを含むパイプライン回路（１１，１２、１３）と、
処理されるべきパケット及び復号パラメータを前記パイプライン回路に供給し、復号パラメータを前記第１の複数の処理用エレメントに供給するために、前記可変長復号器及び前記パイプライン回路に接続されたパラメータバス（ＶＬＤＢＵＳ）と
を含む動画像復号器であって、さらに前記パイプライン回路が、
パケットを受け取るために前記パラメータバスに接続されたランレベル復号器（１１）と、
前記可変長復号器によって処理されたパケット出力を直接的に受け取り、さらに復号パラメータ内の量子化係数を受け取るために前記パラメータバスに接続された逆量子化回路（１２）と、
前記逆量子化回路によって処理されたパケット出力を直接的に受け取り、前記画像メモリに復号されたブロックを保存するために前記メモリバスに結合した逆コサイン変換回路（１３）と
を含むことを特徴とする動画像復号器。
【請求項２】
前記メモリコントローラ（２４）が、前記復号パラメータ内の動き補償ベクトルを受け取るために前記パラメータバスに接続されており、さらに、
前記逆コサイン変換回路によるブロック出力と、動き補償ベクトルによって決定される位置に存在し前記メモリコントローラによって前記画像メモリ内に取り込まれた関連する予測ブロックとの結合である画像メモリ復号ブロックを保存するための、前記メモリバス及び前記逆コサイン変換回路に接続された、前記第１の複数の処理用エレメントのうちの１つとしての結合回路を
含むことを特徴とする請求項1に記載の動画像復号器。
【請求項３】
ブロックヘッダが圧縮データの各パケットに先行して配置され、該パケットは連続するグループとして到来し、グループヘッダが各パケットグループに先行して配置されてグループ復号パラメータとプライベート及びオンスクリーンディスプレイ情報とを含み、前記動画像復号器が、
マイクロプロセッサ（６０）と、
前記メモリコントローラ、前記可変長復号器、及び逆量子化回路に前記グループパラメータの少なくとも一部を供給し、さらに第１の複数の処理用エレメントのうちのディスプレイコントローラ（１８）に前記ディスプレイ情報を供給するために、前記マイクロプロセッサに接続されたプロセッサバス（ＰＢＵＳ）と、
前記プロセッサバスに接続され、前記メモリバスを介して圧縮データを受け取るバッファメモリ（６４）と、
前記グループヘッダが前記圧縮データ内に検出された場合に前記マイクロプロセッサの割り込みを発生させるために、前記バッファメモリに接続されたグループヘッダ検出器（６６）と
をさらに含むことを特徴とする請求項２に記載の動画像復号器。
【請求項４】
前記画像メモリと前記メモリバスに接続された１つの処理用エレメントとの間のデータ転送が、該１つのエレメントがデータ受け取りのリクエストを送出する場合に開始又は継続される特定のタスクに対応し、同時に起こり得る全てのタスクがタスク優先管理に従って前記メモリコントローラによって実行されることを特徴とする請求項３に記載の動画像復号器。
【請求項５】
前記画像メモリとデータを交換する処理用エレメントが、それぞれの書き込み専用バッファメモリ又は読み出し専用バッファメモリを介して前記メモリバスに接続され、
書き込み専用バッファメモリは、該メモリに結合した処理用エレメントによって空にされ、その内容量が下限に達した場合、メモリバスを介してデータを受け取るリクエストを送出し、
読み出し専用バッファメモリは、該メモリに結合した処理用エレメントによって充満させられ、その内容量が上限に達した場合、メモリバス上にデータを供給するリクエストを送出する
ことを特徴とする請求項４に記載の動画像復号器。
【請求項６】
前記結合回路が、
復号パラメータ内のブロックタイプを受け取るために前記パラメータバスに接続されており、前記メモリコントローラによって受け取られた動き補償ベクトルの関数としてメモリバスによって供給された対応する予測ブロックを受け取るために、ブロックタイプに応じて特別のリクエストを送出するフィルタ（１４）と、
前記フィルタの出力と前記コサイン変換回路の出力との和を前記メモリバスに供給する加算器と
を含むことを特徴とする請求項５に記載の動画像復号器。
【請求項７】
関連する前記バッファメモリ（６４）が画像シーケンスヘッダ又は画像ヘッダを含む場合に、前記グループヘッダ検出器（６６）が前記マイクロプロセッサの割り込みを発生させる、該マイクロプロセッサが逆量子化回路（Ｑ−１）に供給する量子化テーブルと、該マイクロプロセッサが可変長復号器（ＶＬＤ）に供給する画像タイプに関する情報及び動き補償ベクトルの振幅に関する情報と、該マイクロプロセッサがディスプレイコントローラ（１８）に供給するディスプレイ情報とを、グループヘッダ検出器と関連したバッファメモリに読み出すように前記割り込みに応答するように該マイクロプロセッサがプログラムされていることを特徴とする請求項６に記載の動画像復号器。
【請求項８】
前記メモリコントローラが、
前記メモリバス上でタスクを転送することにそれぞれ対応したプログラム命令を格納する、前記メモリバス（ＭＢＵＳ）から独立している命令メモリ（５４）と、
一連の実行すべき命令を受け取るために前記命令メモリに接続され、さらに該命令に応答して前記メモリバス上に作動するように接続された命令プロセッサ（ＡＬＵ）と、
各々見込まれるタスクに関連した複数の命令ポインタであって、該命令ポインタの各々が、それぞれのタスクに関連するプログラムを実行するために次の命令を指示し、さらに一度に唯１つの前記命令ポインタが、それが指示する命令の実行を引き起こす命令サイクルの速度で更新されることを特徴とする複数の命令ポインタ（ＩＰ）と、
各々のタスクの優先レベルが最上位になったときに前記唯１つの命令ポインタを選択するためのプライオリティ復号器（５２）と
を含むことを特徴とする請求項５に記載の動画像復号器。
【請求項９】
前記各命令（Ｉ）が、前記命令プロセッサ（ＡＬＵ）に供給されるコマンドフィールド（Ｉ２）と、プレフィックス復号器（５８）に供給されるフィーチャフィールド（Ｉ１）を含み、該プレフィックス復号器（５８）が、
現在の命令の前記フィーチャフィールドが第1の所定値である場合、前記プライオリティ復号器による新たな命令ポインタの選択を許可する手段（ＮＥＸＴＥＮ）と、
現在の命令の前記フィーチャフィールドが第２の所定値である場合、選択された命令ポインタの内容を現在のプログラムスタートアドレスに初期化する手段（ＩＮＩＴ）と
を含むことを特徴とする請求項８に記載の動画像復号器。
【請求項１０】
前記プレフィックス復号器（５８）が、前記フィーチャフィールドが第３の所定値である場合、選択された命令ポインタの増加を禁止するための手段（ＩＮＨ）を含み、その結果、現在の命令がこの第３の値によって決定される実行回数だけ連続して実行されることを特徴とする請求項９に記載の動画像復号器。
【請求項１１】
前記命令プロセッサ（ＡＬＵ）がアドレス計算のための複数のハードワイヤード回路（５０−１）を含み、該ハードワイヤード回路の各々が実行される読み出し及び書き込み命令フィールド（Ｉ４）によって選択されることを特徴とする請求項８に記載の動画像復号器。
【請求項１２】
前記メモリバスに接続されたアドレスレジスタ（ＡＲ）が各ハードワイヤード回路に関連しており、命令が前記命令プロセッサ（ＡＬＵ）において実行されるごとに、該ハードワイヤード回路がそのアドレスレジスタの内容を適切に変更することを特徴とする請求項１１に記載の動画像復号器。
【請求項１３】
前記各命令（Ｉ）が、命令プロセッサに供給されるコマンドフィールド（Ｉ２）と、該命令が実行されている際にメモリバスに接続された少なくとも１つのバッファメモリをイネーブルにするための手段（５９）に供給されるアクノリッジフィールド（Ｉ３）とを含むことを特徴とする請求項８に記載の動画像復号器。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は画像処理システム、更に詳細にはＭＰＥＧ標準に基づき符号化された画像を復号するシステムに関する。
【０００２】
【従来の技術】
図１にはＭＰＥＧ復号器の主なエレメントを示している。特にＭＰＥＧ−２標準用の全てのＭＰＥＧ復号器には、一般に可変長復号器（ＶＬＤ）１０，ランレベル復号器（ＲＬＤ）１１，逆量子化回路（Ｑ−１）１２，逆離散コサイン変換回路（ＤＣＴ−１）１３，半画素フィルタ１４、更にメモリ１５が含まれている。符号化されたデータはＣＤｉｎを通して入力され、復号化されたデータはバスＶＩＤｏｕｔを通して出力される。入力と出力の間で、データは前述の順序で処理回路１０−１３を通るが、これは点線の矢印で示している。復号器出力はフィルタ１４とコサイン変換回路１３の出力を加える加算器１６により出力される。フィルタ１４にはメモリ１５に記憶されている以前の復号化された画像が一部必要である。
【０００３】
図２Ａは現在再生された画像ＩＭ１の一部の復号化のステップを示している。画像の復号化は同時に１つのマクロブロックで行なわれる。マクロブロックは一般に１つの１６×１６画素画像ブロックに対応している。
【０００４】
図２ＢはマクロブロックＭＢの、特に４：２：０の代表的なフォーマットを示している。マクロブロックＭＢには４つの８×８素ブロックＹ１−Ｙ４と、２つの８×８画素ブロックＵ，Ｖにより構成されている１つのクロミナンス（色）ブロック、とにより形成されている輝度ブロックが含まれている。これに代わるフォーマットとして４：２：２のフォーマットがあり、このフォーマットでは色ブロックが２つの８×１６画素ブロックを含む。
【０００５】
図２Ａの現在の画像ＩＭ１においては、現在のマクロブロックＭＢｃが復号化されているが、前に復号化されたマクロブロックはハッチングラインで示されている。一般に、マクロブロックＭＢｃは前に復号化された画像ＩＭ０内に取り出された予測マクロブロックＭＢｐを使用して再生される。予測マクロブロックＭＢｐを見つけるため、マクロブロックＭＢｃを復号する役目をするデータにより動き補償ベクトルＶが与えられるが、このベクトルにより画像内でマクロブロックＭＢｃの位置に対し予測マクロブロックＭＢｐの位置が定められる。
【０００６】
予測マクロブロックＭＢｐは前に復号化された画像ＩＭ０を記憶しているメモリ１５内に取り出され、更にフィルタ１４に加えられるが、コサイン変換回路１３はマクロブロックＭＢｃに対応したデータを処理している。
【０００７】
前述の復号化は所謂“予測”復号化である。復号化されたマクロブロックも予測型であると呼ばれている。ＭＰＥＧ標準に従えば、“内部”、“予測”、及び“双方向予測”と呼ばれている大きな３つの復号化のタイプがある。
【０００８】
内部マクロブロックは画像ブロックに直接対応している、即ち内部マクロブロックはこれがコサイン変換回路１３から出力される時予測マクロブロックと組み合わされない。
【０００９】
予測マクロブロックは、前述のように、前に復号化された画像の１つのマクロブロックと組み合わされ、現在再生された画像の前に、ディスプレイの順序で、到来する。
【００１０】
双方向予測マクロブロックは２つの前の復号化画像の２つの予測マクロブロックとそれぞれ組み合わされる。これら２つの画像は現在の再生された画像に対し、ディスプレイの順にそれぞれ前（前方）及び後続（後方）画像となる。このように、符号化された画像はディスプレイの順序と異なる順序で到達する。
【００１１】
更に、予測又は双方向予測マクロブロックはそれぞれプログレッシブ的又はインターレース的である。マクロブロックがプログレッシブ的な時、ＤＣＴ−１回路は連続的な順序でマクロブロックのラインに加えられる。マクロブロックがインターレース的な時、ＤＣＴ−１回路は先ずマクロブロックの偶数ラインに加えられ、次に奇数ラインに加えられる。更に、予測又は双方向予測マクロブロックの復号を行なう予測マクロブロックもプログレッシブ的又はインターレース的である。予測マクロブロックがインターレース的な時、マクロブロックは２つのハーフマクロブロックに分割される；一方のハーフマクロブロックは偶数ラインに他方のハーフマクロブロックは奇数ラインに対応し、それぞれのハーフマクロブロックは前の同じ復号画像内の異なる位置で取り出される。
【００１２】
画像のタイプも内部、予測又は双方向予測的である。内部画像には内部マクロブロックのみが含まれている；予測画像には内部又は予測マクロブロックが含まれている；更に、双方向予測画像には内部、予測、又は双方向予測マクロブロックが含まれている。
【００１３】
種々の復号パラメータ、特にベクトルＶとマクロブロックのタイプを復号器の種々の回路に与えるため、符号化データのフローにはヘッダが含まれている。ヘッダには次の幾つかのタイプがある：
（１）逆量子化回路１２に加えるための特に２つの量子化テーブルを含む画像シーケンスヘッダで、一番目のテーブルはシーケンスの内部マクロブロック用であり、二番目のテーブルは予測又は双方向予測マクロブロック用である；
（２）復号用の有益なデータを含まない画像ヘッダのグループ；
（３）動き補償ベクトルの使用についての画像及び情報のタイプ（予測、内部、双方向予測）を含む画像ヘッダ；
（４）誤り訂正情報を含む画像スライスヘッダ；
（５）マクロブロックのタイプ、逆量子化回路１２に加えられる量子化スケール、更に動き補償ベクトルのコンポーネント。飛び越し双方向予測マクロブロックを処理する時４つまでのベクトルが与えられる。
【００１４】
更に、階層の高いヘッダには例えばオンスクリーン（ｏｎ−ｓｃｒｅｅｎ）ディスプレイ用のプライベートデータを含むことができる。幾つかのプライベートデータも復号器に対する外部コンポーネントにより使用できる。
【００１５】
ＭＰＥＧ復号器の種々の処理回路は早いデータフローを処理するが、非常に複雑で柔軟性のない、即ち標準を変形することが難しく更にオンスクリーンディスプレイ及びプライベートデータを活用することが不十分なパイプライン構造で構成される。
【００１６】
最も簡単で最も低廉な解決策はマルチタスク処理装置により制御されているコモンバスを通して種々の処理回路とメモリを連結することである。
【００１７】
特許番号第ＥＰ−Ａ−０５０３９５６号（Ｃ−キューブ）には、バスの上でデータの転送を制御する処理装置と、回路１０から回路１４までに基づく処理ステップを実行する３つのコプロセッサ（ｃｏｐｒｏｃｅｓｓｏｒ）とを含むシステムが記載されている。バスを通して行なわれる転送のそれぞれのタイプは処理装置により行なわれるタスクに対応している。全てのタスクは同時に行なわれ、コプロセッサにより発生する処理割込みにより行なわれる。コプロセッサはバスを通し処理されるデータを交換し、プロセッサにより与えられる命令をバスを通して受ける。
【００１８】
このシステムは簡単であるが、現在必要とされる早いデータフローを取り扱うことができない。
【００１９】
【課題を解決するための手段】
この発明の目的は比較的簡単な構造の特に早い画像の復号システムを提示することである。
【００２０】
この発明の他の目的は非常に早いデータフロー速度を処理するため同一の復号システムと並列に容易に接続できる復号システムを提示することである。
【００２１】
これらの目的を達成するため、この発明ではコンポジット構造の復号器を提示、即ち処理用エレメントの幾つかは、第１のバスを介して、お互いに及び画像メモリに接続されており、他のエレメントはパイプライン構造で接続されている。これらの他のエレメントは以下では“パイプライン回路”と呼ぶ。第２のバスが所要の復号パラメータをシステムのエレメントに与え、更に処理されるデータをパイプライン回路の一番目のエレメントに供給するために設けられる。
【００２２】
この構造により、パイプライン回路はデータを直列に処理する。このデータを、第１のバスを通してメモリと交換する必要はない。更に、第１のバスは、第２のバスにより伝送される復号パラメータの伝送から解放される。このように、所定の復号化ステップに対応して第１のバスの上で行なわれる交換の数は実質的に減少するが、これによりシステムの性能が向上する。システムの柔軟性はバスシステムを使用することにより高い。この柔軟性はパイプライン回路に含まれるエレメントの選択を最適にすることにより増加する。
【００２３】
この発明はより詳細には画像ブロックに対応したパケットにより到達する圧縮データを処理するシステムを提示しており、これらのパケットはパケットの復号化パラメータを含むヘッダにより分離されている。このシステムには前記の復号化パラメータを使用した複数の処理用エレメントと、メモリバスとがあるが、このメモリバスはエレメントの処理速度に適合する速度で処理用エレメント間でデータを交換し、更に処理又は再使用されるデータを画像メモリに記憶するためメモリコントローラで制御されている。このシステムにはパケットを直列に処理するため接続された複数の処理用エレメントを含むパイプライン回路と、更に処理されるパケットをパイプライン回路に与え復号化パラメータをシステムの処理用エレメントに与えるパラメータバスとを有している。パラメータバスはマスタ処理用エレメント（可変長複合器）により制御されているが、このマスタ処理用エレメントはメモリバスから圧縮データを受けパケット及び復号パラメータを出力している。
【００２４】
この発明の実施態様によれば、圧縮データのパケットの前にはそれぞれブロックヘッダがあり、このパケットは一連のグループとして受け取られるが、このパケットのグループの前にはグループ復号化パラメータとプライベート及びオンスクリーンディスプレイ情報を含んだグループヘッダがある。このシステムには更に次のものが含まれている；グループ復号化パラメータとプライベート及びオンスクリーンディスプレイ情報を処理用エレメントに与えるためマイクロプロセッサにより制御されているプロセッサバス；プロセッサバスによりアクセス可能でありメモリバスを通して圧縮データを受けるバッファメモリ；マイクロプロセッサの割込みを発生させるため前記のバッファメモリと共に動作するグループヘッダ検出器。
【００２５】
この発明の実施態様によれば、メモリバスに接続された２つのエレメント間のデータの転送は、２つのエレメントの一方がデータを出力し又は受けるためリクエストを出す時開始され又は継続される特別なタスクに対応しており、起こり得るタスクはすべて、タスク優先管理に基づきメモリコントローラにより実施される同時発生のタスクである。
【００２６】
この発明の実施態様によれば、画像メモリとデータを交換するエレメントは書込み又は読み出し専用バッファメモリを通してメモリバスに接続されている。書込み専用バッファメモリは関係するエレメントにより空にされ、メモリの内容が下限に達した時メモリバスを通しデータを受けるリクエストを発生する。読み出し専用バッファメモリは関連するエレメントにより充満され、メモリの内容が上限に達した時メモリバスの上にデータを出すリクエストを発生する。
【００２７】
この発明の実施態様によれば、このシステムには次のものが含まれている；前記のマスタ処理用エレメントを形成する可変長復号器（ＶＬＤ）；パイプライン回路の一番目のエレメントを形成し、更にＶＬＤにより処理されるパケットをパラメータバスを通して受けるランレベル復号器（ＲＬＤ）；パイプライン回路の二番目のエレメントを形成し、更にパラメータバスを通し量子化スケール係数を受ける逆量子化回路；パイプライン回路の三番目のエレメントを形成する逆コサイン変換回路；パラメータバスを通し動き補償ベクトルを受けるメモリコントローラ；パラメータバスを通しブロックのタイプを受けるフィルタで、このフィルタはメモリコントローラが受けた動き補償ベクトルの関数としてメモリバスに与えられたデータを受けるためブロックのタイプに基づき識別リクエストを発生するフィルタ；メモリバスにフィルタとコサイン変換回路の出力の和を与えるための加算器。
【００２８】
この発明の実施態様によれば、グループヘッダ検出器は関係したバッファメモリが画像シーケンスヘッダ又は画像ヘッダを含む時マイクロプロセッサの割込みを発生するが、このマイクロプロッセッサは、グループヘッダ検出器、マイクロプロッセサが逆量子化回路に与える量子化テーブル、画像のタイプに関し及びマイクロプロセッサがＶＬＤに与える動き補償ベクトルの大きさに関する情報、更にメモリバスを通し復号データを受けるディスプレイコントローラにマイクロプロセッサが与えるディスプレイの構成に関する情報に関係したバッファメモリ内で読み出しによる割込みにレスポンスするようにプログラムされている。
【００２９】
この発明の実施態様によれば、メモリコントローラには（メモリバスと独立した）命令メモリが含まれているが、このメモリ内には次のものが記憶されている；メモリバス上の転送タスクにそれぞれ対応したプログラム命令；実行される連続した命令を受けるため命令メモリに接続されており、更にこれらの命令に応答してメモリバス上で作動するように接続されている命令プロセッサ（ＡＬＵ）；可能なタスクにそれぞれ関連し、更に関連したタスクについて、実行されるべき現在の命令アドレスをそれぞれが含む複数のポインタであり、一度に唯１つのポインタが命令アドレスとしてその内容を命令メモリに与えることができる。；所定の優先レベルをそれぞれのリクエストに割り当て更に一番高い優先レベルを有するアクティブなリクエストと関連した命令ポインタをイネーブルにするプライオリティ復号器；イネーブルにされた命令ポインタの内容を増分させ、更にその内容が関連したプログラムのエンドアドレスに到達した時、関連したプログラムのスタートアドレスにその内容を再初期化させるための手段。
【００３０】
この発明の実施態様によれば、それぞれの命令には命令プロセッサ（ＡＬＵ）に加えられるコマンドフィールドとプリフィックス（ｐｒｅｆｉｘ）復号器に加えられるフィーチャフィールド（ｆｅａｔｕｒｅ  ｆｉｅｌｄ）とがあるが、このプリフィックス復号器には現在の命令のフィーチャフィールドが第１の所定の値であればプライオリティ復号器による新しい命令ポインタのイネーブルを許可する手段と、更に現在の命令のフィーチャフィールドが第２の所定の値にあればイネーブルされた命令ポインタの内容を現在のプログラムのスタートアドレスに初期化する手段とが含まれている。
【００３１】
この発明の実施態様によれば、プリフィックス復号器にはフィーチャフィールドが第３の所定の値であればイネーブルされた命令ポインタの増分を禁止する手段が含まれているが、これは現在の命令が復数回連続的に実施されるようにするためであり、この実施の回数はこの第３の値により決定される。
【００３２】
この発明の実施態様によれば、それぞれの命令には命令プロセッサ（ＡＬＵ）に与えられるコマンドフィールドとアクノレッジフィールド（ａｃｋｎｏｗｌｅｄｇｅ  ｆｉｅｌｄ）とがあるが、このアクノレッジフィールドは命令が実行される時メモリバスに接続される少なくとも１つのバッファメモリをイネーブルにする手段に与えられている。
【００３３】
この発明の実施態様によれば、命令プロセッサ（ＡＬＵ）はアドレス計算のための複数のハードワイヤード回路を含むが、それぞれの回路は実行される読み出し又は書込み命令のフィールドにより選択される。
【００３４】
この発明の実施態様によれば、それぞれのハードワイヤード回路に対してメモリバスに接続されたアドレスレジスタが関連している。；ハードワイヤード回路は、命令が命令プロセッサ（ＡＬＵ）内で実行される毎にアドレスレジスタの内容を適当に変更する。
【００３５】
この発明は更に復号画像データを画像メモリに与える復号化手段を含み、画像に対応した圧縮データを処理するシステムを提示しているが、これらの復号化手段には再生される画像の現在のブロックを復号化する場合、予め復号化された画像の予測ブロックが必要である。実際、処理システムにはそれぞれの画像メモリに関連のある多数の復号器が含まれているが、それぞれの復号器は多数の画像の当該ブロックの特定のスライス部分を記憶しており、少なくとも１つのマージンは特定のスライス部分のブロックを再生するため使用される予測ブロックとなる。
【００３６】
この発明の実施態様によれば、対象とするそれぞれの復号器には少なくとも１つの付加的な特定のスライス部分の境界エリアをマージンとして画像メモリ内に記憶し、更に対象とする復号器と関連のある特定のスライス部分の境界エリアをマージンとして少なくとも１つの二番目の復号器に与える手段がある。
【００３７】
この発明の実施態様によれば、対象とするそれぞれの復号器は次のものを有している；特定のスライス部分から画像ブロックを受ける一番目のバッファメモリ；他の特定のスライス部分の隣接エリアから画像ブロックを受ける少なくとも１つの二番目のバッファメモリ；対象とする復号器の一番目のバッファメモリと他の復号器の二番目のバッファメモリに特定なスライス部分を与える端末処理用回路；一番目のバッファメモリ内でブロックを読み出し特定なスライス部分に対応したアドレスで画像メモリ内にブロックを書込むため、更に二番目のバッファメモリ内でブロックを読み出しマージンに対応したアドレスでブロックを書込むためのメモリコントローラ。
【００３８】
この発明の実施態様によればそれぞれの二番目のバッファメモリの前には所要のマージンに対応したデータのみを二番目のバッファメモリに記憶するためのバリア回路が置かれている。
【００３９】
この発明の実施態様によれば処理される画像は、等しい高さの水平スライス部分に分割されている高精細テレビジョンの画像である。
【００４０】
【実施例】
−ＭＰＥＧ復号器の一般的な構造−
図３は既に図１に示したエレメントを同じ参照番号で示している。
【００４１】
以下ではメモリバスＭＢＵＳと言うバスは、画像メモリ１５を、圧縮データ入力バスＣＤｉｎと、可変長復号器（ＶＬＤ）１０の入力と、半画素フィルタ１４の入力と、ディスプレイコントローラ１８の入力とに連結している。バスＣＤｉｎ，復号器１０，及びディスプレイコントローラ１８は、それぞれバッファメモリ（ＦＩＦＯ）２０，２１及び２２を通してメモリバスＭＢＵＳに接続されている。半画素フィルタ１４にはメモリバスＭＢＵＳに接続されている２つの内部ＦＩＦＯがある。メモリバスＭＢＵＳ上でのデータの交換は、ＦＩＦＯのリクエストによりＦＩＦＯと画像メモリとの間で転送動作を行なうメモリコントローラ（ＭＣＵ）２４により制御されている。これを行なうためメモリコントローラ２４は複数のリクエストＲＱを受け対応するアクノレッジＡＣＫを出す。メモリコントローラ２４は前述の特許番号第ＥＰ−Ａ−０５０３９５６号に記載されたようなものである。このメモリコントローラのより好ましい実施態様を以下に示す。
【００４２】
この発明によれば、ランレベルの復号器（ＲＬＤ）１１，逆量子化回路（Ｑ−１）１２及び逆離散コサイン変換回路（ＤＣＴ−１）１３はパイプライン構造に従い接続されている、即ちこれらの回路１１−１３は、復号するためにデータを連続的に処理するが、これらのデータを一時的にメモリ（１５）を介して移動させることはない。一連の回路１１−１３は、以下においてパイプライン回路と呼ぶ。半画素フィルタ１４の出力は加算器１６によりＤＣＴ−１回路１３の出力に加算されるが、この加算器はメモリコントローラ２４により制御されているＦＩＦＯ２６を通しバスＭＢＵＳに連結されている。ハンドシェイクラインＨＳ１とＨＳ２により加算器１６はそれぞれＶＬＤ回路とＤＣＴ−１回路に接続されている。
【００４３】
この発明の実施例によれば、ＶＬＤ回路１０はバスＶＬＤＢＵＳを制御しているが、このバスＶＬＤＢＵＳはパイプライン回路１１−１３により処理されるデータをＲＬＤ回路１１に、更に種々のパラメータを半画素フィルタ１４，逆量子化回路１２，ディスプレイコントローラ１８，及びメモリコントローラ２４に与えている。ＶＬＤ回路は、一般に受信した圧縮データのヘッダを復号する。前述のように、これらのヘッダにはシステムの種々のエレメントに与えられる復号化パラメータを含んでいる。
【００４４】
マクロブロックヘッダには逆量子化回路１２に与えられる量子化スケールと、マクロブロックタイプのパラメータと、動き補償ベクトルのコンポーネントとが含まれている。これらの復号化パラメータはＶＬＤ回路により復号され、更に逆量子化回路１２，ハーフ画素フィルタ１４，及びメモリコントローラ２４の特定のレジスタにそれぞれ書込まれる。
【００４５】
画像ヘッダには前述の通り、動き補償ベクトルの使用に関する画像タイプのパラメータと情報が含まれている。これらのパラメータはマクロブロックのベクトルとデータを復号するためＶＬＤ回路自体が使用している。
【００４６】
シーケンスヘッダにはＶＬＤ回路により取り出され逆量子化回路１２の２つのレジスタに加えられる２つの量子化テーブルがある。画像ヘッダにはディスプレイされた画像に関するスケーリング（ｓｃａｌｉｎｇ）又はターンケイティング（ｔｒｕｎｃａｔｉｎｇ）パラメータがあるが、これらのパラメータはＶＬＤ回路により復号化されディスプレイコントローラ１８に加えられている。
【００４７】
ＶＬＤ回路はヘッダを復号する時バスＶＬＤＢＵＳ上で書込み動作を行なう。バスＶＬＤＢＵＳ上でのＶＬＤ回路の書込み動作は、ＲＬＤ回路１１が処理されるべきデータをこれ以上受信できない場合にＲＬＤ回路１１により割込み可能となる。これはハンドシェイクコネクションＨＳ３により示される。
【００４８】
シークエンサ（ｓｅｑｕｅｎｃｅｒ）２８はＶＬＤ回路のイネーブル信号ＥＮを与える。シークエンサ２８はディスプレイ（水平、垂直）同期信号Ｈ／ＶＳＹＮＣを、ディスプレイコントローラ１８を通し、マクロブロック同期信号ＭＢＳを半画素フィルタ１４から、更に画像信号の終了ＥＯＰをＶＬＤ回路１０から受ける。シークエンサ２８は画像同期信号ＩＳＹＮＣをメモリコントローラ２４に与えるが、この画像同期信号は画像信号の終了ＥＯＰ及び垂直同期信号の両方がアクティブの時アクティブである。シークエンサ２８の役割は後程理解できるであろう。
【００４９】
既に示したように、画像を再生するため、２つの復号化された画像の画像部分を使用することがしばしば必要である。これを行なうため、メモリ１５は現在再生された画像と２つの前に復号化された画像とを記憶するための３つの画像エリアＩＭ１，ＩＭ２及びＩＭ３を有する必要がある。メモリ１５には処理される前にバスＣＤｉｎに到達する圧縮データを一時的に記憶するためのエリアＣＤが更に含まれている。
【００５０】
−画像メモリエリアの制御−
メモリコントローラ２４が、どのメモリエリアＩＭ１−ＩＭ３内に書込みを行なうべきかを知るため、メモリコントローラ２４は、ＶＬＤ回路により与えられる４つの画像ポインタＩｍＰｔを以下では使用している。このＶＬＤ回路には画像ヘッダにより与えられる画像タイプのパラメータから画像ポインタを計算するユニットが含まれている。以下に画像の推移の例示と画像ポインタを計算する方法を記載する。
【００５１】
バスＣＤｉｎに到達する圧縮画像の次の推移を検討する：
Ｉ０，Ｐ１，Ｂ２，Ｂ３，Ｐ４，Ｂ５，Ｂ６
ここに文字Ｉ，Ｐ及びＢはそれぞれ内部画像、予測画像、及び双方向予測画像を示している。ＭＰＥＧ標準によれば、双方向予測画像は他の画像を計算するのに使用できない。このように、画像Ｐ１の再生には画像Ｉ０が必要であり、画像Ｂ２及びＢ３の再生には画像Ｉ０及びＰ１が、画像Ｐ４の再生には画像Ｐ１が、更に画像Ｂ５及びＢ６の再生には画像Ｐ４及びＰ１が必要である。
【００５２】
これらの画像は次の順序でディスプレイされる：
Ｉ０，Ｂ２，Ｂ３，Ｐ１，Ｂ５，Ｐ４，Ｂ６
これは予測画像Ｐがディスプレイの順序に従い以前の画像から再生されるため、更に双方向予測画像Ｂがディスプレイの順序に従い一方は以前の画像で他方は以後の画像である２つの画像から再生されるためである。
【００５３】
メモリコントローラ２４がアクセスする必要のあるメモリエリアＩＭ１−ＩＭ３を決定するために、４つの画像ポインタＲＰ，ＦＰ，ＢＰ及びＤＰが使用され、それぞれ現在の再生画像、前（前方）の画像、後（後方）の画像及び現在のディスプレイ画像の位置を示している。次の表には前述の推移の復号の間の画像ポインタの値をまとめてある。
【００５４】
【表１】
0003687107.tif 000002
【００５５】
最初の画像Ｉ０が復号される時、画像はまだディスプレイされない。再生画像ポインタＲＰは画像Ｉ０を記憶するため空きエリア、例えばエリアＩＭ１を示している。
【００５６】
画像Ｐ１が復号化されると、画像Ｉ０は必ずディスプレイされる。再生画像ポインタＲＰは例えばエリアＩＭ２を示しており、更にディスプレイ画像ポインタＤＰは画像Ｉ０があるエリアＩＭ１を示している。予測画像Ｐ１には再生時に前方画像Ｉ０が必要であるので、前方画像ポインタＦＰもエリアＩＭ１を示している。
【００５７】
双方向予測画像Ｂ２が復号されると、この画像Ｂ２はまた、ディスプレイされる画像である。再生画像ポインタＲＰとディスプレイ画像ポインタＤＰの両方はまだフリーなエリアＩＭ３を示している。復号化において、画像Ｂ２には前方画像Ｉ０及び後方画像Ｐ１が必要である；前方画像ポインタＦＰと後方画像ポインタＢＰはそれぞれエリアＩＭ１及びＩＭ２を示している。
【００５８】
復号化される時画像をディスプレイすることができるようにするため、実際のディスプレイは一般にほぼ２分の１画像だけ遅延される；エリアＩＭ３は画像Ｂ２がディスプレイを始める際には十分満たされている。
【００５９】
画像Ｂ３が復号化されると、その画像はまたディスプレイされる。画像Ｂ３には復号化の時画像Ｉ０とＰ１が必要なので、画像Ｉ０とＰ１は前方画像ＦＰ及び後方画像ＢＰポインタによりまだ示されているエリアＩＭ１とＩＭ２内に記憶されたままである。画像Ｂ３のみがエリアＩＭ３内に記憶される、すなわち再生画像ポインタＲＰとディスプレイ画像ポインタＤＰにより示される。
【００６０】
しかし、画像Ｂ３がエリアＩＭ３内で再生され始める時、やはりエリアＩＭ３に記憶されている画像Ｂ２がディスプレイされている。ディスプレイされる画像Ｂ２が再生される画像Ｂ３により重ね書きされそうになると、画像Ｂ３のデータを与えているＶＬＤ回路は停止する。前述のシークエンサ２８の役目は、復号化されたマクロブロックの数がディスプレイされた画像部分より大きい画像部分に相当する場合、イネーブル信号ＥＮを無能にすることによりＶＬＤ回路を停止させることである。この画像部分の大きさは水平同期パルスＨＳＹＮＣの数を数えることにより決定され、復号化されたマクロブロックの数はマクロブロック同期パルスＭＢＳの数を数えることにより決定される。
【００６１】
画像Ｐ４が復号化される時、画像Ｐ１がディスプレイされなければならない。画像Ｐ４はその際フリーであるエリアＩＭ１内に記憶される；再生画像ポインタＲＰはエリアＩＭ１を示す。；ディスプレイ画像ポインタＤＰは画像Ｐ１が記憶されるエリアＩＭ２を示す。画像Ｐ４には復号化の時前方画像Ｐ１が必要である。；前方画像ポインタＦＰはエリアＩＭ２を示す。
【００６２】
画像Ｂ５が復号化される時、この画像はまたディスプレイされなければならない。画像Ｂ５はフリーであるエリアＩＭ３内に記憶される；再生画像ポインタＲＰとディスプレイ画像ポインタＤＰはエリアＩＭ３を示している。画像Ｂ５には前方画像Ｐ１と既に復号化された後方画像Ｐ４が必要である；前方画像ポインタＦＰと後方画像ポインタＢＰはそれぞれエリアＩＭ２とＩＭ１を示している、等々。
【００６３】
−ＭＰＥＧ復号器の動作−
図４は図３のシステムの動作の代表例を概略的に示すタイミングダイアグラムである。図４は上から下に向かって優先度の減少に従い、システムの種々の処理用エレメントのリクエスト信号ＲＱと対応するアクノレッジ信号ＡＣＫとを示している。ハッチ部分はメモリバスＭＢＵＳ上及びパラメータバスＶＬＤＢＵＳ上の動作を示している。
【００６４】
リクエストとアクノレッジ信号ＲＱＶＩＤ，ＡＣＫＶＩＤの第１の組はディスプレイコントローラ１８のＦＩＦＯ２２に対応している。信号ＲＱＣＤ，ＡＣＫＣＤの第２の組は圧縮データ入力バスＣＤｉｎのＦＩＦＯ２０に対応している。信号ＲＱＶＬＤ，ＡＣＫＶＬＤの組はＶＬＤ回路１０のＦＩＦＯ２１に対応している。
【００６５】
信号ＲＱＦＩＬＴ（１），ＡＣＫＦＩＬＴ（１）の組は半画素フィルタ１４により形成される６つのリクエストの１つに対応している。組ＲＱＳＵＭ，ＡＣＫＳＵＭは再生マクロブロックを与えるＦＩＦＯ２６に対応している。図４には更に次の波形も示している。；信号ＦＩＬＴＲＤＹの波形で、この信号は半画素フィルタ１４がデータを供給できる状態にあることを加算器１６に示している。；信号ＤＣＴＲＤＹの波形で、この信号はＤＣＴ−１回路１３がデータを供給できる状態にあることを加算器１６に示している。；更に信号ＳＵＭＥＮの波形で、この信号はＦＩＦＯ２６内に加算器１６により与えられた和をスタックすることをイネーブルとする。ハーフ画素フィルタ１４によりメモリコントローラ２４及びシークエンサ２８に加えられるマクロブロック同期信号ＭＢＳも示してある。
【００６６】
図４はメモリバスＭＢＵＳが６４−ｂｉｔデータバスを含みＦＩＦＯの大きさが２パケットのデータであり、１パケットのデータはマクロブロックの大きさに対応している例について記載している。バスＭＢＵＳの上に書込みを行うＦＩＦＯ（２０，２６）は、その内容が容量の半分を越える時リクエストを発生し、バスの上で読み込みを行うＦＩＦＯ（フィルタ１４の２１，２２）はその内容が容量の半分より小さい時リクエストを発生する。
【００６７】
時間ｔ０でリクエストＲＱＶＩＤ，ＲＱＣＤ及びＲＱＶＬＤが発生する；ＦＩＦＯ２２，２０及び２１は事実上空になる。リクエストＲＱＶＩＤは優先度が高いので、時間ｔ０のすぐ後信号ＡＣＫＶＩＤによりアクノレッジが出される。信号ＡＣＫＶＩＤがアクティブの時、メモリコントローラ２４は、メモリ１５の適当なエリア内（ディスプレイ画像ポインタＤＰにより表示されたエリア内）でディスプレイされる画素を読み出し、この画素をＦＩＦＯ２２内にスタックする。ＦＩＦＯ２２の内容が容量の半分を越える時、リクエストＲＱＶＩＤは無能にされる。しかし、ディスプレイコントローラ１８により使用可能な所定の大きさのフルパケットが転送されないかぎり、タスクは継続する（信号ＡＣＫＶＩＤはアクティブのままである）。（実際、以下で分かるようにシステムの有効性を改善するため、転送タスクは幾つかの非割り込み転送サブタスクに分割される）
【００６８】
メモリ１５にはマクロブロックの順序で記録される画像が含まれている。これらの画像はラインの順序でディスプレイコントローラ１８に与えられる必要がある。従って、メモリコントローラ２４の転送タスクは、ラインの順序でデータを読み出すために適当なアドレスを計算することでもある。
【００６９】
時間ｔ１で、アクノレッジ信号ＡＣＫＶＩＤが無能にされた直後、リクエストＲＱＣＤは信号ＡＣＫＣＤを送出することによりアクノレッジされる。メモリコントローラ２４は、ＦＩＦＯ２０の圧縮データをメモリ１５のエリアＣＤに転送する。ＦＩＦＯ２０の内容が容量の半分より小さい時、リクエストＲＱＣＤは無能にされるが、前述のようにデータの転送はデータのフルパケットが転送されるまで続く。圧縮データは到着の順序でメモリ１５に書込まれる。
【００７０】
時間ｔ２でアクノレッジ信号ＡＣＫＣＤが無能にされた直後、リクエストＲＱＶＬＤは信号ＡＣＫＶＬＤの送出によりアクノレッジされる。メモリコントローラ２４は、その後書込まれた順序で圧縮データをメモリ１５からＦＩＦＯ２１に転送する。ＦＩＦＯ２１の内容が容量の半分より大きい時、リクエストＲＱＶＬＤは無能にされるが、転送はデータのフルパケットが転送されるまで続く。
【００７１】
次にＶＬＤ回路は、アンスタック（ｕｎｓｔａｃｋ）を開始しＦＩＦＯ２１に含まれたデータの処理を開始する。時間ｔ３で、ＶＬＤ回路はマクロブロックヘッダを復号し、バスＶＬＤＢＵＳを介して復号化されたパラメータをこれらを必要とするエレメントに与える。特に、マクロブロックタイプは半画素フィルタ１４に供給され、量子化スケールは逆量子化回路１２に供給され、ベクトルは半画素フィルタ１４と同じくメモリコントローラ２４に供給される。
【００７２】
時間ｔ４で、全てのパラメータが供給され、ＶＬＤ回路は復号化される画像データをＲＬＤ回路１１に供給し始める。これがマクロブロックタイプとベクトルを受け取ると直ちに、フィルタ１４は予測マクロブロックを受け取れる状態となる。フィルタ１４は、受け取ったマクロブロックタイプに従い１つのＲＱＦＩＬＴリクエストを送出する。フィルタ１４は、３個のリクエストラインＲＱＦＩＬＴに関する６個の異なるリクエストまで送出できるが、これらの異なるリクエストはマクロブロックの６個の異なるタイプに対応している（内部、予測、双方向予測；それぞれのマクロブロックはインターレース的又はプログレッシブ的である）。この例において、リクエストＲＱＦＩＬＴ（１）はプログレッシブ的な予測マクロブロックに対応している。
【００７３】
優先度の高いリクエストは全てアクティブでないので、リクエストＲＱＦＩＬＴ（１）は信号ＡＣＫＦＩＬＴ（１）を送出することによりアクノレッジされる。同期信号ＭＢＳはフィルタリクエストがアクティブにされる際にパルス化されるが、これにより、前述の理由からシークエンサ２８はマクロブロックのカウンタを増分させ、更にメモリコントローラ２４はＶＬＤ回路を通して受けた１以上のベクトルを有効にする。
【００７４】
このように、時間ｔ４の直後にアクノレッジ信号ＡＣＫＦＩＬＴ（１）が発生され、予測マクロブロックのフィルタ１４への転送がメモリ１５の適当なエリアから始まる（前方の画像ポインタＦＰにより示されている）。フィルタ１４には２つのＦＩＦＯがある。；一方のＦＩＦＯは（前方の画像の）前方マクロブロックを受けるようにされている。；他のＦＩＦＯは（後方の画像の）後方マクロブロックを受けるようにされている。この例では、メモリコントローラ２４は予測マクロブロックに対応したリクエストを受けフィルタ１４の前方マクロブロックＦＩＦＯを選択するアクノレッジ信号ＡＣＫＦＩＬＴ（１）を発生する。メモリコントローラ２４が受けたフィルタリクエストに左右されるので、フィルタ１４内で前方マクロブロックＦＩＦＯ、後方マクロブロックＦＩＦＯを選択し、又はアクティブでない状態を続けることをメモリコントローラ２４に示すため３つのアクノレッジの１つが発生する（内部マクロブロック）。
【００７５】
データがバスＭＢＵＳの６４ｂｉｔｓで転送され、更にマクロブロックが１６×１６画素の画像の一部に対応していれば、４：２：０のフォーマットマクロブロック（図２ｂ）の転送が、簡単な場合図４の１から３の番号の３つの段階で行なわれる。輝度とクロミナンス画素が８ｂｉｔｓでコード化されている。従って、バスＭＢＵＳ上で転送された１つのワードは８画素に対応している。各々の転送段階は順次２つの輝度ブロックＹ１とＹ２、２つの輝度ブロックＹ３とＹ４、更に２つのクロミナンスブロックＵとＶを転送するため１６サイクルで行なわれる。フィルタ１４のＦＩＦＯの容量は４つの８×８画素ブロックである。フィルタ１４は当該ＦＩＦＯの内容が容量の半分より小さい時６個のリクエストの１個を発生する。
【００７６】
実際には、図４には記載していないが、フィルタに加えられる予測マクロブロックには１７×１７画素の輝度ブロック（Ｙ１−Ｙ４）と、９×１８画素のクロミナンスブロックＵとＶとが含まれている。更に転送される一組のブロック（Ｙ１，Ｙ２，Ｙ３，Ｙ４；Ｕ，Ｖ）は必ずしもバスＭＢＵＳの６４データビットで“配列”されないが、これには輝度ブロック（大きさが１３６ビット）が１７読み出しサイクルの３つの段階で転送される必要があることと、クロミナンスブロック（大きさが７６ビット）が１８回の読み出しサイクルの２つの段階で転送される必要があることが含まれている。実際、輝度ブロックの画素の各ラインがバスＭＢＵＳを通してアクセス可能な３つの６４ビットワードとオーバーラップしており、クロミナンスブロックの各ラインは２つの６４ビットワードとオーバーラップしている。フィルタ１４は蓄積されたデータから輝度及びクロミナンスブロックを取り出す必要がある。
【００７７】
簡単な例の一番目の転送段階１の始めに、フィルタ１４の当該ＦＩＦＯは空である。段階１の終わりにブロックＹ１とＹ２は完全に転送されるが、フィルタ１４はＦＩＦＯを空にし始める；リクエストＲＱＦＩＬＴ（１）はアクティブのままであり、転送段階２がすぐに開始する。段階２の間、ＦＩＦＯは半分の状態まで達する；リクエストＲＱＦＩＬＴ（１）は無能になるが、転送段階はブロックＹ３とＹ４が完全に転送するまで継続する。
【００７８】
フィルタ１４は、第１のブロックＹ１とＹ２を受けると直ちに、フィルタリングされたデータを加算器１６に供給できる状態となる。フィルタ１４は、この状態を加算器１６に知らせるため（図３のハンドシェイクＨＳ１の）ラインＦＩＬＴＲＤＹをアクティブにする。加算器１６は、ハンドシェイクＨＳ１の他の信号（図示していない）を通してデータを受け取れる状態でないことを答えるが、これはＤＣＴ−１回路がまだデータを供給できる状態にないからであり、これは信号ＦＩＬＴＲＤＹがイネーブルの際にアクティブでない信号ＤＣＴＲＤＹにより示されている。
【００７９】
時間ｔ６で、ＤＣＴ−１回路は、時間ｔ４からＲＬＤ回路１１に導入されたデータの供給を開始することが可能となる。ハンドシェイクＨＳ２の信号ＤＣＴＲＤＹはイネーブルにされ、加算器１６はフィルタ１４とＤＣＴ−１回路とに加算開始の許可を示す信号ＳＵＭＥＮをイネーブルにする。加算の結果はＦＩＦＯ２６にスタックされる。
【００８０】
時間ｔ９で、ＦＩＦＯ２６は半分満たされリクエストＲＱＳＵＭを送出する。このリクエストは優先度が一番低いが、他のリクエストがアクティブでないのでアクノレッジ信号ＡＣＫＳＵＭがアクティブになることにより直後にアクノレッジされる。次に、（再生画像ポインタＲＰにより示されている）メモリ１５の適切なエリアへの、再生されたマクロブロックであるブロックＹ１及びＹ２の転送段階１を開始する。リクエストＲＱＳＵＭはブロックＹ１とＹ２の転送の間無能にされるが、ブロックＹ１とＹ２が完全に転送されるまで転送は継続する。
【００８１】
時間ｔ１０で、ＦＩＦＯ２６は再び半分まで満たされ再生マクロブロックのブロックＹ３とＹ４を転送する段階２が開始する、等々。
【００８２】
前述の記載は、図３のシステムで行なわれるメインタスクの非常に簡単な連鎖に関している。実際には、多くのタスクはより高い優先度を有したタスクによりランダムに割込まれる。
【００８３】
例えば時間ｔ５で、時間ｔ６の前に、リクエストＲＱＣＤがＦＩＦＯ２０に含まれる圧縮データをメモリ１５に転送するため再びイネーブルにされる。
【００８４】
時間ｔ７で、フィルタにより処理される予測マクロブロックからクロミナンスブロックＵとＶを受けるため、フィルタ１４はリクエストＲＱＦＩＬＴ（１）を発生する。このリクエストは、アクノレッジ信号ＡＣＫＦＩＬＴ（１）が無能にされる時、即ち圧縮データのパケットの全てがＦＩＦＯ２０からメモリ１５に転送される時のみ、アクノレッジ信号ＡＣＫＦＩＬＴ（１）によりアクノレッジが行なわれる。ブロックＵとＶは次にフィルタ１４への転送を開始するが、これは前述の三番目の段階に相当する。
【００８５】
時間ｔ８では、リクエストＲＱＦＩＬＴ（１）はまだアクティブであるが、より高い優先度を有するリクエストＲＱＶＬＤが発生する。しかし、マクロブロックの２つのブロック（この場合ＵとＶ）の転送は割り込みできない基本的なタスクである。このように、信号ＡＣＫＶＬＤをイネーブルにすることにより信号ＲＱＶＬＤのアクノレッジを行なう前には、このシステムはリクエストＡＣＫＦＩＬＴ（１）が無能にされるまで待機する。
【００８６】
幾つかのタスクはより高い優先度を有したタスクによりいつでも割り込まれるので、これらのタスクは周期的な連鎖をしていない。種々の復号化パラメータ（ベクトル、画像タイプ…）が予知できない時間にこれらのパラメータを要求する回路に到達する。適当な時間でパラメータを検討するための回路をイネーブルにするため、各回路にはレジスタがあり、このレジスタ内でパラメータが到達した時スタックされる；その後、パラメータは使用される時同期信号により順にアンスタックされる、すなわち有効にされる。これを行なうため、同期信号ＭＢＳ，ＩＳＹＮＣ及びＶＳＹＮＣが与えられている。
【００８７】
信号ＭＢＳは、例えば予測マクロブロックを処理するため必要なパラメータを受ける時、フィルタ１４によりアクティブにされるマクロブロック同期信号である。信号ＭＢＳはメモリコントローラ２４に与えられるが、これはフィルタ１４に加えられる１以上の予測マクロブロックを取り出すベクトルを適当な時間に有効にするためである。
【００８８】
ＶＬＤ回路が画像の終わり（ＥＯＰ）を検知する時、及びディスプレイ垂直同期信号がイネーブルの時アクティブにされる信号ＩＳＹＮＣはメモリコントローラＭＣＵ内で適当な時間に一組の画像ポインタＩｍＰｔを有効にする。信号ＩＳＹＮＣもメモリコントローラの計算レジスタをリセットするが、このレジスタはメモリ１５内に記憶されたデータのアドレスを計算するために使用される。
【００８９】
図３のシステムに使用されるメモリコントローラは以下に詳細を記載する特別な利点を有する処理装置である。実際には、従来の処理装置はバスを通してのみ通信している；バス以外の他の方法ではパラメータを受信するようにされていない。更に、従来の処理装置ではリクエストは割り込みリクエストに相当しており、アクノレッジはリクエストを発生した装置（ＦＩＦＯ）の読み出し又は書き込み動作に相当している。
【００９０】
従来の処理装置を使用することも勿論可能である。この場合、画像ポインタＩｍＰｔ及びベクトルはメモリバスに接続されているＦＩＦＯにスタックされる。従って、信号ＭＢＳとＩＳＹＮＣは優先度の一番高い割り込みリクエストに対応しているが、これは処理装置がパラメータを読み出し内部ワークレジスタに書き込みができるようにするためである。
【００９１】
−メモリコントローラ−
図５には特別な利点を有する処理装置に基づくこの発明によるメモリコントローラの実施態様を示している。この処理装置を記載する前に、従来の処理装置の構造を以下に記載するが、これはこの発明による処理装置の利点を強調するためとその構造をより理解しやすくするためである。
【００９２】
従来の処理装置には、より一般的に算術論理演算装置（ＡＬＵ）と呼ばれる処理装置が含まれている。このＡＬＵは先ずシステムバスを通しＲＯＭ又はＲＡＭに記憶されている命令を受ける、即ちロードし、次にこの命令を実行する。この命令の実行により一般に転送されるデータがシステム上の２つのメモリロケーションの間、即ちメモリと処理装置のレジスタとの間に生ずる。
【００９３】
従来の処理装置では、命令が取り出されるアドレスは単一の命令ポインタの中に含まれている。処理装置が多数の同時のタスクを実施する必要があれば、リクエストはそれぞれのタスクに関連している。リクエストが処理装置に到達すると、割り込みが行なわれ新しいタスクに関連した新しいプログラムが実行される。あるタスクから他のタスクへの切り換えを可能にするため、所謂“コンテクストセーブアンドリストア（ｃｏｎｔｅｘｔ  ｓａｖｅ  ａｎｄ  ｒｅｓｔｏｒｅ）”手順が使用される。この手順にはプログラムに実行が割込まれる時、及びその後続けられる時、それぞれ命令ポインタの内容をセーブ及びリストアすることから成る。この手順では特に命令サイクルにおいて時間が消費されタスクの実行速度が制限される。
【００９４】
図５では、これに対しこの発明に基づくメモリコントローラ２４に多数の命令ポンイタＩＰ１，ＩＰ２…ＩＰｎが含まれているが、各々の命令ポインタは、メモリバスＭＢＵＳ上でのデータ転送のタスクに対応している。これらのポインタは、命令プロセッサ５０によって取り出される命令アドレスの内容を供給する個々のイネーブルラインＥＮ１−ＥＮｎによって、一度に１つづつイネーブルされる。イネーブルラインＥＮは、バスＲＱ／ＡＣＫのリクエストラインＲＱを受けるプライオリティ復号器５２により制御されている。それぞれのリクエストラインＲＱにはプライオリティレベルが割り当てられている。同じプライオリティレベルを数個のタスクに割り当てることも可能である。従って、例えば異なるプライオリティレベルをこれらのタスクに内部で割り当てることにより、更に１つの命令又は命令のグループが実行される毎にこれらのレベルを循環的にシフトさせることにより、復号器５２は一度に１つのポインタＩＰのみをイネーブルにする必要がある。これにより同一のプライオリティレベルを有するタスクは、実際にはシフトさせられた異なるレベルを有すると言うことができる。
【００９５】
ＦＩＦＯがリクエストを発生すると、メモリバスを通してデータを受け又は与える準備が行なわれる。リクエストのアクノレッジはリクエストが無くなるまで当該ＦＩＦＯにデータを書き込み又は読み出すことから成り、書き込み又は読み出しサイクルはＦＩＦＯに特有なアドレスでメモリバスＭＢＵＳを通して行なわれる。より好都合なアクノレッジのシステムを後に記載する。
【００９６】
更に、メモリコントローラにより必ず実行されるタスクは予め定義されているので、これらのタスクに対応するプログラムはメモリバスＭＢＵＳに独立な非揮発性命令メモリ（ＲＯＭ）５４に記録されている。イネーブル命令ポインタＩＰi の内容はＲＯＭ５４のアドレス入力に加えられている。ＡＬＵ５０はメモリバスＭＢＵＳに連結されこのバスの上にデータを転送するが、ＲＯＭから命令を直接受けるため従来のＡＬＵと比較して変形されている。従来の処理装置のこの種の変形は当業者により容易に行なうことができる。
【００９７】
従来の処理装置には同じバスに接続されている命令レジスタとワークレジスタが含まれている。命令がロードされるとこの命令が命令レジスタ内に書込まれ、この命令が実行されると動作がバスとワークレジスタの間で生ずる。
【００９８】
この発明によれば、命令レジスタをメモリバスＭＵＢＳに接続する代わり、この命令レジスタ（図示していない）がＲＯＭ５４の出力に接続されている。このような構成により、ＡＬＵ５０内にロードされるとすぐ実行される。従って、実行される命令と同じ数の読み出しサイクルが節約される。これは時間が大幅に省略されることを示している。
【００９９】
−メモリコントローラの動作−
電源が投入されると、レジスタである各命令ポインタＩＰｉ（ｉ＝１，２…ｎ）が、関連するプログラムのスタートアドレスに対応したスタート値ＩＰｉ０に初期化される。これらのスタートアドレスは、命令ポインタであるレジスタのプレチャージ（ｐｒｅｃｈａｒｇｅ）入力に存在するハードワイヤードデータに対応している。各プログラムに関連するプライオリティレベルは、プライオリティ復号器により決定されるが、この復号器によりプライオリティレベルとしてプログラムに、例えば関連した命令ポインタのランクが割り当てられる。
【０１００】
システムに電源が投入されると、リクエストがラインＲＱ上に現われる。プライオリティ復号器は、一番高いプライオリティを有したリクエストに関連する命令ポインタＩＰをイネーブルにする。命令プロセッサ５０は、イネーブルされた命令（インストラクション）ポインタにより示されたアドレスに位置している命令をロードし、この命令を実行する。命令が実行されると、増分（インクレメンテーション）回路５６はイネーブルされた命令ポインタを増分するが、このポインタは次に命令プロセッサＡＬＵにより実行されるべき次の命令のアドレスを与える。増加回路５６はイネーブルされたポインタ上でのみ動作し、他のポインタの内容は変更されない。増加回路５６の表示（＋１）はシンボル記号である。；実行される命令は、例えば命令が異なる長さを有する時、又はジャンプ或いはサブプログラムコール命令が実行される時、必ずしも連続したアドレスに位置していない。この場合、イネーブルされた命令ポインタは、従来の処理装置で知られているように適当な値だけ増分又は減分される。
【０１０１】
以下では、命令ポインタＩＰのランク（ｉ）が、関連するプログラム（又はタスク）及びリクエストを示すため使用されている。
【０１０２】
プログラムｉ−１の優先度より高い優先度を有するリクエストｉが発生した場合、プログラムｉ−１の現在の分割できない命令グループが実行された直後に、復号器５２はポインタＩＰｉ−１の代わりに命令ポインタＩＰｉをイネーブルにする。リクエストｉは、関係のあるアクノレッジラインＡＣＫにより同時にアクノレッジされる。新しいイネーブルされたポインタＩＰｉにより指示された命令は、命令プロセッサＡＬＵ５０内にロードされ時間のロスを伴わないで実行される。即ち新しい命令は、プログラムｉ−１の次の命令が実行されたであろう時に同時に実行される。
【０１０３】
プライオリティ（優先）リクエストｉが無能にされると、復号器５２は優先度の最大の新しいタスクに対応した命令ポインタをイネーブルにするが、この優先度の最大のタスクは、タスクｉ又は新しいタスクにより中断させられたタスクであり得る。関連したプログラムは、中断された点から、又はまだスタートしていなかったタスクに対応したプログラムであればその最初から実行される。
【０１０４】
この種のシステムでは、あるタスクから他のタスクへの切り換えは、コンテクストセーブアンドリストアを実行するため従来のシステムに必要であるデッドタイムを発生することなく行なわれる。
【０１０５】
画像処理システムにおいて、データ転送タスクに関連するプログラムは、エンドレスループ内で実行されるように設計されている。従って、この種のプログラムの最後の命令は、プログラムの最初の命令へのジャンプである。このジャンプは、従来通り増分回路５６により管理されている。この発明による制御ループに対する最適な方法を後に記載する。
【０１０６】
前述のように、現在のタスクの優先度より高い優先度のリクエストを送出する代わりに、現在の命令のグループの実行（データのパケット全体の転送）を終えることが望ましい。従来の処理装置では、特別な命令が、命令リクエストの提供をイネーブルにすること及び無能にすることを許可している。しかし、この発明による処理装置では従来の割り込みシステムが使用できないので、このような特別の命令は適していない。
【０１０７】
この問題を解決するため、この発明では各々の命令ＩをプリフィックスＩ１とコマンドＩ２とに分割している。プリフィックスＩ１はプリフィックス復号器５８に与えられ、従来の命令に対応したコマンドＩ２は、命令プロセッサＡＬＵ５０に与えられている。プリフィックスＩ１は、関連した命令が実行された際、現在のプログラムが中断されるか又はされないかを示す。
【０１０８】
プリフィックス復号器５８はプライオリティ復号器５２に信号ＮＥＸＴＥＮを与えているが、この信号は、プリフィックスが特定の値であれば、たとえ現在のプログラムの優先度より高い優先度のリクエストが発生しても、新しい命令ポインタのイネーブルを禁止する。
【０１０９】
−メモリコントローラの最適化−
命令のプリフィックスＩ１は、好ましくは、適当なビット数により、現在のプログラムが現在の命令の後に中断可能か否かを、更に現在の命令を所定の回数だけ実行する必要があることを示す。プリフィックスＩ１により更に現在の命令がプログラムの最後の命令であるか否かを示すこともできる（この可能性の利用は後に示す）。
【０１１０】
プリフィックス復号器５８は、プリフィックスＩ１により決定されるサイクルの数において初期化される、命令サイクルのダウンカウンタを備えている。この数は、プリフィックス復号器内に記憶された幾つかの定数の中から選択された数、即ち命令プロセッサＡＬＵ５０により与えられる数Ｎである。このようなループ命令が実行されると、プリフィックス復号器５８は、命令サイクルが所要の数の間、増分回路５６を禁止する。この結果ロードされた命令は所望の回数だけ実行される。
【０１１１】
この方法は、実行される各ループに対するジャンプ命令を使用しない。これにより１つの命令だけが連続的に数回実行されることになっている場合、大幅に時間の節約ができる。このようなループ命令は、データがパケットにより転送されることになっている時特に有益であるが、これはこのシステムにおける１つのケースである。
【０１１２】
現在実行されている命令が最後の１つであることをプリフィックスＩ１が示している場合、この命令が実行されるとすぐに、復号器５８は信号ＩＮＩＴを一組の命令ポインタＩＰに与える。これによりプログラムスタートアドレスにおいてのみイネーブルされたポインタの初期化が行なわれる。
【０１１３】
このようなシステムでは、幾つかの場合、処理装置の命令セットはジャンプ命令を含まないセットに限定可能となる。これにより処理装置、より詳細には増分回路が大幅に簡単になる。
【０１１４】
この処理システムにおいては、データの処理は特別な回路により行なわれる。メモリコントローラのみがメモリバスＭＢＵＳを通してデータを転送し、画像メモリ１５内で適当なデータアドレスを計算する。
【０１１５】
各々のＦＩＦＯはメモリバスＭＢＵＳの上にその内容を与え、又はアクノレッジ信号ＡＣＫを受けた際にメモリバスＭＢＵＳの上にあるデータを受け取る。この信号ＡＣＫは、命令Ｉのそれぞれから追加的なフィールドＩ３を受け取るアクノレッジ回路５９により与えられる。この構成により、ＦＩＦＯとメモリバスＭＢＵＳに接続された他の読み出し又は書き込み専用装置とが、メモリバス上にアドレスを送出することなく、実行中の命令（より正確にはフィールドＩ３）により直接選択される。これにより画像メモリ内に読み出されるデータが書き込み専用装置に直接書き込まれ、更に読み出し専用装置に読み出されるデータが画像メモリ内に直接書込まれるが、これは書き込みサイクルを後に伴う読み出しサイクルを実施する必要性を生ずることなく行なわれている。アクノレッジ回路５９は必要があれば、復号器及び／又はアクノレッジを適切にフォーマットする回路であってもよい（例えばＦＩＦＯメモリにより読み出される前に、バス上にデータを提供する時間を画像メモリに与えるためアクノレッジ信号を遅延させる必要がある）。
【０１１６】
前に示したように、リクエストの内容が内容の最小値より小さい時、例えばＦＩＦＯサイズの半分に等しい時書き込み専用ＦＩＦＯはリクエストを発生する。書き込み専用ＦＩＦＯが有するタスクはデータのパケットを画像メモリからＦＩＦＯに転送することから成るが、このデータのパケットの大きさは固定されており、例えばＦＩＦＯの大きさの半分に等しい。
【０１１７】
このような転送動作は前述のように、画像メモリ呼び出し命令のループ化された実行から成るが、このループの数は読み出し命令のプリフィックスＩ１により決定されている。読み出し命令のそれぞれの実行の毎に、画像メモリはＦＩＦＯにすぐ転送されるデータをメモリバスの上で与える。
【０１１８】
読み出し専用ＦＩＦＯは内蔵された多数のデータが内容の最大値、例えばＦＩＦＯの大きさの半分に等しい値を越える時、リクエストを発生する。ＦＩＦＯが有するタスクはデータのパケットによりＦＩＦＯの内容を画像メモリに転送することから成る。パケットのそれぞれには例えばＦＩＦＯの大きさの半分に等しい一定数のデータが入っている。
【０１１９】
このような転送動作は画像メモリ書込み命令のループ化された実行から成るが、ループの数は書込み命令のプリフィックスＩ１により決定される。ＦＩＦＯのアクノレッジ信号がアクティブになると、ＦＩＦＯは書込み命令の実行速度でバスの上にデータを与える。このようにＦＩＦＯによりバスの上に与えられるそれぞれのデータは画像メモリにすぐ書込まれる。
【０１２０】
画像メモリ内のどの位置からデータパケットが転送されるかを知るため、例えば画像メモリ内に記憶されたデータのポインタを更新することができる。ＡＬＵにはアドレスレジスタＡＲがあるが、このアドレスで転送（読み出し又は書込み）動作が行なわれる。データのパケットの転送プログラムの始めにはこのアドレスレジスタＡＲ内にデータポイントの内容を書込む命令が含まれている。プログラムのその後の命令は読み出し又は書込み命令においてアドレスレジスタの内容を適当に変更する命令である。この適当な変更は増加（この量は画像メモリ内の連続したアドレスでデータを書込むこと、又は読み出すことに相当する）であり、より複雑な計算（例えば一連のマクロブロックから画像ラインを取り出す再帰計算）である。
【０１２１】
しかし、転送命令の各実行においてアドレスレジスタＡＲを変更する命令の実行には転送命令の前後に命令が挿入されることが必要であるが、この命令は転送命令と同じループで実行される。この方法は現在の命令のみがループ化されることを示すプリフィックスＩ１を使用することにより与えられる利点とは両立しない。
【０１２２】
この欠点を避け更にシステムのスピードを上げるため、命令プロセッサＡＬＵは、ハードウエアによって所定数の所定のアドレス計算機能を実行するアドレス計算ユニット５０−１を備えている。計算ユニットのそれぞれの計算機能は、命令Ｉの追加フィールドＩ４により選択される（フィールドＩ４はまた、アクノレッジフィールドＩ３に相当することも可能である）。このように、実行される各命令に対して特定のアドレス計算回路が選択される。それぞれのハードワイヤード回路は、命令サイクルに同期してレジスタＡＲの状態を変更するように設計されている。
【０１２３】
この構成により、単独の読み出し又は書込み命令のループ状の実行が可能となるが、この読み出し又は書込み動作は、命令に関連したハードワイヤード回路により各ループで自動的に適切に更新され、レジスタＡＲに収納されているアドレスにおいて行われる。
【０１２４】
既に述べたように、メモリバスＭＢＵＳに接続されたＦＩＦＯ内に動き補償ベクトルと画像ポインタを記憶させる代わり、これらのパラメータは計算ユニット５０−１のレジスタ５０−２内にスタックされる。それぞれの画像同期パルスＩＳＹＮＣにおいて、計算ユニット５０−１により新しい組の画像ポインタが検討され、更にアドレスレジスタＡＲが初期化されるようにレジスタ５０−２の内容がシフトされる。それぞれのマスクブロック同期パルスＭＢＳにおいて、計算ユニット５０−１が新しいベクトルを検討するようにレジスタの内容がシフトされる。
【０１２５】
以下では、ＦＩＦＯから画像メモリにｎ個のデータのパケットを転送するプログラムを検討する。この転送プログラムは対象とするＦＩＦＯにより与えられるリクエストで初期化されるタスクに相当している。数ｎは対象とするＦＩＦＯがパケットのｎ＋１番目のデータを受けた時リクエストを無能にするように選択されている。
【０１２６】
このようなプログラムは基本的に次の連続的な命令から成る：
（１）現在のタスクの最初の実行の間に使用される最後のアドレスをレジスタＡＲにロードする１つの命令（このアドレスは例えばタスクに割当てられた位置で画像メモリ内に記憶されている）。この命令のプリフィックスＩ１は命令が実行された後タスクが（より高い優先度のタスクにより）中断されないことを示している。フィールドＩ３とＩ４はアクティブでない値を有している。
（２）命令がｎ回実行されタスクが中断されることをプリフィックスＩ１が示す１つの転送命令。フィールドＩ３は使用されるＦＩＦＯを選択し、フィールドＩ４は使用されるハードワイヤードアドレス計算回路を選択する。
（３）レジスタＡＲの内容をセーブする１つの命令で、そのプリフィックスＩ１はプログラムの実行が一番目の命令から再開されることとタスクが中断されることを示している。フィールドＩ３とＩ４にはアクティブでない値が含まれている。
【０１２７】
このようなタスクはプログラムの最後の命令（これはタスクの休止を認める命令である）の場合で、即ちデータの全てのパケットが転送される時より高い優先度のタスクに制御を移す。パケット内のデータの数ｎが高ければ、より高い優先度のタスクにしばしば制御を移す必要がある。
【０１２８】
これを行なうため、一番目のアプローチはｎ個のパケットをｎ１…ｎｉ…ｎｐから成るｐ個のサブパケットに分割すること、及びｎ１…ｎｉ…ｎｐのデータのｐ個の連続した転送サブプログラムを有する転送プログラムを与えることである。これは３つのサブブロックにマクロブロックを転送する場合を提示している。転送命令がｎ回の代わりｎｉ回実行されること、及びプログラムが最初の命令から再開されることを最後のサブプログラムのセーブＡＲ命令のみが示していることを除くと、各サブプログラムは前述の３つの命令を含んでいる。これにより各サブプログラムの終わりで、即ち多くの場合、（ｎデータの代わりに）ｎｉのデータの転送に対し多くても等しい比較的短い待ち時間の後により高い優先度のタスクに制御が移される。これにより、各サブプログラムで個々のアドレス計算機能も選択され、更に他のタスクに使用されているが複雑な計算機能を簡単なサブプログラムに分割される。
【０１２９】
しかし、このアプローチにはｎｉのデータの２つの転送の間にはセーブ命令の実行とレジスタＡＲの更新命令に実行が必要で、これにより処理が遅くなる。
【０１３０】
二番目のアプローチはこの欠点を回避する。これにはハードワイヤード回路と同じ数のアドレスレジスタＡＲがＡＬＵ内にある。このようにそれぞれの計算機能は自身のアドレスレジスタ上で動作を実施し、更に（内蔵タスクが中断するので）その機能が中断されれば内蔵アドレスレジスタは機能が再度アクティブにされれば継続するアドレスを保持している。これらのアドレスレジスタを更新又はセーブする必要はない。この結果、転送プログラムのみがアドレスレジスタの一番目の更新命令、最後のセーブ命令、更にその間の一連の転送命令から構成されているが、これらの命令のそれぞれはループ内で実行され、転送命令のプリフィックスＩ１はループの数を示している。
【０１３１】
プログラムはループ命令が実行される間中断されてはいけない。このようにするため、ループ命令のフィールドＩ１はプログラムが中断されてはいけないことをアクティブビットにより示している。このアクティブビットは信号ＮＥＸＴＥＮ（現在のプログラムが中断される場合があることを示す役目をする）をアクティブにしないプリフィックス復号器により明らかにされる。
【０１３２】
−画像メモリとしてのダイナミックメモリの使用−
一般的に使用される画像メモリはダイナミックメモリである（ＤＲＡＭ）。ＤＲＡＭの利点はこれらの形が小さく低廉で、記憶容量が大きいことである。しかし、ＤＲＡＭは２つのステップでアクセスされる。実際ＤＲＡＭは幾つかのページに分割される。ＤＲＡＭ内で読み出し又は書込みを行なう前に、ページが特別なアドレスサイクルで選択される必要がある；次にワードは通常の読み出し又は書込みサイクルでこのページ内で選択される必要がある。ページが選択されるとこのページのワードは通常の読み出し又は書込みサイクルにより全てアクセスできることは勿論である。
【０１３３】
ＤＲＡＭの使用を最適にするため、マクロブロックの輝度ブロックは一番目のページに記憶され、クロミナンスブロックは他のページに記憶される。クロミナンスブロックはブロックの全数をＤＲＡＭのページ内に記憶するため輝度ブロックから分離される。処理装置の適当な機能によりマクロブロックの転送の間ブロックの分離及び分類が管理される。
【０１３４】
予測マクロブロックＭＰｐはランダムな動き補償ベクトルにより決定されるので、ＤＲＡＭの幾つかのページをオーバーラップできる。予測器の読み出しは、従ってより複雑である。この場合、選択された計算機能により数Ｎがプリフィックス復号器に与えられるが、この数Ｎはベクトルから計算される。数Ｎは例えば予測器を部分的に含む上側のページ内で予測器の列の画素の高さを示している。予測器の読み出しは、それぞれ完全な画素の列に対し上側のページ内に含まれる列の一番目の部分の画素を読み出すためＮ回読み出し命令を実施し、次に下側のページ内の列の残りの部分を読み出すためＨ−Ｎ回読み出し命令を実施することから成るが（Ｈは列の画素内のトータルの高さ）、このページの変化は２つの読み出しループの間で行なわれる。
【０１３５】
この構成により、予測器は適当な順序で読み出されるが、これにより予測器の画素を再配列するため複雑なアドレス計算機能と、再配列される前に予測器の画素を任意に記憶するバッファとを与える必要性が避けられる。前述のＥＰ−Ａ−０５０３９５６の特許出願においては、ページ内に含まれる部分予測器の全ての画素は、より一層複雑になることを犠牲にしてページの変化の数を最小にするため、他のページに含まれる部分予測器の画素を読み出す前に読み出される。
【０１３６】
この発明によれば、システムが十分早いのでより多くのページの変化を実行できる。更に、ページ変化の数の増加は実際には６４データビットのメモリバスでは１００クロックサイクルあたり約４クロックサイクルである。
【０１３７】
−マイクロプロセッサに関連するＭＰＥＧ復号器−
図６には幾つかのヘッダにより提供されるプライベートデータを使用することに特に適したこの発明に基づくＭＰＥＧ復号器の実施態様を示している。
【０１３８】
ＭＰＥＧ復号器はマイクロプロセッサを含むテレビジョン装置又マイクロコンピュータのような装置に最も多く使用されている。
【０１３９】
図６は、同じ参照番号を付けた図３と同じエレメントを示している。このシステムと図３のシステムの違いは、マイクロプロセッサ６０により制御されているプロセッサバスＰＢＵＳがあることである。マイクロプロセッサ６０は、ＶＬＤ回路１０の幾つかのタスクを実施するようにされている、即ち構成パラメータをディスプレイコントローラ１８に与え、量子化テーブルＱＴａｂを逆量子化回路１２に与え、画像ポインタＩｍＰｔをメモリコントローラ２４に与え、更に（動き補償ベクトルに関する画像タイプ及び復号化情報）ＶＬＤ回路が必要とする復号化パラメータ（“命令”）を与えている。
【０１４０】
更にこのシステムには、２つの追加されたＦＩＦＯがある。このうち１つはメモリ１５内にバスＰＢＵＳからのデータを書込むためのＦＩＦＯ６２であり、他方はバスＰＢＵＳの上にメモリ１５からのデータを書込むためのＦＩＦＯ６４である。ＦＩＦＯ６４の内容は、同期信号ＩＳＹＮＣを受け取りさらに割り込みリクエストＩＲＱをマイクロプロセッサ６０に与えるヘッダ検出器６６によってさらに使用される。
【０１４１】
ＦＩＦＯ６４は、メモリ１５から圧縮データを受ける。ヘッダ検出器６６は、シーケンス及び画像ヘッダを検出し、これらのヘッダの１つが検出された時マイクロプロセッサ６０に割り込みを行なうようにされている。マイクロプロセッサ６０の役目は、その際、ＦＩＦＯ６４内でヘッダを読み出すこと、これらのヘッダのパラメータを取出すこと、量子化テーブルを回路１２に、構成パラメータをディスプレイコントローラ１８に、ＶＬＤ回路に対する命令をシークエンサ２８に与えること、前述の４つの画像ポインタ（ＲＰ，ＦＰ，ＢＰ，ＤＰ）を計算し、更にこれらをメモリコントローラ２４に与えること、である。
【０１４２】
更に、マイクロプロセッサ６０は、オンスクリーンディスプレイデータとプライベートデータをヘッダから取り出す。オンスクリーンディスプレイデータはＦＩＦＯ６２に与えられ、バスＭＢＵＳを通してメモリ１５のエリアＯＳＤに伝えられる。プライベートデータはマイクロプロセッサ６０に内蔵されたメモリ（図示していない）に記憶され、復号システムに対し外部となるエレメントにより使用されている。
【０１４３】
このような構成により、ＶＬＤ回路により実施されるタスクが減少するが、これにより速度が増加し複雑度が減る。勿論、ヘッダを検出する必要があるので、ＶＬＤ回路はシーケンス及び画像ヘッダを検出するが、処理はしない。
【０１４４】
ＦＩＦＯ６２からメモリ１５への転送と、メモリ１５からＦＩＦＯ６４への転送はメモリコントローラ２４により実施される追加されたタスクであり、これらのタスクは他のＦＩＦＯに関して記載したリクエスト／アクノレッジシステムにより実施される。ＦＩＦＯ６２に関連してタスクは例えばＦＩＦＯ２０と２２の優先度から構成される優先度を有しており、ＦＩＦＯ６４に関連したタスクは例えばＦＩＦＯ２０と２１の優先度から構成される優先度を有している。
【０１４５】
図６のシークエンサ２８は図３のシークエンサに比較すると役目が追加されている。この役目はＶＬＤ回路の命令をレジスタ内にスタックすること、信号ＩＳＹＮＣと同期してＶＬＤ回路にこれらの命令を与えることである。
【０１４６】
マイクロプロセッサ６０は、復号器による実施が複雑な幾つかのＭＰＥＧ復号器のタスクを引き継ぐ。これらのタスクはマイクロプロセッサの能力を大幅に損なうことがない。実際には、ＩＮＴＥＬ４８６−タイプのプロセッサの場合、例えばこれらのタスクはマイクロプロセッサの能力のほぼ１％に対応しており、優先度の一番低い割り込みルーチンにより処理される。
【０１４７】
−高精細画像の処理−
この発明による復号システム、即ちＭＰＥＧ復号器は標準精細のテレビジョン画像（例えば７２０×４８０画素の画像）を処理することができる。高精細画像を処理するためには、工程の計算が増加する。例えば１４４０×９６０画素の高精細画像を処理するため、少なくとも４つのＭＰＥＧ復号器を並列に動作する必要がある。
【０１４８】
図７は４つのスライス部分ＳＬ１−ＳＬ４に分割された高精細画像を示しており、それぞれはＭＰＥＧ復号器により処理されている。
【０１４９】
図８は高精細画像の４つのスライス部分を処理するため接続された４つのＭＰＥＧ復号器を示している。各ＭＰＥＧ復号器の入力は圧縮データバスＣＤｉｎに接続されており、更に各復号器はそれぞれの画像メモリで動作する。各復号器のディスプレイコントローラはスライス部分に対応したディスプレイ同期信号を受け、ディスプレイコントローラにより与えられるデータが重ねられる。このように、１つの復号器のディスプレイコントローラは関連したスライスが表示される毎に水平同期パルスＨＳＹＮＣのバーストを受け、更に１つの画像から他の画像の遷移を示す垂直同期パルスＶＳＹＮＣを受ける。
【０１５０】
しかし、多数の復号器を並列に配置するのは容易でない。実際には、図７に関して、例えばスライスＳＬ３の上側の部分のマクロブロックＭＢ１を再生するため、スライスＳＬ２の下側の部分にある予測マクロブロックＭＢｐ１を使用する必要がある。同様に、スライスＳＬ３の下側部分にマクロブロックＭＢ２を再生するため、スライスＳＬ４の上側の部分にある予測マクロブロックＭＢｐ２を使用する必要がある。言い換えれば、スライスＳＬ３に関連した復号器はスライスＳＬ２とＳＬ３に関連した復号器のメモリをアクセスすることができなければならない。
【０１５１】
この発明では標準精細画像を復号するため使用したＭＰＥＧ復号器の簡単な変更を提示している。この変更によりあらゆる精細度の画像を処理するため多数のＭＰＥＧ復号器を並列に配置することができる。
【０１５２】
このようにするため、この発明では復号器に関連したメモリを大きくしている。これは隣接スライスの境界エリアに対応したマージンと関連スライスを含むようにするためである。境界エリアの高さは動き補償ベクトルの垂直の大きさの最大値により決定される。以下ではこの大きさは画像スライスの半分の高さに相当していると仮定する。従って、スライスに関連したメモリは関連スライス、隣接上側スライスの下側半分、更に隣接下側スライスの上側半分を含むのに適した大きさである。一番端の復号器のメモリの大きさは関連スライスとスライスの半分を含むのに適している。
【０１５３】
このような構成により、スライスのマクロブロックを再生するため使用されている全ての予測マクロブロックはこのスライスと関係のある復号器のメモリコントローラによりアクセスされる。
【０１５４】
更に、それぞれの復号器の間には交換システムが与えられている。このシステムにより復号器はメモリにスライスのデータを与え、又隣接復号器のメモリに同じデータを与えている。
【０１５５】
図９にはこの発明に基づき並列に接続された２つの復号器の内部構造を部分的に示している。各々の復号器には加算器１６と再生マクロブロックを復号器メモリに与えるＦＩＦＯ２６とを示している。加算器１６はＦＩＦＯ２６を通してデータを復号器のメモリに与えているが、この加算器は同時に隣接復号器に接続された交換バスＸＢＵＳ上に同じデータを与えている。各復号器には更に２つのＦＩＦＯ９０と９２があるが、これらのＦＩＦＯは復号器のメモリバスＭＢＵＳに接続され、それぞれ２つの隣接復号器の交換バスからデータを受ける。復号器の他のＦＩＦＯのように、ＦＩＦＯ９０と９２のデータは復号器のメモリコントローラにより実行されるリクエスト／アクノレッジシステムを通し復号器のメモリに転送されている。ＦＩＦＯ９０に関係するタスクはＦＩＦＯ９０から上側境界スライスのメモリエリア１／２ＳＬにデータを転送するためにあり、ＦＩＦＯ９２に関係するタスクはＦＩＦＯ９２から下側境界スライスのメモリエリア１／２ＳＬにデータを転送するためにある。
【０１５６】
スライスＳＬの全てのデータは交換バスＸＢＵＳの上に与えられているので、ＦＩＦＯ９０と９２の前には当該ハーフスライスのデータをフィルタに通すためそれぞれバリア回路９４と９６とがある。このようにするため、バリア回路９４にはカウントされたデータの数がスライスの半分のデータ数に達するとすぐデータをＦＩＦＯ９０に転送するデータカウンタがある。バリア回路９６にはカウントされたデータの数がスライスの半分のデータ数に達する時までデータをＦＩＦＯ９２に転送するデータカウンタがある。バリアカウンタ９４と９６のカウンタは２つのスライスのディスプレイの間で、例えば垂直同期信号ＶＳＹＮＣにより初期化される。
【０１５７】
この発明に基づく高精細画像処理システムは、４つの個々のＭＰＥＧ復号器のメモリサイズに比較して７５％増大したメモリサイズを必要とする。しかし、増加したメモリサイズのコストは、このシステムの簡便さにより補償される。
【０１５８】
以上のようにこの発明の１つの特別な実施態様について記載したが、種々の変形、変更及び改善が当業者には容易に考えられる。このような変形、変更及び改善はこの開示の一部であり、この発明の内容及び範囲である。従って、上述の記載は一例でありこれには制限されない。
【図面の簡単な説明】
【図１】  ＭＰＥＧ復号システムの基本エレメント
【図２Ａ】  マクロブロックの復号化ステップ
【図２Ｂ】  マクロブロック構造の一例
【図３】  この発明に基づく復号システムの構造、即ちＭＰＥＧ復号器の実施態様
【図４】  図３の復号システムの動作を示すタイミングダイアグラム
【図５】  この発明に基づくメモリコントローラの好都合な実施態様
【図６】  この発明に基づく復号システムの他の実施態様
【図７】  多数の復号システムによるスライスにより処理される高精細テレビジョン画像
【図８】  高精細画像を処理するため並列に接続された多数の復号システム
【図９】  この発明に基づき並列接続を容易にする復号器の内部構造の部分的な実施態様
【符号の説明】
１０  可変長復号器（ＶＬＤ）
１１  ランレベル復号器（ＲＬＤ）
１２  逆量子化回路（Ｑ−１）
１３  逆離散コサイン変換回路（ＤＣＴ−１）
１４  半画素フィルタ
１５  メモリ
１６  加算器
１８  ディスプレイコントローラ
２０，２１，２２  バッファメモリ（ＦＩＦＯ）
２４  メモリコントローラ（ＭＣＵ）
２６  ＦＩＦＯ
２８  シークエンサ
５０  命令プロセッサ（ＡＬＵ）
５０−１  アドレス計算装置
５０−２  レジスタ
５２  プライオリティ復号器
５４  非揮発性命令メモリ（ＲＯＭ）
５６  増分回路
５８  プリフィックス復号器
５９  アクノレッジ回路
６０  マイクロプロセッサ
６２，６４  ＦＩＦＯ
６６  ヘッダ検出器
９０，９２  ＦＩＦＯ
９４，９６  バリア回路
【図１】
0003687107.tif 000003
【図２Ａ】
0003687107.tif 000004
【図２Ｂ】
0003687107.tif 000005
【図３】
0003687107.tif 000006
【図４】
0003687107.tif 000007
【図５】
0003687107.tif 000008
【図６】
0003687107.tif 000009
【図７】
0003687107.tif 000010
【図８】
0003687107.tif 000011
【図９】
0003687107.tif 000012