(57)【要約】【課題】複数のプロセッサを利用して効率のよい画像処理を行う。【解決手段】プロセッサエレメント１０１は、複数の付加処理ユニット（ＡＰＵ）１０６、１０７‥‥を備えており、各ＡＰＵは、ＤＭＡＣ１０３を介してＤＲＡＭ１０２へアクセスすることができる。ＡＰＵは、ＤＲＡＭ１０２に格納された符号化処理または動き検出処理のためのプログラムを読み出し、動画像の１画面を複数に分割したセグメント（例えば、スライス）単位で画像処理を行う。また、ＡＰＵは、ＤＲＡＭ１０２の共有メモリ１０８にアクセスし、プロセスキュー１１３、リードポインタ１１５を参照する。これらには画面を複数に分割したセグメントごとの画像処理の進行状況が格納されており、共有メモリ１０８にアクセスしたＡＰＵは、その進行状況の最も遅いセグメントを選び、そのセグメントに対して画像処理を行う。【選択図】        図１
2005189975.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
画面を複数に分割したセグメントごとに画像処理手順の進行状況を示す進行状況情報を保持するメモリとを具備し、
各々の前記プロセッサは、前記メモリに保持された進行状況情報を参照し、あらかじめ決められた基準にしたがって処理すべきセグメントを選択し、選択したセグメントに対して画像処理手順にしたがった画像処理を行う
ことを特徴とする画像処理装置。
【請求項２】
前記プロセッサは、前記進行状況情報に示される進行状況が最も遅いセグメントを処理すべきセグメントとして選択する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記メモリに保持される前記進行状況情報には、画像処理手順を示す処理手順情報と、各セグメントごとに前記処理手順情報に示される画像処理手順のうちどの処理までが終了しているかを示す進行情報とが含まれている
ことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記メモリに保持される前記進行状況情報には、各セグメントごとに当該セグメントに対する処理が行われている最中であるか否かを示す処理状態情報が含まれている
ことを特徴とする請求項１ないし３のいずれかに記載の画像処理装置。
【請求項５】
前記プロセッサによる前記セグメントに対する画像処理が途中で打ち切られた場合、前記メモリには、当該セグメントについては処理が終了していないことを示す進行状況情報が保持される
ことを特徴とする請求項１ないし４のいずれかに記載の画像処理装置。
【請求項６】
複数の前記プロセッサが前記メモリに同時にアクセスすること禁止するアクセス制御手段をさらに具備することを特徴とする請求項１ないし５のいずれかに記載の画像処理装置。
【請求項７】
前記メモリには、画像の符号化処理の手順の進行状況を示す進行状況情報が保持されている
ことを特徴とする請求項１ないし６のいずれかに記載の画像処理装置。
【請求項８】
符号化された符号化画像データを保持する画像メモリをさらに具備し、
前記メモリには、各セグメントごとの符号化画像データに対する復号化処理の進行状況が前記進行状況情報として保持されており、
各々の前記プロセッサは、前記メモリに保持される前記進行状況情報に示される復号化処理の進行状況が最も遅いセグメントを選択し、選択したセグメントの符号化画像データを前記画像メモリから読み出して復号する
ことを特徴とする請求項１ないし６のいずれかに記載の画像処理装置。
【請求項９】
前記セグメントは、１画面をＮ（２以上の自然数）個に分割したものであり、
前記プロセッサがＭ（２以上Ｎ未満の自然数）である
ことを特徴とする請求項１ないし８のいずれかに記載の画像処理装置。
【請求項１０】
複数のプロセッサを用いて画像処理を行う方法であって、
画面を複数に分割したセグメントごとに画像処理手順の進行状況をメモリに保持して管理し、
各々の前記プロセッサは、前記メモリに保持された進行状況を参照し、あらかじめ決められた基準にしたがって処理すべきセグメントを選択し、選択したセグメントに対して画像処理手順にしたがった画像処理を行う
ことを特徴とする画像処理方法。
【請求項１１】
複数のプロセッサを有するコンピュータに、
画面を複数に分割したセグメントごとに画像処理手順の進行状況をメモリに保持して管理させる手順、
各々の前記プロセッサに、前記メモリに保持された進行状況を参照し、あらかじめ決められた基準にしたがって処理すべきセグメントを選択し、選択したセグメントに対して画像処理手順にしたがった画像処理を行わせる手順
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＥＧ（Moving Pictures Experts Group）にしたがった動画像符号化処理や、復号化処理などの画像処理を複数のプロセッサで行う画像処理装置、画像処理方法およびプログラムに関するものである。
【背景技術】
【０００２】
従来、コンピュータ技術の進化に伴い、ＭＰＥＧ−２などに代表される画像符号化処理および復号化処理をソフトウェアにより実現する装置等が利用されている。例えば、パーソナルコンピュータ（ＰＣ）の中には、テレビ放送される番組画像の符号化処理を行い、ハードディスクに記憶させるといったレコーダ機能をソフトウェアにより実現するものも販売等されている。
【０００３】
一方、次世代のゲーム機、ホームサーバ、デジタルテレビジョンなどに搭載するＣＰＵ（Central Processing Unit）として、高速なＳＩＭＤ(Single Instruction Multiple Data)プロセッサを複数有し、それらが協調して処理を実行するモデルが提案されている。例えば、同一のＩＳＡ(Instruction Set Architecture)を有する複数の付加処理ユニット(ＡＰＵ)が共用ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を利用してリアルタイム通信を行い、処理を継続していくセルプロセッサと呼ばれるモデルが提案されている（例えば、特許文献１参照）。
【０００４】
上記特許文献１に開示される複数のプロセッサ（付加処理ユニット）を有するユニットを利用した画像処理、例えばＭＰＥＧ形式にしたがった復号化処理は、次のようにして行われる。ネットワーク処理用のプロセッサがネットワークを介してＭＰＥＧデータを取得し、ＤＲＡＭの特定領域に格納する一方で、復号化処理用のプロセッサがＤＲＡＭに格納されたＭＰＥＧデータの復号化処理を行う。このように特許文献１に開示された技術では、各プロセッサに特定の用途（ネットワーク処理や復号化処理）が割り当てられ、各プロセッサが割り当てられた用途に対応する処理を行うといった分散処理が行われる。
【０００５】
ところで、上述したように複数のプロセッサを有するユニットを用いてＭＰＥＧ復号化処理や符号化処理を行う場合、プロセッサが実行するタスクにはタイムバジェットと呼ばれる割当時間が決定されている。このタイムバジェットは、通常プロセッサが実行するタスクに必要な時間よりも長い時間が設定されており、プロセッサの処理は必ず設定されたタイムバジェット期間以内で終了しなければならないようになっている。
【０００６】
したがって、上記のようなＭＰＥＧ復号化処理を行う場合、ネットワーク処理用のプロセッサがあるタイムバジェット期間内にＭＰＥＧデータの抽出処理を行いＤＲＡＭに格納する。そして、次のタイムバジェット期間内に前タイムバジェット期間にＤＲＡＭに格納されたＭＰＥＧデータを復号化処理用のプロセッサが読み出して復号処理を行う。これにより複数のプロセッサが並列して動作し、ＭＰＥＧデータの復号化処理といった画像処理を実現することができる。なお、１つのタイムバジェット期間が終了する前に処理が終了した場合、各プロセッサは「スタンバイ」と呼ばれる状態となり、演算処理は一切行われない。
【０００７】
【特許文献１】特開２００２−３５８２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上のように各プロセッサに特定の用途を割り当ててＭＰＥＧ復号化処理等の画像処理を行わせる場合、次のような問題が発生する。まず、第一に、ＭＰＥＧの符号化処理自体、最も演算量が必要となる動き検出を除いてもＭＰＥＧ復号化処理の２倍の演算量を必要とするのが一般的であり、動き検出処理を含めれば、ＭＰＥＧ復号化処理の４倍から１０倍程度の演算量が見込まれる。
【０００９】
このような演算量の多いＭＰＥＧ符号化処理を行うことも想定すると、設定されるタイムバジェットが非常に大きくなり、他のタスクのスタンバイ時間が過剰に長くなり並列性が損なわれる。つまり、負荷の小さい処理を割り当てられたプロセッサは、１タイムバジェット間のほとんどがスタンバイ状態となってしまうおそれがあり、効率のよい並列処理が行えない。このように不効率な並列処理が行われると、リアルタイムでの符号化が行えなくなるおそれもある。
【００１０】
第二に、ＭＰＥＧの符号化処理では、Ｉピクチャ（I-Picture）と、Ｐピクチャ（P-Picture）と、Ｂピクチャ（B-Picture）といった３種類の符号化が用意されており、各々の符号化処理において必要な動き検出処理がそれぞれ０回、１回、２回と異なっている。上述したように動き検出処理はＭＰＥＧ符号化処理の中でも処理負担が大きいため、Ｉピクチャ、Ｐピクチャ、Ｂピクチャの符号化処理に要する時間は大きく異なる場合がある。最も処理負担の大きいＢピクチャの符号化処理が期間内に終了できるようタイムバジェットを設定すれば、比較的軽い処理であるＩピクチャやＰピクチャを符号化する際にＭＰＥＧ符号化処理自体のスタンバイ時間が長くなり、効率のよい並列処理が行えない。
【００１１】
本発明は、上記に鑑みてなされたものであって、複数のプロセッサを利用して画像処理を行う場合に効率のよい並列処理を行うことができる画像処理装置、画像処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかる画像処理装置は、複数のプロセッサと、画面を複数に分割したセグメントごとに画像処理手順の進行状況を示す進行状況情報を保持するメモリとを具備し、各々の前記プロセッサは、前記メモリに保持された進行状況情報を参照し、あらかじめ決められた基準にしたがって処理すべきセグメントを選択し、選択したセグメントに対して画像処理手順にしたがった画像処理を行うことを特徴とする。
【００１３】
また、本発明の別の態様にかかる画像処理方法は、複数のプロセッサを用いて画像処理を行う方法であって、画面を複数に分割したセグメントごとに画像処理手順の進行状況をメモリに保持して管理し、各々の前記プロセッサは、前記メモリに保持された進行状況を参照し、あらかじめ決められた基準にしたがって処理すべきセグメントを選択し、選択したセグメントに対して画像処理手順にしたがった画像処理を行うことを特徴とする。
【００１４】
また、本発明の別の態様にかかるプログラムは、複数のプロセッサを有するコンピュータに、画面を複数に分割したセグメントごとに画像処理手順の進行状況をメモリに保持して管理させる手順、各々の前記プロセッサに、前記メモリに保持された進行状況を参照し、あらかじめ決められた基準にしたがって処理すべきセグメントを選択し、選択したセグメントに対して画像処理手順にしたがった画像処理を行わせる手順を実行させる。
【発明の効果】
【００１５】
本発明によれば、複数のプロセッサが、画面を分割した各セグメントの進行状況を考慮して処理対象となるセグメントを選択して画像処理を行うことができるので、効率のよい並列処理を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明にかかる画像処理装置、画像処理方法およびプログラムの好適な実施の形態を詳細に説明する。
【００１７】
（第１の実施の形態）
図１は、本発明の第１の実施の形態にかかる画像処理装置の構成を示すブロック図である。同図に示すように、この画像処理装置１００は、プロセッサエレメント（ＰＥ）１０１と、ＤＲＡＭ（Dynamic RAM）１０２とを備えており、ソフトウェアによりＭＰＥＧ符号化処理を実現する装置である。
【００１８】
プロセッサエレメント１０１は、処理ユニット（ＰＵ：Processing Unit）１０５と、複数の付加処理ユニット（ＡＰＵ：Attached Processing Unit）１０６、１０７‥‥と、ＤＭＡＣ（Direct Memory Access Controller）１０３とを備える。
【００１９】
ＤＲＡＭ１０２には、共有メモリ１０８と、動き検出のためのプログラムモジュール格納領域１１２と、符号化のためのプログラムモジュール格納領域１０９と、動き検出の結果が蓄えられる動きベクトルデータ格納領域１１１と、符号化結果が蓄えられるビットストリームデータ格納領域１１０といった領域が設定されている。本実施の形態において、これらの領域はあらかじめ物理的に固定された領域として設定されているわけではなく、ソフトウェアにより設定されている。
【００２０】
共有メモリ１０８には、ＦＩＦＯ（First-In First-Out）型のバッファであるプロセスキュー１１３と、当該プロセスキュー１１３のライトポインタ１１４と、後述する複数のセグメントの各々に対応するリードポインタ１１５が設けられている。プロセスキュー１１３には、画像処理の手順であるＭＰＥＧ形式にしたがった符号化処理の手順が列挙されて保持される。
【００２１】
ＤＭＡＣ１０３は、ＡＰＵ１０６、１０７‥‥といった複数のＡＰＵ間の排他制御を行う手段として機能するテスト＆セットレジスタ４を有している。すなわち、テスト＆セットレジスタ１０４は、複数のＡＰＵがＤＭＡＣ１０３を介して同時にＤＲＡＭ１０２にアクセスしてデータの書き込み等が行われないよう、これらの同時アクセスを禁止する。なお、本実施の形態では、排他制御を実現する手段としてテスト＆セットレジスタを例示してあるが、特にこれに限定されるものではない。
【００２２】
ＰＵ１０５は、ＭＰＥＧ形式（ＭＰＥＧ−２など）の符号化処理等を行う際に、プロセッサエレメント１０１およびＤＲＡＭ１０２といった装置各部を制御するプロセッサである。また、本実施の形態におけるＰＵ１０５は、上述したプロセスキュー１１３に対し、符号化処理手順を書き込む処理を行うとともに、その書き込み位置に応じてライトポインタ１１４を更新する処理を行う。
【００２３】
ここで、図２にＰＵ１０５によって書き込まれるプロセスキュー１１３の内容を示す。同図に示すように、プロセスキュー１１３には、「フレーム＃０前方動き検出」、「フレーム＃１前方動き検出」‥‥「フレーム＃０符号化」、「フレーム＃４前方動き検出」といったＭＰＥＧ形式の符号化処理の手順内容が行うべき順序にしたがって書き込まれる。
【００２４】
ＰＵ１０５は、符号化対象となる動画像データが入力されると、つまりフレーム画像が順次入力されると、入力される画像に対して行うべき符号化処理手順を決定し、それを順次プロセスキュー１１３に書き込むのである。つまり、プロセスキュー１１３には、画像処理の手順を示す処理手順情報が書き込まれるのである。
【００２５】
また、プロセスキュー１１３には、ポインタ「０」、「１」‥‥といった連続する番号がポインタ番号として付与されており、ＰＵ１０５は処理順序とポインタ番号とを対応つけるように書き込みを行う。つまり、先に行うべき処理内容を小さいポインタ番号に対応つけて書き込んでいく。図示の例では、より下側（ポインタ番号が小さい）に書き込まれる処理内容が上側（ポインタ番号が大きい）に書き込まれる処理内容よりも先に行うことを意味し、ポインタ番号に対応する順序、「フレーム＃０前方動き検出」、「フレーム＃１前方動き検出」、「フレーム＃１後方動き検出」‥‥といった順序で処理を行うべきことを意味する。
【００２６】
また、ＰＵ１０５は、上記のように処理内容を書き込むと、書き込んだ位置（ポインタ番号）に応じて図１に示すライトポインタ１１４を更新する。ライトポインタ１１４は、プロセスキュー１１３のどのポインタ番号から書き込みを行うべきかを示すポインタであり、図２に示すようにプロセスキュー１１３にポインタ番号「８」の「フレーム＃４前方動き検出」を書き込んだ場合には、次に書き込みを行うべきポインタ番号、つまり書き込みが終了したポインタ番号の次の番号「９」にライトポインタ１１４を更新する。次に、ＰＵ１０５がプロセスキュー１１３に書き込みを行う際には当該ライトポインタ１１４を参照して書き込むべきポインタ番号を決定する。
【００２７】
図１に示すＡＰＵ１０６、１０７‥‥の各々は、共有メモリ１０８のプロセスキュー１１３に記述された内容を参照し、行うべき処理内容に対応するプログラムモジュールをＤＲＡＭ１０２から読み出す。そして、ＡＰＵ１０６、１０７‥‥は読み出したプログラムモジュールにしたがった画像処理（動き検出処理や符号化処理等）を行う。
【００２８】
例えば、行うべき処理内容が「フレーム１＃前方動き検出」である場合には、ＤＲＡＭ１０２の動き検出のためのプログラムモジュール格納領域１１２からプログラムモジュールを読み出し、また行うべき処理内容が「フレーム＃０符号化」である場合には符号化のためのプログラムモジュール格納領域１０９からプログラムモジュールを読み出すことになる。
【００２９】
また、ＡＰＵ１０６、１０７‥‥は、動き検出処理を行った場合にはその結果を、ＤＲＡＭ１０２における動き検出の結果が蓄えられる動きベクトルデータ格納領域１１１に格納し、また符号化処理を行った場合にはその結果を、符号化結果が蓄えられるビットストリームデータ格納領域１１０に格納する。
【００３０】
以上のように各ＡＰＵ１０６、１０７‥‥は、ＤＲＡＭ１０２に格納されたプログラムモジュールにしたがってソフトウェアにより画像処理を実現するものであり、そのハードウェア構成を図３に示す。同図に示すように、ＡＰＵ１０６（ＡＰＵ１０７‥‥も同様）は、ローカルメモリ２０２と、レジスタ２０３と、複数の浮動小数点ユニット２０５と、複数の整数演算ユニット２０７とを備える。
【００３１】
ローカルメモリ２０２は、例えば１２８ＫＢ程度の比較的小さい容量のＳＲＡＭ（Static RAM）などで構成される。ＡＰＵ１０６は、ローカルメモリ２０２に格納されるプログラムおよびデータを利用して動作する。ＡＰＵ１０６は、ＤＭＡＣ１０３（図１参照）を介してＤＲＡＭ１０２とローカルメモリ２０２間のデータ授受を行う。
【００３２】
ＡＰＵ１０６が上述した動き検出や符号化といった処理を行うために上記プログラムモジュールを実行する際、ＰＵ１０１によってＤＭＡＣ１０３が制御され、ＡＰＵ１０６のローカルメモリ２０２へオブジェクトプログラムと関連するスタックフレームが転送される。そして、ＰＵ１０１がＡＰＵ１０６へプログラムを実行するようにコマンドを発行することで、ＡＰＵ１０６がプログラムの実行、つまり動き検出処理や符号化処理が開始される。プログラムを実行したＡＰＵ１０は、その結果（動き検出結果や符号化結果）をＤＭＡＣ１０３を介してＤＲＡＭ１０２へ転送する。このように転送された動き検出結果や符号化結果が、動きベクトルデータ格納領域１１１やビットストリームデータ格納領域１１０に格納される。
【００３３】
以上がＡＰＵ１０６（他のＡＰＵ１０７等も同様）の構成であり、各ＡＰＵ１０６、１０７‥‥は、それぞれ他のＡＰＵとは独立して動作し、後述するセグメントの画像に対する符号化処理や動き検出等の画像符号化に必要な処理を行う。なお、このようなＡＰＵ１０６、１０７‥‥によって行われる具体的な処理の詳細については後述する。
【００３４】
次に、本実施の形態にかかる画像処理装置１００が画像処理を行う際の動作について各ＡＰＵ１０６、１０７‥‥の動作を中心に説明する。本実施の形態にかかる画像処理装置１００では、処理対象となるフレーム画像を複数個（Ｎ個とする）のセグメントに分割し、これらの各々のセグメントに対し、複数個（Ｍ個（Ｎ＞Ｍ）とする）のＡＰＵ１０６、１０７‥‥がＭＰＥＧ形式にしたがった符号化処理を行うようになっている。すなわち、ＡＰＵ１０６、１０７の各々は、フレーム画像全体に対して処理を行うのではなく、分割されたセグメント単位の画像に対して符号化処理を行うのである。
【００３５】
本実施の形態では、図４に示すように、「スライス」と呼ばれる高さ１６画素（幅はフレーム画像と同じ７２０画素）の細長い部分を１つのセグメントとし、このようなセグメントであるスライスごとに各ＡＰＵが符号化処理を実行する。例えば、ＭＰＥＧ符号化の対象がＳＤＴＶ解像度(７２０×４８０画素)である場合、スライスの個数は３０個となる。なお、ＭＰＥＧ−４形式の符号化処理等を行う画像処理装置に適用する場合には、ビデオパケットを１つのセグメントとして用いることができる。
【００３６】
本実施の形態では、複数のＡＰＵ１０６、１０７の各々は、共有メモリ１０８のプロセスキュー１１３およびリードポインタ１１５を参照し、あらかじめ決められた基準にしたがって処理すべきセグメント（スライス）および処理内容（前方動き検出、後方動き検出、符号化など）を決定する。
【００３７】
すなわち、各ＡＰＵ１０６、１０７‥‥は、あらかじめ決められた特定の処理のみを行うのではなく、そのときの各セグメントに対する処理の進行状況等を参照し、全体として効率のよい処理が行われるよう処理対象となるセグメントを決定するようにしているのである。このようなセグメント（スライス）ごとの処理の進行状況に応じて各ＡＰＵが処理対象セグメントを決定し、符号化や動き検出等の処理を行う場合の具体的な処理について説明する。なお、複数のＡＰＵ１０６、１０７‥‥の処理内容は同じであるため、以下においては、ＡＰＵ１０６の動作について説明する。
【００３８】
図５に示すように、ＰＵ１０５からの「ＡＰＵ遠隔処理指令」によってＡＰＵ１０６が起動されると、起動されたＡＰＵ１０６は、テスト＆セットレジスタ１０４をテストし、共有メモリ１０８へのアクセス権が取得できるか否かを判別する（ステップＳａ１）。上述したようにテスト＆セットレジスタ１０４によって共有メモリ１０８に対して同時に複数のＡＰＵがアクセスすることはできない。よって、他のＡＰＵがアクセスしている場合には、アクセス権が取得できず、アクセス権取得待ちの状態となる。この場合、アクセス権が取得できるまで周期的にテストを行う。
【００３９】
一方、他のＡＰＵがアクセスをしておらず、ＡＰＵ１０６が共有メモリ１０８へのアクセス権を取得した場合、共有メモリ１０８にアクセスし、リードポインタ１１５をスキャンする（ステップＳａ２）。そして、ＡＰＵ１０６は、その時点におけるリードポインタ１１５の内容を参照し、あらかじめ決められた条件にしたがって処理すべきセグメント（スライス）を決定する（ステップＳａ３）。
【００４０】
ここで、図６にリードポインタ１１５の構成の一例を示す。同図に示すように、リードポインタ１１５は、各スライスごとに、「処理状態フラグ」と「プロセスキュー読み出し先」といった項目の情報が格納されている。
【００４１】
「処理状態フラグ」は、当該スライスに対する画像処理が行われているか否かを示すフラグであり、上記のようにＡＰＵ１０６がリードポインタ１１５をスキャンしたときに、他のＡＰＵによって画像処理が施されているスライスがある場合、そのスライスについての「処理状態フラグ」は「処理中」を示すフラグとなる。一方、スキャン時に他のＡＰＵによって処理が行われていないスライスについては「未処理」を示すフラグとなる。
【００４２】
また、「プロセスキュー読み出し先」は、プロセスキュー１１３の読み出し先のポインタ番号を示すものである。したがって、かかる項目の情報が「ポインタ番号６」となっているスライスについては、次にプロセスキュー１１３（図２参照）のポインタ番号６に対応する処理（フレーム＃０後方動き検出）を行うべきであることを意味している。
【００４３】
リードポインタ１１５には、以上のような各スライス（セグメント）ごとの画像処理の進行状況を示す進行情報が格納されており、ＡＰＵ１０６は、かかる進行情報を参照して、以下の２つの条件を満たすスライスを処理すべきスライスとして決定する。
（１）当該スライスの「処理状態フラグ」が「処理中」ではない
（２）当該スライスの「プロセスキューの読出し先」のポインタ番号が、他のスライスの読出し先よりも小さい番号である
【００４４】
すなわち、複数のスライスの中から、ＡＰＵ１０６が共有メモリ１０８にアクセスしてリードポインタ１１５をスキャンした時点で、他のＡＰＵによって処理されておらず、かつ最も処理進行状況が遅いスライスを処理対象スライスとして決定するのである。なお、上記２つの条件を満たすスライスが複数ある場合、そのうちどれを選択しても良いが、ここでは最もスライス番号が小さいスライスを選択するものとする。
【００４５】
以上のようにして処理対象スライスを決定すると、ＡＰＵ１０６は、リードポインタ１１５における当該決定したスライスの「処理状態フラグ」を「処理中」とし（ステップＳａ４）、決定したスライスに対して、当該スライスの「プロセスキュー読み出し先」に示されるポインタ番号に対応する画像処理、つまりそのスライスの進行状況に応じた処理を行う（ステップＳａ５）。
【００４６】
例えば、決定したスライスの「プロセスキュー読み出し先」のポインタ番号が「６」である場合には、ＡＰＵ１０６は、プロセスキュー１１３（図２）を参照し、そのポインタ番号「６」に対応する処理（フレーム＃０後方動き検出処理）を行う。より具体的には、動き検出プログラムモジュールをＤＲＡＭ１０２の動き検出のためのプログラムモジュール格納領域１１２を読み出し、ローカルメモリ２０２にロードする。そして、当該プログラムモジュールを実行することで、上記のように決定したスライスに対して後方動き検出処理を行うのである。
【００４７】
なお、上記のように処理対象スライスを決定すると、ＡＰＵ１０６は、テスト＆セットレジスタ１０４をリセットすることで共有メモリ１０８を開放し、この時点以降他のＡＰＵが共有メモリ１０８へのアクセス権を取得することができる。したがって、アクセス権を取得した他のＡＰＵは、上述したステップＳａ２以降の処理を行い、処理対象スライスを決定し、決定したスライスに対して進行状況に応じた処理を行う。
【００４８】
ＡＰＵ１０６は、上記のような決定したセグメントに対する進行状況に応じた処理が終了すると、テスト＆セットレジスタ１０４をテストし、共有メモリ１０８へのアクセス権の取得を試みる（ステップＳａ６）。上述したように他のＡＰＵが共有メモリ１０８にアクセスしているときにはアクセス権を取得することができないので、アクセス権が取得できるまで周期的にアクセス権取得のための処理を行う。
【００４９】
そして、アクセス権を取得すると、ＡＰＵ１０６は、リードポインタ１１５における上記ステップＳａ５で処理を行ったスライスに対応する「処理状態フラグ」を「処理中」から「未処理中」に書き換えるとともに、当該スライスに対応する「プロセスキュー読み出し先」のポインタ番号を１つインクリメントする（ステップＳａ７）。
【００５０】
このようにリードポインタ１１５に格納される進行状況を示す情報を、ステップＳａ５における処理の後の状況に応じて更新すると、ステップＳａ２に戻り、それ以降の処理を繰り返す。すなわち、リードポインタ１１５をスキャンし、そのスキャン時点で最も進行状況が遅いスライスを処理対象スライスとして決定し、決定したスライスに対して画像処理を行うのである。
【００５１】
例えば、リードポインタ１１５が図７に示すような状態である時点以降は、ＡＰＵ１０６、ＡＰＵ１０７‥‥によって次のような処理が行われることになる。まず、この時点から最も先に共有メモリ１０８へのアクセス権を取得したＡＰＵが、リードポインタ１１５を参照し、「処理中」ではなく、最もポインタ番号の小さいスライス（ポインタ番号「１」）であるスライス＃３を選び、プロセスキュー１１３の当該ポインタ番号「１」に対応する処理を行う。つまり、フレーム＃０のスライス＃３に対し、前方動き検出を行うのである。なお、この図に示す時点においては、スライス＃１、＃２は「処理中」であるので、図示のように他のＡＰＵによって処理がポインタ番号「２」、「１」に対応する処理が行われ、その結果が動きベクトルデータ格納領域１１１に格納される。
【００５２】
上記ＡＰＵの次に共有メモリ１０８へのアクセス権を取得したＡＰＵは、上記スライス＃３は先のＡＰＵによって図示の状態から「処理中」に書き換えられているため、次にポインタ番号の小さい（またはポインタ番号は同じ）スライス＃４（ポインタ番号「１」）を選択し、プロセスキュー１１３の当該ポインタ番号「１」に対応する処理を行う。つまり、フレーム＃０のスライス＃４に対し、前方動き検出を行う。
【００５３】
このように本実施の形態では、各ＡＰＵは、実行する処理の内容（前方動き検出、後方動き検出、符号化等）や処理すべきスライスが固定されているわけではなく、あるスライスに対する処理が終了して次の処理を行おうとした時点で、最も処理進行状況が遅れているスライスを選び、その進行状況に応じた処理、つまりそのスライスが次にすべき処理が前方動き検出であれば前方動き検出を、次に行うべき処理が符号化処理であれば符号化処理を行うのである。
【００５４】
以上がプロセッサエレメント１０１内の複数のＡＰＵ１０６、１０７‥‥の各々が行う処理の詳細である。次に、上記のように各ＡＰＵがそれぞれ進行状況に応じたスライスを選択して並列に画像処理を行っている間に、タイムバジェット期間が終了した場合におけるＰＵ１０５の処理について説明する。
【００５５】
上述した特許文献１にも開示されているように複数のＡＰＵを有するプロセッサエレメントでは、ＡＰＵが実行するタスクにはタイムバジェットと呼ばれる割当時間が設定されている。したがって、上記のように各ＡＰＵ１０６、１０７‥‥の各々が選択したスライスに対して画像処理を行っている途中に、タイムバジェット期間が終了すると、ＡＰＵの処理は中断されてしまうことになる。
【００５６】
本実施の形態におけるＰＵ１０５は、このようなタイムバジェットに起因するＡＰＵの処理中断により、符号化処理がなされないスライス等が生じるといった符号化処理エラーを抑制するために、次のような処理を行う。
【００５７】
ＰＵ１０５は、タイムバジェット期間が終了すると、ＤＭＡＣ１０３を介して共有メモリ１０８のリードポインタ１１５にアクセスする。ここで、ＡＰＵが画像処理中にタイムバジェット期間が終了し、処理が中断された場合、当該処理中のスライスに対応する「処理状態フラグ」は「処理中」のままとなる。
【００５８】
例えば、図８に示す例では、タイムバジェット期間が終了した時点では、ＡＰＵ０はスライス＃２に対する符号化処理（ＣＯＤＥ＃２）を行っている途中であり、ＡＰＵ１はスライス＃３に対する符号化処理（ＣＯＤＥ＃３）を行っている途中である。したがって、リードポインタ１１５におけるスライス＃２およびスライス＃３に対応する「処理状態フラグ」は「処理中」のままとなる。
【００５９】
このままの状態で放置すれば、次にＡＰＵがリードポインタ１１５をスキャンしたときには、これらのスライス＃２、＃３の「処理状態フラグ」は「処理中」であるため、上記条件（２）を満たさず、スライス＃２、＃３はＡＰＵに処理対象として選択されないことになってしまう。
【００６０】
そこで、ＰＵ１０５は、タイムバジェットが終了した後、リードポインタ１１５にアクセスし、「処理中」であるフラグを「未処理」に書き換える。これにより、次のタイムバジェットにおいて、リードポインタ１１５をスキャンしたＡＰＵによって、上記のように前のタイムバジェットにおいて処理が中断したスライスが選択され、当該スライスに対して画像処理が施される。したがって、タイムバジェット終了により処理が中断することに起因する処理エラー等の発生を抑制することができる。
【００６１】
なお、タイムバジェットの終了に伴う処理の中断は、ＡＰＵが共有メモリ１０８のアクセス権を得ている間には行うべきではないため、ＰＵ１０５による上記フラグ書き換え処理は、ＰＵ１０５自身が共有メモリ１０８へのアクセス権を取得した後に行う。
【００６２】
以上説明したように本実施の形態では、プロセッサエレメント１０１内の複数のＡＰＵ１０６、１０７‥‥があらかじめ決められた固定の処理（例えば符号化処理のみを行う、または動き検出のみを行う）を行うのではなく、画面を複数に分割したセグメント（スライス）の処理の進行状況に基づき、処理を行うべきスライスを選択して処理を行うので、各ＡＰＵ１０６、１０７等を効率よく動作させてＭＰＥＧ形式にしたがった符号化処理を行わせることができる。
【００６３】
すなわち、各ＡＰＵは、あるスライスに対する処理が終了した後待機するのではなく、共有メモリ１０８のプロセスキュー１１３やリードポインタ１１５を参照し、その中から処理の進行具合が最も遅いスライスを処理すべきスライスとして選択して処理を行うようになっている。したがって、各ＡＰＵ１０６、１０７等がスタンバイ状態となり、処理を行わない時間を削減することができ、効率のよい処理が行える。また、各スライスの処理がバランスよく進行する（例えば、あるスライスの処理が他のスライスと比べて極端に遅れるといったことなく進行する）ので、あるスライスの処理の遅れに起因して符号化処理等が所定のタイミング（リアルタイム符号化タイミングなど）に間に合わなくなってしまうおそれを低減することができる。
【００６４】
また、本実施の形態では、リードポインタ１１５に各スライスごとに「処理状態フラグ」が用意されており、かかるフラグが「処理中」の場合、つまりあるＡＰＵによって当該スライスが処理されている間、そのスライスが他のＡＰＵに選択されて処理されることはない。したがって、プロセスキュー１１３に示された画像処理手順と異なる手順、つまり先に行うべき処理が終了していないにもかかわらず、後に行うべき処理を行うといった処理の追い越しを防止することができ、符号化処理エラーを抑制することができる。
【００６５】
また、本実施の形態では、テスト＆セットレジスタ１０４が設けられており、各ＡＰＵ１０６、１０７‥‥が同時に共有メモリ１０８へアクセスしてリードポインタ１１５等を更新することが抑制される。したがって、複数のＡＰＵがリードポインタ１１５等にアクセスすることで、同時に複数のＡＰＵが同一のスライスを選択して処理を行うといった複数のＡＰＵによる処理の重複等を抑制することができる。このように共有メモリ１０８への同時アクセスを禁止されるので、各ＡＰＵがどのスライスを処理するのかを決定するためにＰＵ１０５が調整処理を行う必要がなく、ＰＵ１０５の処理負担増加を抑制することができる。
【００６６】
ところで、複数のＡＰＵを利用する画像処理技術としては、複数のＡＰＵに、ＭＰＥＧ符号化処理の各機能（前方動き検出機能、後方動き検出機能、符号化処理機能）を固定的に割り当て、複数のＡＰＵでパイプライン動作を行わせることでＭＰＥＧ符号化処理を行うことも考えられる。
【００６７】
この場合、前方動き検出処理と後方動き検出処理とは依存関係がないため、各処理を担当するＡＰＵは並列に処理を行うことができ、動き検出処理と符号化処理といった依存関係のある処理を行う場合には１フレーム遅延させることでパイプライン処理を行う。しかしながら、このように複数のＡＰＵの各々に特定の機能を固定的に割り当てると、携帯機器に画像処理装置を搭載させる場合などに不都合が生じる。
【００６８】
すなわち、携帯機器では、動作電圧を低下させクロック周波数を低下させることで消費電力を低減させることが一般的によく行われる。このようなにクロック周波数を低下させた場合、より並列性を高めなければリアルタイムＭＰＥＧ符号化処理が実現できなくなる。並列性を高めるためには、符号化処理の機能ブロックをさらに細分化し、細かいパイプライン処理を実現させなければならないが、このために符号化プログラムの設計をやり直さなければならなくなり、開発に伴うコストが増大する。
【００６９】
また、プロセッサの消費電力を低減させる手法として、計算負荷が低い場合にはプロセッサの電圧および動作クロック周波数を低減させるような方法が用いられる。このような手法を複数のＡＰＵを有するプロセッサに導入した場合、一部の計算負荷が重いＡＰＵ（動き検出処理を担当するＡＰＵなど）に引きずられ、他の多くのＡＰＵがアイドル状態にもかかわらず動作電圧および動作クロックを引き下げられないような事態が発生する。
【００７０】
また、符号化処理において発生する処理時間の長短は、Ｉピクチャ、ＰピクチャおよびＢピクチャといったピクチャタイプにのみ存在するわけではない。例えば、ほとんどの物体が動いていないような動画像を符号化する際には、動き検出や符号化処理の負荷は低くなる一方、細かいテクスチャを含む物体が縦横無尽に動いているような動画像を符号化する際には、動き検出も符号化処理も負荷が重くなる。したがって、一定のタイムバジェット内で処理を完了させるためには、タイムバジェット自体を大きくさせるか、画質を犠牲にして処理時間を一定に保つような機構を設ける必要がある。
【００７１】
これに対し、本実施の形態では、上述したように各ＡＰＵに固定的に処理機能が割り当てられているのではなく、各スライスの進行状況に応じて各ＡＰＵが処理すべきスライスを選択し、そのスライスに必要な符号化のための処理を行う。したがって、あるスライスに対する処理状況が他のスライスに比して大きく遅れるといったことがなく、各スライスに対する処理を並列に進行させることができ、消費電力低減のために動作クロックを抑えた場合にもリアルタイム性を維持しやすくなる。
【００７２】
また、各ＡＰＵの行う処理が固定的ではないので、各ＡＰＵの処理負担が大きくばらつくことがなく、ＡＰＵの処理能力を考慮することに起因するタイムバジェットの設定に関する制約も少なくなる。また、各ＡＰＵに割り当てる機能を細分化する必要もないので、符号化プログラムの設計、開発に伴うコストが増大することも抑制することができる。
【００７３】
（第２の実施の形態）
次に、本発明の第２の実施の形態にかかる画像処理装置について説明する。図９に示すように、第２の実施の形態にかかる画像処理装置２００は、ＭＰＥＧ形式で符号化された動画像データを復号する処理を行う装置である点で上記第１の実施の形態の画像処理装置１００と相違する。また、ＤＲＡＭ２２２に格納される情報等が第１の実施の形態における画像処理装置１００と相違している。なお、第２の実施の形態において、第１の実施の形態と共通する構成要素については同一の符号をつけてその説明を省略する。
【００７４】
同図に示すように、第２の実施の形態におけるＤＲＡＭ２２２には、共有メモリ２０８と、ＭＰＥＧ形式で符号化されたデータを復号するためのプログラムモジール格納領域２１２と、復号された結果であるビデオデータが蓄えられるビデオデータ格納領域２１１、外部から供給されたＭＰＥＧ形式で符号化されたビットストリームデータが格納されるＭＰＥＧデータ格納領域２１０といった領域が設定されている。本実施の形態において、これらの領域はあらかじめ物理的に固定された領域として設定されているわけではなく、ソフトウェア的に設定されている。
【００７５】
本実施の形態における共有メモリ２０８には、プロセスキュー２１３と、ライトポインタ２１４と、リードポインタ２１５とが格納されている。本実施の形態では、プロセスキュー２１３は、画面を複数に分割したセグメント（図４参照のスライス）ごとに対応して設けられている。各プロセスキュー２１３には、ＰＵ１０５によって次のような情報が書き込まれる。
【００７６】
本実施の形態におけるＰＵ１０５は、外部装置等から供給されるＭＰＥＧ形式で符号化されたビットストリームデータをＭＰＥＧデータ格納領域２１０に格納するとともに、当該ビットストリームデータを解析し、各スライスに対応したビットストリームの先頭位置を求める。すなわち、各スライスを復号するために用いるデータの先頭位置を求めるのである。
【００７７】
ＰＵ１０５は、上記のように求めた各スライスに対応するビットストリームの先頭位置を示す情報を、各々のスライスに対応するプロセスキュー２１３に書き込む。この結果、図１０に示すように、プロセスキュー２１３には、対応するスライスのビットストリームの先頭位置を示す情報がフレームごとに書き込まれることになる。
【００７８】
以上のようにプロセスキュー２１３が各スライスごとに設けられているため、本実施の形態ではライトポインタ２１４も各プロセスキュー２１３に対応して設けられている。ＰＵ１０５は、上述したようにプロセスキュー２１３に対し、ビットストリームの先頭位置を書き込む処理を行うとともに、その書き込み位置に応じてライトポインタ２１４を更新する処理を行う。
【００７９】
本実施の形態におけるリードポインタ２１５は、上記第１の実施の形態と同様、各スライスごとに対応して設けられている。ここで、図１１にリードポインタ２１５の構成を示す。同図に示すように、リードポインタ２１５は、対応するスライスごとに、「処理状態フラグ」と、「処理フレーム番号」といった情報が格納されている。
【００８０】
ここで、「処理状態フラグ」はそのスライスに対する復号処理が行われているか否かを示すフラグであり、あるＡＰＵが当該リードポインタ２１５にアクセスした時点で他のＡＰＵが当該スライスに対する復号処理を行っている場合には「処理中」となり、ＡＰＵが処理を行っていない場合には「未処理」となる。
【００８１】
「処理フレーム番号」には、そのスライスに対して復号処理が完了した最後のフレーム番号の次のフレーム番号を示す情報が格納される。つまり、あるスライスについて＃０〜＃５のフレームに対する復号化処理が終了している時点では、当該「処理フレーム番号」には最後のフレーム番号の次の番号である「＃６」が格納される。すなわち、リードポインタ２１５には、次にどのフレームに対して復号化処理を行えばよいかを示す情報といった、スライスごとの復号化処理の進行状況に関する情報が格納されているのである。
【００８２】
本実施の形態における各ＡＰＵ１０６、１０７‥‥は、上記第１の実施の形態と同様、テスト＆セットレジスタ１０４により許可が得られた場合に共有メモリ２０８にアクセスする。そして、リードポインタ２１５を参照して、復号対象となるスライスを選択する。本実施の形態では、上記第１の実施の形態と同様、共有メモリ２０８にアクセスが許可されたＡＰＵは、リードポインタ２１５に格納されたスライスごとの処理進行状況を参照し、以下の２つの条件を満たすスライスを処理すべきスライスとして決定する。
（１）当該スライスの「処理状態フラグ」が「処理中」ではない
（２）当該スライスの「処理フレーム番号」に示される番号が、他のスライスの番号よりも小さい番号である
【００８３】
このように処理すべきスライスを決定したＡＰＵは、リードポインタ２１５における当該スライスに対応する「処理状態フラグ」を「処理中」とし、復号化プログラムモジュール格納領域２１２から復号化プログラムモジュールを読み出す。そして、リードポインタ２１５の選択したスライスに対応する「処理フレーム番号」に示されるフレーム番号の当該スライスのビットストリームデータに対して復号化処理を行う。
【００８４】
より具体的には、ＡＰＵは、選択したスライスに対応するプロセスキュー２１３を参照し、選択したスライスの処理すべきフレームのビットストリーム先頭位置を取得する。そして、取得した先頭位置に基づいてＭＰＥＧデータ格納領域２１０から処理対象フレーム・スライスのビットストリームデータを読み出し、復号化処理を行ってビデオデータを復元し、これをビデオデータ格納領域２１１に格納する。
【００８５】
このように選択したスライスに対する復号化処理が終了すると、ＡＰＵは再び共有メモリ２０８にアクセスし、当該スライスに対応するリードポインタ２１５の「処理状態フラグ」を「未処理」とし、かつ「処理フレーム番号」を１つインクリメントする。このようにリードポインタ２１５を更新した後、ＡＰＵは更新後のリードポインタ２１５を参照して、上記条件（１）、（２）を満たすスライスを選択し、上述した手順で復号化処理を行う。
【００８６】
以上説明したように第２の実施の形態では、プロセッサエレメント１０１内の複数のＡＰＵ１０６、１０７‥‥は、画面を複数に分割したセグメント（スライス）の処理の進行状況に基づき、処理を行うべきスライスを選択して復号化処理を行うので、各ＡＰＵ１０６、１０７等を効率よく動作させてＭＰＥＧ形式にしたがった符号化データに対する復号化処理を行わせることができる。
【００８７】
（変形例）
なお、本発明は、上述した各実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
【００８８】
（変形例１）
上述した第１の実施の形態では、プロセスキュー１１３と、各スライスに対応したリードポインタ１１５に、スライスごとの処理進行状況を示す情報が格納されていたが、格納形態はこれに限定されるものではなく、スライスごとの処理の進行状況を示す情報、つまり行うべき画像処理の手順とその処理手順中のどの処理まで進んだかといった進行情報が格納されていればよい。例えば、スライスごとにプロセスキュー（図２参照）と、当該プロセスキュー１１３の各処理手順のどこまで処理が進んでいるかを示すポインタとを設けるようにしてもよい。
【００８９】
（変形例２）
また、上述した第１の実施の形態では、処理対象となるフレーム画像をＮ個のセグメントに分割し、これらの各々のセグメントに対し、Ｍ個（Ｎ＞Ｍ）のＡＰＵ１０６、１０７‥‥がＭＰＥＧ形式にしたがった符号化処理を行うようになっていたが、分割するセグメント数（複数）やＡＰＵの個数（複数）等は任意である。
【００９０】
例えば、上記実施の形態のようにＮ、Ｍが固定であってもよいし、入力される符号化対象となる画像のサイズ（画素数）等に基づいて分割するセグメント数Ｎを変動させるようにしてもよい。すなわち、ＡＰＵ１０６、１０７‥‥の各々は、フレーム画像全体に対して処理を行うのではなく、画像サイズに基づく個数に分割されたセグメント単位の画像に対して符号化処理を行うようにしてもよい。
【００９１】
（変形例３）
また、上述した各実施の形態では、各ＡＰＵがスライス単位で画像処理を行うようになっていたが、スライス単位に限定されるものではなく、画面を複数に複数に分割したセグメントごとに処理を行うものであればよい。
【００９２】
（変形例４）
また、上述した各実施の形態では、各ＡＰＵは、進行状況の最も遅いスライスを処理対象スライスとして選択するようになっていたが、各スライスの進行状況等に基づいて他の基準にしたがってスライスを選択するようにしてもよい。
【００９３】
例えば、過去一定期間のスライスごとの符号化、動き検出等に要する処理負担をモニタリングしておき、進行状況に加えて当該モニタリング結果を参照して処理対象スライスを選択するようにしてもよい。すなわち、進行状況が最も遅いスライスよりも若干処理手順が進んでいるスライス（１つ処理手順が進んでいるスライスなど）であっても、当該スライスについて過去一定期間の処理負担がその最も進行状況が遅いスライスよりも大きい場合には、その過去一定期間の処理負担の大きいスライスを選択するといったことを行うようにしてもよい。
【００９４】
（変形例５）
また、上述した実施の形態では、ＭＰＥＧ形式の符号化処理を行う画像処理装置（第１の実施の形態）、およびＭＰＥＧ形式で符号化されたデータを復号する画像処理装置（第２の実施の形態）に本発明を適用した場合について説明したが、本発明はこのような画像処理に限定されるわけではなく、画面を複数に分割して処理することができる他の種類の画像処理を行う装置、方法に適用することも可能である。
【００９５】
（変形例６）
なお、上述した各実施の形態で行われる複数のＡＰＵを利用した画像処理を、複数のプロセッサを有するコンピュータに実行させるためのプログラムをインターネット等の通信回線を介してユーザに提供するようにしてもよいし、当該プログラムをＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）などのコンピュータ読み取り可能な記録媒体に記録してユーザに提供するようにしてもよい。
【産業上の利用可能性】
【００９６】
以上のように、本発明にかかる画像処理装置、画像処理方法およびプログラムは、ＭＰＥＧ形式の符号化、復号化処理等を行う装置、方法等に有用である。
【図面の簡単な説明】
【００９７】
【図１】本発明の第１の実施の形態にかかる画像処理装置の構成を示す図である。
【図２】前記画像処理装置の共有メモリに設定されるプロセスキューの内容を示す図である。
【図３】前記画像処理装置の構成要素であるＡＰＵの構成を示すブロック図である。
【図４】前記画像処理装置の各ＡＰＵが処理を行う際の処理対象となるセグメントの一例を示す図である。
【図５】前記画像処理装置の各ＡＰＵが画像処理の際に行う処理手順を示すフローチャートである。
【図６】前記画像処理装置の共有メモリに設定されるリードポインタの内容を示す図である。
【図７】前記画像処理装置の各ＡＰＵによって並列的に行われる画像処理の内容を模式的に示す図である。
【図８】タイムバジェットにより各ＡＰＵの処理が中断した際の前記画像処理装置の構成要素であるＰＵの動作内容を説明するための図である。
【図９】本発明の第２の実施の形態にかかる画像処理装置の構成を示す図である。
【図１０】第２の実施の形態にかかる画像処理装置の共有メモリに設定されるプロセスキューの内容を示す図である。
【図１１】第２の実施の形態にかかる画像処理装置の共有メモリに設定されるリードポインタの内容を示す図である。
【符号の説明】
【００９８】
１００  画像処理装置
１０１  プロセッサエレメント
１０４  テスト＆セットレジスタ
１０５  ＰＵ（処理ユニット）
１０６、１０７  ＡＰＵ（付加処理ユニット）
１０８  共有メモリ
１０９  プログラムモジュール格納領域
１１０  ビットストリームデータ格納領域
１１１  ベクトルデータ格納領域
１１２  プログラムモジュール格納領域
１１３  プロセスキュー
１１４  ライトポインタ
１１５  リードポインタ
２００  画像処理装置
２０２  ローカルメモリ
２０３  レジスタ
２０５  浮動小数点ユニット
２０７  整数演算ユニット
２０８  共有メモリ
２１０  データ格納領域
２１１  ビデオデータ格納領域
２１２  プログラムモジール格納領域
２１３  プロセスキュー
２１４  ライトポインタ
２１５  リードポインタ
【図１】
2005189975.tif 000003
【図２】
2005189975.tif 000004
【図３】
2005189975.tif 000005
【図４】
2005189975.tif 000006
【図５】
2005189975.tif 000007
【図６】
2005189975.tif 000008
【図７】
2005189975.tif 000009
【図８】
2005189975.tif 000010
【図９】
2005189975.tif 000011
【図１０】
2005189975.tif 000012
【図１１】
2005189975.tif 000013