(57)【要約】【課題】メモリへのアクセス時間を低減し、適切なアクセス分配を行う。【解決手段】第１のメモリ１１は、処理済みのマクロブロックのマクロブロック情報を格納する。第２のメモリ１２は、取得用メモリ領域１２ａと退避用メモリ領域１２ｂとを含むシングルポートメモリである。転送要求判定部１３ｃは、マクロブロック情報を退避用メモリ領域１２ｂへ転送する退避用メモリ領域転送要求Ａと取得用メモリ領域１２ａにあるマクロブロック情報を保持メモリ１３ａへ転送する保持メモリ取り込み転送要求Ｂを出力する。メモリ転送制御部１４は、退避用メモリ領域１２ｂから第１のメモリ１１へマクロブロック情報を転送する第１のメモリ転送要求Ｃと第１のメモリ１１から取得用メモリ領域１２ａへマクロブロック情報を転送する取得用メモリ領域転送要求Ｄを出力する。メモリアクセス調停部１５は、第２のメモリ１２のポートアクセスの調停制御を行う。【選択図】図１
2007274224.tif 000002
【特許請求の範囲】
【請求項１】
画像信号を符号化／復号化処理する画像処理装置において、
処理済みのマクロブロックのマクロブロック情報を格納する第１のメモリと、
前記第１のメモリから転送された前記マクロブロック情報を格納しておく取得用メモリ領域と、前記第１のメモリへ転送して前記第１のメモリに格納させるべき前記マクロブロック情報を格納しておく退避用メモリ領域とでメモリ領域が２つに分割されたシングルポートの第２のメモリと、
前記マクロブロック情報を一時格納する保持メモリと、前記保持メモリから前記マクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化／復号化処理を行い、処理完了後に得られた前記マクロブロック情報を前記保持メモリに格納する符号化／復号化処理部と、前記符号化／復号化処理が完了した際に、前記保持メモリにある前記マクロブロック情報を、前記退避用メモリ領域へ転送するための退避用メモリ領域転送要求を出力し、前記符号化／復号化処理を開始する際に、前記取得用メモリ領域にある前記マクロブロック情報を前記保持メモリへ転送するための保持メモリ取り込み転送要求を出力する転送要求判定部と、前記退避用メモリ領域転送要求または前記保持メモリ取り込み転送要求に対する許可応答があれば、前記マクロブロック情報の転送制御を行うマクロブロック情報転送部と、から構成される画像処理部と、
前記第１のメモリの占有量を監視し、前記第１のメモリに空きがあれば、前記退避用メモリ領域から前記第１のメモリへ前記マクロブロック情報の転送を行うための第１のメモリ転送要求を出力し、前記第１のメモリに前記マクロブロック情報が格納されている場合は、前記第１のメモリから前記取得用メモリ領域へ前記マクロブロック情報の転送を行う取得用メモリ領域転送要求を出力し、前記第１のメモリ転送要求または前記取得用メモリ領域転送要求に対する許可応答があれば、前記マクロブロック情報の転送制御を行うメモリ転送制御部と、
前記退避用メモリ領域転送要求、前記保持メモリ取り込み転送要求、前記第１のメモリ転送要求、前記取得用メモリ領域転送要求を受信して、転送可能な場合は前記許可応答を出力して、前記第２のメモリのポートアクセスの調停制御を行い、前記調停制御を行う際は、前記画像処理部からの前記退避用メモリ領域転送要求及び前記保持メモリ取り込み転送要求を最優先とし、前記退避用メモリ領域と前記取得用メモリ領域のオーバーフロー／アンダーフローを発生させないように、前記メモリ転送制御部からの前記第１のメモリ転送要求及び前記取得用メモリ領域転送要求を次に優先させるメモリアクセス調停部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記保持メモリは、マクロブロックの処理開始時、少なくとも前記マクロブロックの１ライン左上、１ライン真上、１ライン右上、同一ライン左横に隣接するマクロブロックのマクロブロック情報を格納しておき、前記マクロブロックの処理が終了した後は、前記保持メモリは、前記マクロブロックのマクロブロック情報をさらに格納し、前記マクロブロック情報転送部は、前記退避用メモリ領域転送要求に対する許可応答があれば、前記同一ライン左横に隣接するマクロブロックのマクロブロック情報を前記退避用メモリ領域に転送し、かつ前記保持メモリ取り込み転送要求に対する許可応答があれば、次段マクロブロックの処理に備えて、少なくとも前記１ライン右上のマクロブロックの右横に位置するマクロブロックに関するマクロブロック情報を、前記取得用メモリ領域から読み出して前記保持メモリに転送することを特徴とする請求項１記載の画像処理装置。
【請求項３】
画像信号を符号化／復号化処理する画像処理装置において、
処理済みのマクロブロックのマクロブロック情報を格納する第１のメモリと、
前記第１のメモリから転送された前記マクロブロック情報を格納しておく取得用メモリ領域と、前記第１のメモリへ転送して前記第１のメモリに格納させるべき前記マクロブロック情報を格納しておく退避用メモリ領域とでメモリ領域が２つに分割されたシングルポートの第２のメモリと、
前記マクロブロック情報を格納する保持メモリと、前記保持メモリから前記マクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化／復号化処理を行い、処理完了後に得られた前記マクロブロック情報を前記保持メモリに格納する符号化／復号化処理部と、メモリ側ポート使用権譲渡通知を受けて、前記第２のメモリへアクセス可能なポート使用権を有する場合であって、前記符号化／復号化処理が完了した際には、前記保持メモリにある前記マクロブロック情報を、前記退避用メモリ領域へ転送し、前記符号化／復号化処理を開始する際には、前記取得用メモリ領域にある前記マクロブロック情報を前記保持メモリへ転送する画像処理側マクロブロック情報転送部と、前記取得用メモリ領域から前記保持メモリへの前記マクロブロック情報の転送完了時に、前記ポート使用権を相手先へ譲渡するための画像処理側ポート使用権譲渡通知を出力する画像処理側ポート使用権管理部と、から構成される画像処理部と、
前記画像処理側ポート使用権譲渡通知を受けて、前記ポート使用権を有する場合であって、前記退避用メモリ領域から前記第１のメモリへ前記マクロブロック情報の転送を行い、前記第１のメモリから前記取得用メモリ領域へ前記マクロブロック情報の転送を行うメモリ側マクロブロック情報転送部と、前記第１のメモリから前記取得用メモリ領域への前記マクロブロック情報の転送完了時、前記メモリ側ポート使用権譲渡通知を出力して、前記ポート使用権を前記画像処理部へ譲渡するメモリ側ポート使用権管理部と、から構成されるメモリ転送制御部と、
を有することを特徴とする画像処理装置。
【請求項４】
前記保持メモリは、マクロブロックの処理開始時、少なくとも前記マクロブロックの１ライン左上、１ライン真上、１ライン右上、同一ライン左横に隣接するマクロブロックのマクロブロック情報を格納しておき、前記マクロブロックの処理が終了した後は、前記保持メモリは、前記マクロブロックのマクロブロック情報をさらに格納し、前記画像処理側マクロブロック情報転送部は、前記ポート使用権があれば、前記同一ライン左横に隣接するマクロブロックのマクロブロック情報を前記退避用メモリ領域に転送し、かつ前記ポート使用権があれば、次段マクロブロックの処理に備えて、少なくとも前記１ライン右上のマクロブロックの右横に位置するマクロブロックに関するマクロブロック情報を、前記取得用メモリ領域から読み出して前記保持メモリに転送することを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記画像処理側ポート使用権管理部は、前記符号化／復号化処理の完了時に、前記ポート使用権がない場合は、前記ポート使用権を強制的に要求するためのポート使用権要求通知を出力し、前記メモリ側ポート使用権管理部は、前記ポート使用権要求通知を受信すると、前記取得用メモリ領域に前記マクロブロック情報が格納されているならば、前記メモリ側ポート使用権譲渡通知を出力して前記ポート使用権を前記画像処理部へ渡すことを特徴とする請求項３記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置に関し、特に画像信号をマクロブロック単位に符号化／復号化処理する画像処理装置に関する。
【背景技術】
【０００２】
近年、画像符号化／復号化方式は、ＰＶＲ（Personal Video Recorder）やカムコーダなどに応用され、これらディジタル家電の市場は拡大を続けている。市場が要求する高解像度かつ低コストな製品を実現するためには、ＬＳＩやＦＰＧＡ（Field Programmable Gate Array）などのハードウェアによる実現が不可欠であるが、動画像の符号化／復号化は多大な処理量を必要とし、消費電力が大きくなるため、消費電力を低減できるよう、回路規模の削減や適切な信号制御などが求められる。
【０００３】
一方、画像符号化方式では、一般に空間的な相関性を用いて情報量圧縮を行うため、符号化対象のマクロブロックに隣接する、すでに符号化済みのマクロブロックのマクロブロック情報を参照して符号化する方式が多用されている。マクロブロック情報としては、符号化のモード、Inter予測の際の動きベクトル値、ＤＣＴ（Discrete Cosine Transform）後の有効係数個数などがあげられる。
【０００４】
マクロブロック情報の量は画面サイズに比例して大きくなるが、特に高精細テレビジョン等の大画面を備える装置で、マクロブロック情報をＳＲＡＭ（Static Random Access Memory）のような高速メモリのみで保持しようとすると、回路規模が増加することになる。そこで、通常は、ＳＲＡＭと比べると低速ではあるが大容量のＤＲＡＭ（Dynamic RAM）も併用して、マクロブロック情報を保持することが一般的に行われている。
【０００５】
図１４はＤＲＡＭとＳＲＡＭを含む画像処理装置の概略構成を示す図である。画像処理装置１００は、符号化／復号化回路１０１、ＤＰ（dual port）−ＳＲＡＭ１０２ａ、１０２ｂ、転送回路１０３、ＤＲＡＭ１０４から構成される。ＤＰ−ＳＲＡＭ１０２ａ、１０２ｂは、デュアルポートを有して、書き出しと読み込みとを独立に行えるＳＲＡＭである。
【０００６】
符号化／復号化回路１０１は、マクロブロックの符号化処理または復号化処理を行う度に、処理の結果得られたマクロブロック情報をＤＰ−ＳＲＡＭ１０２ａに出力する。また、必要に応じてＤＰ−ＳＲＡＭ１０２ｂから、処理済のマクロブロックのマクロブロック情報を取り出し、マクロブロックの符号化／復号化処理に用いる。
【０００７】
転送回路１０３は、ＤＰ−ＳＲＡＭ１０２ａがオーバーフローせず、かつＤＰ−ＳＲＡＭ１０２ｂに、符号化／復号化処理に必要となる隣接のマクロブロック情報が常時存在しているように、マクロブロック情報をＤＰ−ＳＲＡＭ１０２ａからＤＲＡＭ１０４へ、ＤＲＡＭ１０４からＤＰ−ＳＲＡＭ１０２ｂへと、ＦＩＦＯ（First-In／First-Out）形式で適宜転送する。
【０００８】
このように、画像処理装置１００のメモリ周辺構成としては、主記憶にはＤＲＡＭ１０４等の低速メモリを使い、レイテンシ（遅延時間）隠蔽のために、符号化／復号化回路１０１とのインターフェース部分のみＤＰ−ＳＲＡＭ１０２ａ、１０２ｂの高速メモリを用いるのが一般的な構成である。
【０００９】
なお、画像処理のメモリ容量の低減化を図った従来の技術としては、１つのマクロブロックを４つのサブブロックに分割して処理することによって、多重ランダムアクセス可能な共有メモリシステムを使用しなくても並列処理を行う技術が提案されている（例えば、特許文献１）。
【特許文献１】特開平８−９３８９号公報（段落番号〔００１０〕〜〔００２０〕、第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図１４に示す従来の画像処理装置１００の構成では、処理速度を優先するために２個のデュアルポートのＳＲＡＭが用いられているが、低消費電力化のためには、ＳＲＡＭの個数を削減し、シングルポートＳＲＡＭを採択した方が望ましい。
【００１１】
このとき、１つのシングルポートのＳＲＡＭを使用して、図１４と同じような動作を実現する装置を構成しようとした場合、ＳＲＡＭの１つのポートに対するアクセスを、時分割によって調停制御する装置構成が考えられる。
【００１２】
図１５はシングルポートＳＲＡＭを用いた構成を示す図である。画像処理装置１１０は、符号化／復号化回路１１１、ＳＲＡＭ１１２、転送回路１１３、ＤＲＡＭ１１４、調停回路１１５から構成される。
【００１３】
調停回路１１５は、ＳＲＡＭ１１２に対する４つのアクセスを調停する。４つのアクセスとは、符号化／復号化回路１１１からＳＲＡＭ１１２への書き込みアクセス、ＳＲＡＭ１１２から符号化／復号化回路１１１への読み出しアクセス、転送回路１１３を介してのＤＲＡＭ１１４からＳＲＡＭ１１２への書き込みアクセス、転送回路１１３を介してのＳＲＡＭ１１２からＤＲＡＭ１１４への読み出しアクセスの４つである。調停回路１１５は、これらのアクセスに対して、ＳＲＡＭ１１２の１つのポートを時分割で、符号化／復号化回路１１１及び転送回路１１３で利用させるように調停制御を行う。
【００１４】
一方、リアルタイム処理を実現するにあたり、１マクロブロックあたりの処理時間は画面サイズ、フレームレートにより制約される。Ｈ．２６４ではマクロブロックは１６×１６画素のサイズであるので、フルハイビジョン（１０８０画素）では約２μｓしか１マクロブロックの処理に充てられないことになる。
【００１５】
したがって、図１５のように、シングルポートＳＲＡＭを用いて、単に時分割によるアクセス調停を行う構成に変更しただけでは、アクセスが競合したときの調停待ち時間が頻繁に発生することになるので、図１４で示した４ポート独立のメモリ構成に比べて、その調停待ち時間の分だけ処理時間の増加を招いてしまうといった問題があった。
【００１６】
また、符号化／復号化回路１１１は、その処理内容によってはマクロブロック毎の圧縮率の違い等によって処理時間も変動する。図１５のように、時分割処理によりポートを利用する構成では、ごく短時間で符号化／復号化処理が終わっても、転送回路１１３がポートを使用中であれば符号化／復号化回路１１１は、ポートが空くのを待たねばならない。このポートの空き待ち時間は、そのまま全体の処理時間の増加を招くことになる。
【００１７】
本発明はこのような点に鑑みてなされたものであり、メモリへのアクセス時間を低減し、かつ高速メモリまたは低速メモリに対して、適切なアクセス分配を行って、少ない回路規模で高速な画像処理を行う画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明では上記課題を解決するために、図１に示すような、画像信号を符号化／復号化処理する画像処理装置１０において、処理済みのマクロブロックのマクロブロック情報を格納する第１のメモリ１１と、第１のメモリ１１から転送されたマクロブロック情報を格納しておく取得用メモリ領域１２ａと、第１のメモリ１１へ転送して第１のメモリ１１に格納させるべきマクロブロック情報を格納しておく退避用メモリ領域１２ｂとでメモリ領域が２つに分割されたシングルポートの第２のメモリ１２と、マクロブロック情報を格納する保持メモリ１３ａと、保持メモリ１３ａからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化／復号化処理を行い、処理完了後に得られたマクロブロック情報を保持メモリ１３ａに格納する符号化／復号化処理部１３ｂと、符号化／復号化処理が完了した際に、保持メモリ１３ａにあるマクロブロック情報を、退避用メモリ領域１２ｂへ転送するための退避用メモリ領域転送要求Ａを出力し、符号化／復号化処理を開始する際に、取得用メモリ領域１２ａにあるマクロブロック情報を保持メモリ１３ａへ転送するための保持メモリ取り込み転送要求Ｂを出力する転送要求判定部１３ｃと、退避用メモリ領域転送要求Ａまたは保持メモリ取り込み転送要求Ｂに対する許可応答があれば、マクロブロック情報の転送制御を行うマクロブロック情報転送部１３ｄと、から構成される画像処理部１３と、第１のメモリ１１の占有量を監視し、第１のメモリ１１に空きがあれば、退避用メモリ領域１２ｂから第１のメモリ１１へマクロブロック情報の転送を行うための第１のメモリ転送要求Ｃを出力し、第１のメモリ１１にマクロブロック情報が格納されている場合は、第１のメモリ１１から取得用メモリ領域１２ａへマクロブロック情報の転送を行う取得用メモリ領域転送要求Ｄを出力し、第１のメモリ転送要求Ｃまたは取得用メモリ領域転送要求Ｄに対する許可応答があれば、マクロブロック情報の転送制御を行うメモリ転送制御部１４と、退避用メモリ領域転送要求Ａ、保持メモリ取り込み転送要求Ｂ、第１のメモリ転送要求Ｃ、取得用メモリ領域転送要求Ｄを受信して、転送可能な場合は許可応答を出力して、第２のメモリ１２のポートアクセスの調停制御を行い、調停制御を行う際は、画像処理部１３からの退避用メモリ領域転送要求Ａ及び保持メモリ取り込み転送要求Ｂを最優先とし、退避用メモリ領域１２ｂと取得用メモリ領域１２ａのオーバーフロー／アンダーフローを発生させないように、メモリ転送制御部１４からの第１のメモリ転送要求Ｃ及び取得用メモリ領域転送要求Ｄを次に優先させるメモリアクセス調停部１５と、を有することを特徴とする画像処理装置１０が提供される。
【００１９】
ここで、第１のメモリ１１は、処理済みのマクロブロックのマクロブロック情報を格納する。第２のメモリ１２は、第１のメモリ１１から転送されたマクロブロック情報を格納しておく取得用メモリ領域１２ａと、第１のメモリ１１へ転送して格納させるべきマクロブロック情報を格納しておく退避用メモリ領域１２ｂとでメモリ領域が分割されたシングルポートのメモリである。保持メモリ１３ａは、マクロブロック情報を格納する。符号化／復号化処理部１３ｂは、保持メモリ１３ａからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化／復号化処理を行い、処理完了後のマクロブロック情報を保持メモリ１３ａに格納する。転送要求判定部１３ｃは、符号化／復号化処理が完了した際に、保持メモリ１３ａにあるマクロブロック情報を、退避用メモリ領域１２ｂへ転送するための退避用メモリ領域転送要求Ａを出力し、符号化／復号化処理を開始する際に、取得用メモリ領域１２ａにあるマクロブロック情報を保持メモリ１３ａへ転送するための保持メモリ取り込み転送要求Ｂを出力する。マクロブロック情報転送部１３ｄは、退避用メモリ領域転送要求Ａまたは保持メモリ取り込み転送要求Ｂに対する許可応答があれば、マクロブロック情報の転送制御を行う。メモリ転送制御部１４は、第１のメモリ１１の占有量を監視し、第１のメモリ１１に空きがあれば、退避用メモリ領域１２ｂから第１のメモリ１１へマクロブロック情報の転送を行うための第１のメモリ転送要求Ｃを出力し、第１のメモリ１１にマクロブロック情報が格納されている場合は、第１のメモリ１１から取得用メモリ領域１２ａへマクロブロック情報の転送を行う取得用メモリ領域転送要求Ｄを出力し、第１のメモリ転送要求Ｃまたは取得用メモリ領域転送要求Ｄに対する許可応答があれば、マクロブロック情報の転送制御を行う。メモリアクセス調停部１５は、退避用メモリ領域転送要求Ａ、保持メモリ取り込み転送要求Ｂ、第１のメモリ転送要求Ｃ、取得用メモリ領域転送要求Ｄを受信して、転送可能な場合は許可応答を出力して、第２のメモリ１２に対するポートアクセスの調停制御を行い、調停制御を行う際は、画像処理部１３からの退避用メモリ領域転送要求Ａ及び保持メモリ取り込み転送要求Ｂを最優先とし、退避用メモリ領域１２ｂと取得用メモリ領域１２ａのオーバーフロー／アンダーフローを発生させないように、メモリ転送制御部１４からの第１のメモリ転送要求Ｃ及び取得用メモリ領域転送要求Ｄを次に優先させる。
【発明の効果】
【００２０】
本発明の画像処理装置は、第１のメモリと、取得用メモリ領域と退避用メモリ領域とでメモリ領域が２つに分割されたシングルポートの第２のメモリと、保持メモリとを有し、保持メモリからマクロブロック情報を退避用メモリ領域へ転送するための退避用メモリ領域転送要求、取得用メモリ領域にあるマクロブロック情報を保持メモリへ転送するための保持メモリ取り込み転送要求、退避用メモリ領域から第１のメモリへマクロブロック情報の転送を行うための第１のメモリ転送要求、第１のメモリから取得用メモリ領域へマクロブロック情報の転送を行う取得用メモリ領域転送要求を生成して、退避用メモリ領域転送要求及び保持メモリ取り込み転送要求を最優先とし、第１のメモリ転送要求及び取得用メモリ領域転送要求を次に優先させて調停制御を行う構成とした。これにより、メモリへのアクセス時間を低減し、かつ高速メモリまたは低速メモリに対して、適切なアクセス分配を行って、少ない回路規模で高速な画像処理を行うことが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面を参照して説明する。図１は画像処理装置の原理図である。第１の実施の形態の画像処理装置１０は、第１のメモリ１１、第２のメモリ１２、画像処理部１３、メモリ転送制御部１４、メモリアクセス調停部１５から構成される。
【００２２】
画像処理装置１０は、ＭＰＥＧ４、Ｈ．２６４などの画像符号化／復号化処理をハードウェアでリアルタイムに行う際に、処理対象のマクロブロックに隣接する、すでに符号化／復号化済みのマクロブロックのマクロブロック情報を参照して、符号化／復号化処理を行う装置である。
【００２３】
マクロブロック情報とは、例えば、符号化のモード、Inter予測の際の動きベクトル値、ＤＣＴ後の有効係数個数等を含み、画像信号をマクロブロック単位で符号化した際の符号化処理結果の情報、または画像信号をマクロブロック単位で復号化した際の復号化処理結果の情報のことであり、このマクロブロック情報は、次に符号化／復号化処理される処理対象のマクロブロックの参照情報として用いられるものである。
【００２４】
第１のメモリ１１は、低速メモリであるＤＲＡＭに該当し、処理（符号化／復号化処理）済みのマクロブロックのマクロブロック情報を格納する。以下、第１のメモリ１１をＤＲＡＭ１１と呼ぶ。
【００２５】
第２のメモリ１２は、高速メモリであるＳＲＡＭに該当し、ＤＲＡＭ１１から転送されたマクロブロック情報を格納しておく取得用メモリ領域１２ａと、ＤＲＡＭ１１へ転送して格納させるべきマクロブロック情報を一旦格納しておく退避用メモリ領域１２ｂとでメモリ領域が分割されたシングルポートのメモリである。以下、第２のメモリ１２をＳＲＡＭ１２と呼ぶ。
【００２６】
画像処理部１３は、保持メモリ１３ａ（以下、保持メモリは保持ＦＦと呼ぶ）、符号化／復号化処理部１３ｂ、転送要求判定部１３ｃ、マクロブロック情報転送部１３ｄから構成される。保持ＦＦ１３ａは、マクロブロック情報を一時格納するメモリである。
【００２７】
符号化／復号化処理部１３ｂは、保持ＦＦ１３ａからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化／復号化処理を行い、処理完了後のマクロブロック情報を保持ＦＦ１３ａに格納する。
【００２８】
転送要求判定部１３ｃは、符号化／復号化処理が完了した際に、保持ＦＦ１３ａにあるマクロブロック情報を、退避用メモリ領域１２ｂへ転送するための退避用メモリ領域転送要求Ａを出力する。
【００２９】
また、符号化／復号化処理を開始する際には、取得用メモリ領域１２ａにあるマクロブロック情報を保持ＦＦ１３ａへ転送して取り込むための保持ＦＦ取り込み転送要求Ｂを出力する。
【００３０】
マクロブロック情報転送部１３ｄは、退避用メモリ領域転送要求Ａまたは保持ＦＦ取り込み転送要求Ｂによる許可応答にもとづき、保持ＦＦ１３ａ内のマクロブロック情報を退避用メモリ領域１２ｂに転送したり、取得用メモリ領域１２ａ内のマクロブロック情報を保持ＦＦ１３ａに転送したりする。
【００３１】
メモリ転送制御部１４は、ＤＲＡＭ１１の占有量を監視し、ＤＲＡＭ１１に空きがあれば、退避用メモリ領域１２ｂからＤＲＡＭ１１へマクロブロック情報の転送を行うための第１のメモリ転送要求Ｃ（以下、ＤＲＡＭ転送要求Ｃと呼ぶ）を出力する。また、ＤＲＡＭ１１にマクロブロック情報が格納されている場合は、ＤＲＡＭ１１から取得用メモリ領域１２ａへマクロブロック情報の転送を行う取得用メモリ領域転送要求Ｄを出力する。さらにＤＲＡＭ転送要求Ｃまたは取得用メモリ領域転送要求Ｄに対する許可応答があれば、マクロブロック情報の転送制御を行う。
【００３２】
メモリアクセス調停部１５は、退避用メモリ領域転送要求Ａ、保持ＦＦ取り込み転送要求Ｂ、第１のメモリ転送要求Ｃ、取得用メモリ領域転送要求Ｄを受信して、転送可能な場合は許可応答を出力して、ＳＲＡＭ１２に対するポートアクセスの調停制御を行う。この場合、画像処理部１３からの退避用メモリ領域転送要求Ａ及び保持ＦＦ取り込み転送要求Ｂを最優先とし、退避用メモリ領域１２ｂと取得用メモリ領域１２ａのオーバーフロー／アンダーフローを発生させないように、メモリ転送制御部１４からのＤＲＡＭ転送要求Ｃ及び取得用メモリ領域転送要求Ｄを次に優先させて、調停制御を行う。
【００３３】
ここで、処理対象のマクロブロックに対して、どのマクロブロックのマクロブロック情報をメモリに格納するかに関するメモリ格納処理について説明する。図２はマクロブロック情報を取得する際の隣接マクロブロックを示す図である。符号化処理時、画面内のマクロブロックをラスタ順（図の点線矢印方向）に処理していくが、現在の処理対象のマクロブロックをマクロブロックＭＢ０とすると、マクロブロックＭＢ０周辺の符号化済み隣接マクロブロックは、マクロブロックＭＢ０の１ライン左上、１ライン真上、１ライン右上、同一ライン左横に位置するマクロブロックＭＢｒ１〜ＭＢｒ４の４つとなる。
【００３４】
したがって、マクロブロックＭＢ０の符号化を行う場合は、これらマクロブロックＭＢｒ１〜ＭＢｒ４それぞれからの符号化情報を用いることになる。また、この場合、マクロブロックＭＢｒ３以降からマクロブロックＭＢｒ４の左手前に位置するマクロブロック（図の点線枠で示すマクロブロックグループｇ１）までのマクロブロック情報は、マクロブロックＭＢ０以降で処理するマクロブロック情報として、今後の処理のために用いられるものなので、マクロブロックグループｇ１のマクロブロック情報は、マクロブロックＭＢ０を処理する時点で保持しておく必要がある。すなわち、現時点で参照しているマクロブロックＭＢｒ１〜ＭＢｒ４のマクロブロック情報の分と合わせて、図の点線枠で示す各マクロブロックのマクロブロック情報も、メモリに保持しておくことになる。
【００３５】
マクロブロックＭＢ０の処理後は、次はマクロブロックＭＢ１が処理対象となり、このとき、マクロブロックＭＢｒ２、ＭＢｒ３、ＭＢｒ５、ＭＢ０のそれぞれのマクロブロック情報が参照されることになる。
【００３６】
図２を使って、画像処理装置１０におけるマクロブロック情報の流れの一例について説明すると、符号化／復号化処理部１３ｂでマクロブロックＭＢ０の符号化／復号化処理の開始時には、保持ＦＦ１３ａは、最低でもマクロブロックＭＢｒ１〜ＭＢｒ４のそれぞれのマクロブロック情報を保持していることになる。
【００３７】
保持ＦＦ１３ａが、マクロブロックＭＢｒ１〜ＭＢｒ４のそれぞれのマクロブロック情報を保持していると仮定すると、マクロブロックＭＢ０の処理が終了した後、マクロブロックＭＢ０のマクロブロック情報は、保持ＦＦ１３ａに格納される。また、マクロブロックＭＢｒ４のマクロブロック情報は、退避用メモリ領域１２ｂに転送され（退避用メモリ領域転送要求Ａの許可応答があった場合）、その後、ＤＲＡＭ１１へ転送されて格納される。さらに、次のマクロブロックＭＢ１の処理に備えて、取得用メモリ領域１２ａからはマクロブロックＭＢｒ５のマクロブロック情報が、保持ＦＦ１３ａに転送されて（保持ＦＦ取り込み転送要求Ｂの許可応答があった場合）格納されることになる（マクロブロックＭＢｒ５のマクロブロック情報だけでなく、マクロブロックグループｇ１の中のより多くのマクロブロック情報を保持ＦＦ１３ａに転送しておいてもよい）。なお、メモリ間のマクロブロック情報の流れ及びメモリ調停の詳細については図４〜図７で後述する。
【００３８】
次に第１の実施の形態の画像処理装置１０の構成及び動作について詳しく説明する。図３は画像処理装置１０の構成を示す図である。第１の実施の形態の画像処理装置１０は、ＤＲＡＭ１１、ＳＲＡＭ１２、画像処理部１３、ＤＲＡＭ転送制御部１４（図１のメモリ転送制御部１４に該当）、メモリアクセス調停部１５から構成され、メモリアクセス調停部１５において、ＳＲＡＭ１２のポートアクセスの優先度判定を行う装置である。
【００３９】
なお、図１で上述した構成要素の説明は省略する。また、退避用メモリ領域転送要求Ａ、保持ＦＦ取り込み転送要求Ｂ、ＤＲＡＭ転送要求Ｃ、取得用メモリ領域転送要求Ｄのそれぞれを、以降では単に転送要求Ａ、Ｂ、Ｃ、Ｄとも表記する。
【００４０】
画像処理部１３は、保持ＦＦ１３ａ、符号化／復号化処理部１３ｂ、転送要求判定部１３ｃ、転送回路１３ｄ−１、１３ｄ−２を含む。転送回路１３ｄ−１、１３ｄ−２は、図１のマクロブロック情報転送部１３ｄに含まれる。
【００４１】
転送要求判定部１３ｃは、メモリアクセス調停部１５から送信される、退避用メモリ領域転送要求Ａの許可応答を受信すると、転送指示を転送回路１３ｄ−１に与える。転送回路１３ｄ−１は、転送指示にもとづき、保持ＦＦ１３ａ上のマクロブロック情報を、ＳＲＡＭ１２の退避用メモリ領域１２ｂへ転送し、ＳＲＡＭ１２は、退避用メモリ領域１２ｂ内に、そのマクロブロック情報を格納する。
【００４２】
また、転送要求判定部１３ｃは、メモリアクセス調停部１５から送信される、保持ＦＦ取り込み転送要求Ｂの許可応答を受信すると、転送指示を転送回路１３ｄ−２に与える。転送回路１３ｄ−２は、転送指示にもとづき、ＳＲＡＭ１２の取得用メモリ領域１２ａに格納されているマクロブロック情報を読み出して、保持ＦＦ１３ａへ転送し、保持ＦＦ１３ａは、そのマクロブロック情報を格納する。
【００４３】
ＤＲＡＭ転送制御部１４は、転送要求判定部１４ａ、占有量監視回路１４ｂ、転送回路１４ｃ−１、１４ｃ−２を含む。占有量監視回路１４ｂは、ＤＲＡＭ１１のメモリ占有量を監視して、監視結果を転送要求判定部１４ａへ送信する。転送要求判定部１４ａは、図１で上述したように、占有量の状態にもとづいて、ＤＲＡＭ転送要求Ｃまたは取得用メモリ領域転送要求Ｄを送信する。
【００４４】
転送要求判定部１４ａは、メモリアクセス調停部１５から送信される、ＤＲＡＭ転送要求Ｃの許可応答を受信すると、転送指示を転送回路１４ｃ−２に与える。転送回路１４ｃ−２は、転送指示にもとづき、ＳＲＡＭ１２の退避用メモリ領域１２ｂに格納されているマクロブロック情報を読み出して、ＤＲＡＭ１１（ＤＲＡＭ１１内の退避用メモリ領域）へ転送し、ＤＲＡＭ１１は、そのマクロブロック情報を格納する。
【００４５】
また、転送要求判定部１４ａは、メモリアクセス調停部１５から送信される、取得用メモリ領域転送要求Ｄの許可応答を受信すると、転送指示を転送回路１４ｃ−１に与える。転送回路１４ｃ−１は、転送指示にもとづき、ＤＲＡＭ１１上のマクロブロック情報を、ＳＲＡＭ１２の取得用メモリ領域１２ａへ転送し、ＳＲＡＭ１２は、取得用メモリ領域１２ａ内に、そのマクロブロック情報を格納する。
【００４６】
メモリアクセス調停部１５は、調停制御部１５ａ、占有量監視回路１５ｂ−１、１５ｃ−１を含む。占有量監視回路１５ｂ−１は、退避用メモリ領域１２ｂのメモリ占有量を監視して、監視結果である占有量通知ｂ１を出力し、占有量監視回路１５ｃ−１は、取得用メモリ領域１２ａのメモリ占有量を監視して、監視結果である占有量通知ｃ１を出力する。
【００４７】
調停制御部１５ａは、占有量通知ｂ１から退避用メモリ領域１２ｂに空きがあることを認識し、かつ退避用メモリ領域転送要求Ａを受信した場合には、退避用メモリ領域転送要求Ａに対する許可応答を画像処理部１３へ送信する。
【００４８】
また、占有量通知ｃ１から取得用メモリ領域１２ａにマクロブロック情報が格納されていることを認識し、かつ保持ＦＦ取り込み転送要求Ｂを受信した場合には、保持ＦＦ取り込み転送要求Ｂに対する許可応答を画像処理部１３へ送信する。
【００４９】
さらに、調停制御部１５ａは、占有量通知ｂ１から退避用メモリ領域１２ｂにマクロブロック情報が格納されていることを認識し、かつＤＲＡＭ転送要求Ｃを受信した場合には、ＤＲＡＭ転送要求Ｃに対する許可応答をＤＲＡＭ転送制御部１４へ送信する。
【００５０】
さらにまた、占有量通知ｃ１から取得用メモリ領域１２ａに空きがあることを認識し、かつ取得用メモリ領域転送要求Ｄを受信した場合には、取得用メモリ領域転送要求Ｄに対する許可応答をＤＲＡＭ転送制御部１４へ送信する。
【００５１】
調停制御部１５ａでは、上記の４つのアクセス要求に対し、基本はラウンドロビンによる処理（アクセス要求を巡回させての処理）を行うが、画像処理部１３からの要求があった場合にはこれを最優先とし、また、取得用メモリ領域１２ａと退避用メモリ領域１２ｂの各領域のoverflow／underflowを発生させないようにアクセス要求を処理することを２番目に高い優先度として調停制御を行うものである。
【００５２】
次に第１の実施の形態の画像処理装置１０の具体的な調停動作についてタイムチャートを用いて説明する。図４は画像処理装置１０の調停動作を示すタイムチャートである。画像処理装置１０の動作例として、符号化／復号化処理が短い場合をタイムチャートで示したものである。要求信号のネゲートは、応答信号をアサートすることで生じるのではなく、転送処理完了にてネゲートされるプロトコルとする。
【００５３】
なお、図４に示す各サイクルの状態がわかりやすいように、図５〜図７に各サイクルの状態を表す状態遷移図を示す（実際にはメモリアクセス調停部１５、ＤＲＡＭ転送制御部１４を介して調停制御が行われるが図では省略している）。図５〜図７中の実線矢印は、転送要求Ａ〜Ｄが許可されることによりマクロブロック情報が流れる様子を示し、点線矢印は、転送要求Ａ〜Ｄのアサート状態（アサートしているだけでマクロブロック情報は流れていない状態）を示す。
【００５４】
〔ＣＹＣ１〕
（初期状態）符号化／復号化処理部１３ｂは、１マクロブロックの符号化／復号化処理が完了した直後とする。その処理結果のマクロブロック情報が保持ＦＦ１３ａ上にあり、それを退避するために転送要求Ａ（保持ＦＦ１３ａ→退避用メモリ領域１２ｂ）を調停制御部１５ａにアサートする。この状態では、退避用メモリ領域１２ｂは空であり、取得用メモリ領域１２ａは満杯であるとする。ＤＲＡＭ転送制御部１４は、退避／取得共に制御は不要な状態であるので何も転送要求は発しない。
【００５５】
（展開）調停制御部１５ａは、転送要求Ａを受信して転送を許可する。符号化／復号化処理部１３ｂは、保持ＦＦ１３ａから退避用メモリ領域１２ｂへマクロブロック情報を転送する。転送完了により、転送要求Ａはネゲートされる。
【００５６】
〔ＣＹＣ２〕
（初期状態）符号化／復号化処理部１３ｂは、次マクロブロックの符号化／復号化処理を行うために転送要求Ｂ（取得用メモリ領域１２ａ→保持ＦＦ１３ａ）を調停制御部１５ａにアサートする。退避用メモリ領域１２ｂはＣＹＣ１での転送により空ではなくなっている。ＤＲＡＭ転送制御部１４は、退避用メモリ領域１２ｂ内のマクロブロック情報のＤＲＡＭ１１退避のために転送要求Ｃ（退避用メモリ領域１２ｂ→ＤＲＡＭ１１）をアサートする（ＤＲＡＭ１１上の退避用領域が満杯ではない状況を想定）。
【００５７】
（展開）調停制御部１５ａは、優先度の高い転送要求Ｂを受信し、その転送を許可する。符号化／復号化処理部１３ｂは、取得用メモリ領域１２ａから保持ＦＦ１３ａへの転送を行う。転送完了により、転送要求Ｂはネゲートされる。
【００５８】
〔ＣＹＣ３〕
（初期状態）符号化／復号化処理部１３ｂは、ＣＹＣ２で取得用メモリ領域１２ａから転送されたマクロブロック情報を用いて符号化／復号化処理を行う。処理中であるので、転送要求は発生しない。また、ＤＲＡＭ転送制御部１４からの転送要求Ｃはアサートされたままである。加えて、ＣＹＣ２での取得用メモリ領域１２ａ→保持ＦＦ１３ａへの転送により、取得用メモリ領域１２ａは満杯ではなくなっているので、その空き領域に新たなＤＲＡＭ１１上のマクロブロック情報を取り込むための転送要求Ｄ（ＤＲＡＭ１１→取得用メモリ領域１２ａ）をアサートする（ＤＲＡＭ１１上の退避用メモリ領域が空ではない状況を想定）。
【００５９】
（展開）調停制御部１５ａは、ラウンドロビンにより転送要求Ｃを受信し、その転送を許可する。これにより、ＤＲＡＭ転送制御部１４は、退避用メモリ領域１２ｂからＤＲＡＭ１１への転送を行う。
【００６０】
〔ＣＹＣ４〕
（初期状態）符号化／復号化処理部１３ｂは、１マクロブロックの符号化／復号化処理が完了し、転送要求Ａ（保持ＦＦ１３ａ→退避用メモリ領域１２ｂ）をアサートする。ＤＲＡＭ転送制御部１４による、退避用メモリ領域１２ｂからＤＲＡＭ１１への転送はＣＹＣ３から続いている。転送要求Ｃ、Ｄはアサートされたままである。
【００６１】
（展開）ＣＹＣ３からの退避用メモリ領域１２ｂからＤＲＡＭ１１への転送が引き続き行われているので、調停制御部１５ａは転送要求Ａ（保持ＦＦ１３ａ→退避用メモリ領域１２ｂ）、転送要求Ｄ（ＤＲＡＭ１１→取得用メモリ領域１２ａ）共に放置したままとする。転送完了により、転送要求Ｃはネゲートされる。
【００６２】
〔ＣＹＣ５〕
（初期状態）符号化／復号化処理部１３ｂは、引き続き転送要求Ａをアサートしており、ＤＲＡＭ転送制御部１４は、引き続き転送要求Ｄをアサートしている。ＣＹＣ３、４の転送により退避用メモリ領域１２ｂは空になっているので、転送要求Ｃは発生しない。
【００６３】
（展開）調停制御部１５ａは、優先度の高い転送要求Ａを受信し、その転送を許可する。符号化／復号化処理部１３ｂは、保持ＦＦ１３ａから退避用メモリ領域１２ｂへの転送を行う。転送完了により、転送要求Ａはネゲートされる。
【００６４】
〔ＣＹＣ６〕
（初期状態）符号化／復号化処理部１３ｂは、次マクロブロックの符号化／復号化処理を行うために転送要求Ｂをアサートする。ＤＲＡＭ転送制御部１４は、引き続き転送要求Ｄをアサートしている。加えて、退避用メモリ領域１２ｂはＣＹＣ５での転送により空ではなくなっており、退避用メモリ領域１２ｂに格納されているマクロブロック情報のＤＲＡＭ１１退避のために転送要求Ｃをアサートする。
【００６５】
（展開）調停制御部１５ａは、優先度の高い転送要求Ｂを受信し、その転送を許可する。符号化／復号化処理部１３ｂは、取得用メモリ領域１２ａから保持ＦＦ１３ａへの転送を行う。転送完了により、転送要求Ｂはネゲートされる。
【００６６】
〔ＣＹＣ７〕
（初期状態）符号化／復号化処理部１３ｂは、ＣＹＣ６で取得用メモリ領域１２ａから保持ＦＦ１３ａへ転送したマクロブロック情報を用いて符号化／復号化処理を行う。処理中であるので、転送要求は発生しない。ＤＲＡＭ転送制御部１４は、引き続き転送要求Ｃ、Ｄをアサートしている。
【００６７】
（展開）調停制御部１５ａは、ラウンドロビンにより転送要求Ｄを受信し、その転送を許可する。ＤＲＡＭ転送制御部１４は、ＤＲＡＭ１１から取得用メモリ領域１２ａへの転送を行う。
【００６８】
〔ＣＹＣ８〕
（初期状態）符号化／復号化処理部１３ｂは、１マクロブロックの符号化／復号化処理が完了し、転送要求Ａをアサートする。ＤＲＡＭ転送制御部１４によるＤＲＡＭ１１から取得用メモリ領域１２ａへの転送はＣＹＣ７から続いている。転送要求Ｃ、Ｄはアサートされたままである。
【００６９】
（展開）ＣＹＣ７からの転送が引き続き行われているので、調停制御部１５ａは転送要求Ａ、Ｃ共に放置したままとする。転送完了により、転送要求Ｄはネゲートされる。
〔ＣＹＣ９〕
（初期状態）符号化／復号化処理部１３ｂは、引き続き、転送要求Ａをアサートしている。ＤＲＡＭ転送制御部１４は、引き続き、転送要求Ｃをアサートしている。加えて、ＣＹＣ２にて発生した取得用メモリ領域１２ａの空の分しかＣＹＣ７、８では転送（ＤＲＡＭ１１から取得用メモリ領域１２ａへの転送）されておらず、ＣＹＣ６で発生した分の空き（取得用メモリ領域１２ａから保持ＦＦ１３ａへ転送した際にできた取得用メモリ領域１２ａ上の空き）に、新たなＤＲＡＭ１１上のマクロブロック情報を取り込むための転送要求Ｄを再度アサートする。
【００７０】
（展開）調停制御部１５ａは、優先度の高い転送要求Ａを受信し、その転送を許可する。符号化／復号化処理部１３ｂは、保持ＦＦ１３ａから退避用メモリ領域１２ｂへの転送を行う。転送完了により、転送要求Ａはネゲートされる。
【００７１】
〔ＣＹＣ１０〕
（初期状態）符号化／復号化処理部１３ｂは、次マクロブロックの符号化／復号化処理を行うために転送要求Ｂをアサートする。ＤＲＡＭ転送制御部１４は、引き続き、転送要求Ｃ、Ｄをアサートしている。
【００７２】
（展開）調停制御部１５ａは、優先度の高い転送要求Ｂを受信し、その転送を許可する。符号化／復号化処理部１３ｂは、取得用メモリ領域１２ａから保持ＦＦ１３ａへの転送を行う。転送完了により、転送要求Ｂはネゲートされる。
【００７３】
上記の制御の結果、符号化／復号化処理部１３ｂのマクロブロック処理時間がある程度の長さで、ＤＲＡＭ１１への退避に要する時間と、ＤＲＡＭ１１からの取得に要する時間の和と同程度である状況であれば、マクロブロック処理期間にＳＲＡＭ１２とＤＲＡＭ１１の間の転送が行われるという最も安定した状態となる。
【００７４】
反対に、符号化／復号化処理部１３ｂのマクロブロック処理時間が極端に短い場合は、ＳＲＡＭ１２上の退避用メモリ領域１２ｂと取得用メモリ領域１２ａの各領域が破綻しない限り、マクロブロック処理期間にはＳＲＡＭ１２とＤＲＡＭ１１の間の転送は退避か取得かどちらかのみが許可される。
【００７５】
以上説明したように、第１の実施の形態の構成によれば、符号化／復号化処理部１３ｂから出力されるマクロブロック情報は、マクロブロック処理期間中は適宜、保持ＦＦ１３ａに書き込まれていき、全てが確定した時点でＳＲＡＭ１２への書き込みを行う。また、符号化／復号化処理部１３ｂが使用するマクロブロック情報は、マクロブロック処理開始前にＳＲＡＭ１２から保持ＦＦ１３ａに一括して読み込まれ、符号化／復号化処理部１３ｂはマクロブロック処理期間中にはその保持ＦＦ１３ａ上の値を適宜参照して処理を行うこととした。このような構成にすることにより、符号化／復号化処理部１３ｂ側からのＳＲＡＭ１２のポートへのアクセス時間を短縮することが可能になる。
【００７６】
次に第２の実施の形態の画像処理装置について説明する。第２の実施の形態は、画像処理部とＤＲＡＭ転送制御部とでポート使用権をやりとりしながら、ＳＲＡＭへのポートアクセスを行うものである。
【００７７】
図８は画像処理装置の原理図である。画像処理装置２０は、ＤＲＡＭ（第１のメモリ）２１、ＳＲＡＭ（第２のメモリ）２２、画像処理部２３、メモリ転送制御部２４から構成される。
【００７８】
ＤＲＡＭ２１は、処理（符号化／復号化処理）済みのマクロブロックのマクロブロック情報を格納する。ＳＲＡＭ２２は、ＤＲＡＭ２１から転送されたマクロブロック情報を格納しておく取得用メモリ領域２２ａと、ＤＲＡＭ２１へ転送して、ＤＲＡＭ２１に格納させるべきマクロブロック情報を格納しておく退避用メモリ領域２２ｂとでメモリ領域が２つに分割されたシングルポートのメモリである。
【００７９】
画像処理部２３は、保持ＦＦ（保持メモリ）２３ａ、符号化／復号化処理部２３ｂ、画像処理側ポート使用権管理部２３ｃ、画像処理側マクロブロック情報転送部２３ｄから構成される。
【００８０】
保持ＦＦ２３ａは、マクロブロック情報を一時格納するメモリである。符号化／復号化処理部２３ｂは、保持ＦＦ２３ａからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化／復号化処理を行う。また、処理完了後に得られたマクロブロック情報を保持ＦＦ２３ａに格納する。
【００８１】
画像処理側マクロブロック情報転送部２３ｄは、メモリ側ポート使用権譲渡通知Ｂが与えられていて（画像処理側ポート使用権管理部２３ｃがメモリ側ポート使用権譲渡通知Ｂを受信して）、画像処理部２３がＳＲＡＭ２２へアクセス可能なポート使用権を有する場合であって、符号化／復号化処理部２３ｂの符号化／復号化処理が完了した際には、保持ＦＦ２３ａにあるマクロブロック情報を、退避用メモリ領域２２ｂへ転送し、符号化／復号化処理部２３ｂが符号化／復号化処理を開始する際には、取得用メモリ領域２２ａにあるマクロブロック情報を保持ＦＦ２３ａへ転送する。
【００８２】
画像処理側ポート使用権管理部２３ｃは、取得用メモリ領域２２ａから保持ＦＦ２３ａへのマクロブロック情報の転送完了時に、ポート使用権を相手先（メモリ転送制御部２４）へ譲渡するための画像処理側ポート使用権譲渡通知Ａを出力する。また、符号化／復号化処理の完了時に、ポート使用権が画像処理部２３側にない場合は、ポート使用権を強制的に要求するためのポート使用権要求通知Ｃを出力する。
【００８３】
メモリ転送制御部２４は、メモリ側ポート使用権管理部２４ａとメモリ側マクロブロック情報転送部２４ｃから構成される。メモリ側マクロブロック情報転送部２４ｃは、画像処理側ポート使用権譲渡通知Ａが与えられて（メモリ側ポート使用権管理部２４ａが画像処理側ポート使用権譲渡通知Ａを受信して）、メモリ転送制御部２４がポート使用権を有する場合であって、退避用メモリ領域２２ｂからＤＲＡＭ２１へマクロブロック情報の転送を行い、ＤＲＡＭ２１から取得用メモリ領域２２ａへマクロブロック情報の転送を行う。
【００８４】
メモリ側ポート使用権管理部２４ａは、ＤＲＡＭ２１から取得用メモリ領域２２ａへのマクロブロック情報の転送完了時、またはポート使用権要求通知Ｃを受信した場合には、メモリ側ポート使用権譲渡通知Ｂを出力して、ポート使用権を画像処理部２３へ譲渡する。
【００８５】
図９は画像処理装置２０の構成を示す図である。なお、図８で上述した構成要素と同じ構成要素の説明は省略する。また、画像処理側ポート使用権譲渡通知Ａ、メモリ側ポート使用権譲渡通知Ｂ、ポート使用権要求通知Ｃのそれぞれは、以下単に、譲渡通知Ａ、譲渡通知Ｂ、要求通知Ｃとも表記する。
【００８６】
画像処理部２３は、保持ＦＦ２３ａ、符号化／復号化処理部２３ｂ、使用権管理部２３ｃ（図８の画像処理側ポート使用権管理部２３ｃに該当）、転送回路２３ｄ−１、２３ｄ−２を含む。転送回路２３ｄ−１、２３ｄ−２は、図８の画像処理側マクロブロック情報転送部２３ｄに含まれる。
【００８７】
使用権管理部２３ｃは、メモリ側ポート使用権譲渡通知Ｂを受信すると、ポート使用権を取得する。このとき、符号化／復号化処理部２３ｂの符号化／復号化処理が完了した場合には、転送指示を転送回路２３ｄ−１に与える。転送回路２３ｄ−１は、転送指示にもとづき、保持ＦＦ２３ａ上のマクロブロック情報を、ＳＲＡＭ２２の退避用メモリ領域２２ｂへ転送し、ＳＲＡＭ２２は、退避用メモリ領域２２ｂ内に、そのマクロブロック情報を格納する。
【００８８】
また、符号化／復号化処理部２３ｂが符号化／復号化処理を開始する場合には、転送指示を転送回路２３ｄ−２に与える。転送回路２３ｄ−２は、転送指示にもとづき、ＳＲＡＭ２２の取得用メモリ領域２２ａに格納されているマクロブロック情報を読み出して、保持ＦＦ２３ａへ転送し、保持ＦＦ２３ａは、そのマクロブロック情報を格納する。
【００８９】
一方、ＤＲＡＭ転送制御部２４（図８のメモリ転送制御部２４に該当）は、使用権管理部２４ａ−１、転送判定部２４ａ−２、転送回路２４ｃ−１、２４ｃ−２、占有量監視回路２４ｂ−１〜２４ｂ−３から構成される。使用権管理部２４ａ−１と転送判定部２４ａ−２は、図８のメモリ側ポート使用権管理部２４ａに含まれ、転送回路２４ｃ−１、２４ｃ−２は、図８のメモリ側マクロブロック情報転送部２４ｃに含まれる。
【００９０】
占有量監視回路２４ｂ−１は、ＤＲＡＭ２１のメモリ占有量を監視して、監視結果ｂ１を転送判定部２４ａ−２へ送信する。占有量監視回路２４ｂ−２は、取得用メモリ領域２２ａのメモリ占有量を監視して、監視結果ｂ２を転送判定部２４ａ−２へ送信する。占有量監視回路２４ｂ−３は、退避用メモリ領域２２ｂのメモリ占有量を監視して、監視結果ｂ３を転送判定部２４ａ−２へ送信する。
【００９１】
使用権管理部２４ａ−１は、画像処理側ポート使用権譲渡通知Ａを受信すると、ポート使用権を取得したことを転送判定部２４ａ−２へ通知する。このとき、転送判定部２４ａ−２は、監視結果ｂ１からＤＲＡＭ２１にマクロブロック情報があり、監視結果ｂ２から取得用メモリ領域２２ａに空きがあることを認識した場合には、転送指示を転送回路２４ｃ−１へ送信する。転送回路２４ｃ−１は、転送指示にもとづいて、ＤＲＡＭ２１上のマクロブロック情報を、ＳＲＡＭ２２の取得用メモリ領域２２ａへ転送し、ＳＲＡＭ２２は、取得用メモリ領域２２ａ内に、そのマクロブロック情報を格納する。
【００９２】
また、転送判定部２４ａ−２は、監視結果ｂ１からＤＲＡＭ２１に空きがあり、監視結果ｂ３から退避用メモリ領域２２ｂにマクロブロック情報があることを認識した場合には、転送指示を転送回路２４ｃ−２へ送信する。転送回路２４ｃ−２は、転送指示にもとづいて、退避用メモリ領域２２ｂ上のマクロブロック情報を、ＤＲＡＭ２１へ転送し、ＤＲＡＭ２１はそのマクロブロック情報を格納する。
【００９３】
ここで、ＳＲＡＭ２２のポートの使用権は、画像処理部２３とＤＲＡＭ転送制御部２４との間で交互に受け渡されるが、ＤＲＡＭ転送制御部２４がＳＲＡＭ２２とＤＲＡＭ２１間でのマクロブロック情報の転送を行うか否かは、占有量監視回路２４ｂ−１〜２４ｂ−３で監視を行ったＤＲＡＭ２１、取得用メモリ領域２２ａ、退避用メモリ領域２２ｂのメモリ格納状態に依存する。
【００９４】
画像処理部２３においては、マクロブロック処理開始前に、「取得用メモリ領域２２ａの隣接マクロブロック情報の保持ＦＦ２３ａへの取り込み（隣接マクロブロックが存在する場合のみ）」を行い、マクロブロック処理を開始する。そして、取得用メモリ領域２２ａから保持ＦＦ２３ａへのマクロブロック情報の転送完了時に（マクロブロック処理開始時と同様）、画像処理側ポート使用権譲渡通知Ａを出力して、ポート使用権をＤＲＡＭ転送制御部２４に渡す。
【００９５】
画像処理部２３では、その後、ポート使用権がＤＲＡＭ転送制御部２４から戻ってくるのを待って（メモリ側ポート使用権譲渡通知Ｂが送信されるのを待って）、ポート使用権を得ると、「マクロブロック処理完了時点の保持ＦＦ２３ａ上の現マクロブロック情報を退避用メモリ領域２２ｂへの書き出し」を行う。
【００９６】
一方、ＤＲＡＭ転送制御部２４においては、ポート使用権を取得すると、退避用メモリ領域２２ｂに適切な量のマクロブロック情報があり、かつＤＲＡＭ２１に空きがあれば「退避用メモリ領域２２ｂからＤＲＡＭ２１への転送」を行う。続いて、ＤＲＡＭ２１が空でなく、かつ取得用メモリ領域２２ａに空きがあれば「ＤＲＡＭ２１から取得用メモリ領域２２ａへの転送」が行われる。
【００９７】
これらの動作の後、メモリ側ポート使用権譲渡通知Ｂを出力して、ポート使用権を画像処理部２３に渡す。なお、例外として、メモリ側ポート使用権譲渡通知Ｂを出力する以前に、画像処理部２３でマクロブロックの符号化／復号化処理が終わっている場合には、画像処理部２３は、ポート使用権要求通知Ｃを出力する。
【００９８】
この場合、ＤＲＡＭ転送制御部２４によるＳＲＡＭ２２からＤＲＡＭ２１への転送が完了した時点で、取得用メモリ領域２２ａに次のマクロブロック処理のために必要なマクロブロック情報が存在しているのであれば、画像処理部２３内の符号化／復号化処理部２３ｂの処理待ち状態を解消するべく、ＤＲＡＭ転送制御部２４は、ＤＲＡＭ２１からＳＲＡＭ２２への転送は行わずに、メモリ側ポート使用権譲渡通知Ｂを出力して、ポート使用権を画像処理部２３に渡す。
【００９９】
ここで、図２を使って、画像処理装置２０におけるマクロブロック情報の流れの一例について説明すると、符号化／復号化処理部２３ｂでマクロブロックＭＢ０の符号化／復号化処理の開始時には、保持ＦＦ２３ａは、最低でもマクロブロックＭＢｒ１〜ＭＢｒ４のそれぞれのマクロブロック情報を保持していることになる。
【０１００】
保持ＦＦ２３ａが、マクロブロックＭＢｒ１〜ＭＢｒ４のそれぞれのマクロブロック情報を保持していると仮定すると、マクロブロックＭＢ０の処理が終了した後、マクロブロックＭＢ０のマクロブロック情報は、保持ＦＦ２３ａに格納される。また、マクロブロックＭＢｒ４のマクロブロック情報は、退避用メモリ領域２２ｂに転送され（ポート使用権がある場合）、その後、ＤＲＡＭ２１へ転送されて格納される。さらに、次のマクロブロックＭＢ１の処理に備えて、取得用メモリ領域２２ａからはマクロブロックＭＢｒ５のマクロブロック情報が、保持ＦＦ２３ａに転送されて（ポート使用権がある場合）格納されることになる（マクロブロックＭＢｒ５のマクロブロック情報だけでなく、マクロブロックグループｇ１の中のより多くのマクロブロック情報を保持ＦＦ２３ａに転送しておいてもよい）。なお、メモリ間のマクロブロック情報の流れ及びメモリ調停の詳細については以降の図１０〜図１３で後述する。
【０１０１】
次に第２の実施の形態の画像処理装置２０の動作をタイムチャートを用いて説明する。図１０は画像処理装置２０の調停動作を示すタイムチャートである。なお、図１０に示す各サイクルの状態がわかりやすいように、図１１〜図１３に各サイクルの状態を表す状態遷移図を示す（実際にはＤＲＡＭ転送制御部２４を介して調停制御が行われるが図では省略している）。実線矢印はマクロブロック情報の流れ、点線矢印は譲渡通知Ａまたは譲渡通知Ｂを表し、図１３の太線矢印は要求通知Ｃを表す。
【０１０２】
〔ＣＹＣ１〕
（ポート使用権）画像処理部２３
（展開）画像処理部２３は、１マクロブロックの符号化／復号化処理が完了した直後とする。その処理結果のマクロブロック情報が保持ＦＦ２３ａ上にあり、それを退避するために保持ＦＦ２３ａから退避用メモリ領域２２ｂへの転送を行う。
【０１０３】
〔ＣＹＣ２〕
（ポート使用権）画像処理部２３
（展開）画像処理部２３は、次マクロブロックの符号化／復号化処理を行うために、取得用メモリ領域２２ａから保持ＦＦ２３ａへの転送を行う。転送完了時点で、画像処理側ポート使用権譲渡通知Ａをアサートする。
【０１０４】
〔ＣＹＣ３〕
（ポート使用権）ＤＲＡＭ転送制御部２４
（展開）ＣＹＣ１での転送で、退避用メモリ領域２２ｂは空ではなくなっているので、ＤＲＡＭ転送制御部２４は退避用メモリ領域２２ｂからＤＲＡＭ２１への転送を行う（ＤＲＡＭ２１上の退避用領域が満杯ではない状況を想定）。
【０１０５】
〔ＣＹＣ４〕
（ポート使用権）ＤＲＡＭ転送制御部２４
（展開）ＣＹＣ２での転送で、取得用メモリ領域２２ａは満杯ではなくなっているので、ＤＲＡＭ転送制御部２４はＤＲＡＭ２１から取得用メモリ領域２２ａへの転送を行う（ＤＲＡＭ２１上の退避用領域が空ではない状況を想定）。転送完了時点で、メモリ側ポート使用権譲渡通知Ｂをアサートする。
【０１０６】
〔ＣＹＣ５〕
（ポート使用権）画像処理部２３
（展開）画像処理部２３は、マクロブロックの符号化／復号化処理を行っている状態であり、何も転送は行われない。
【０１０７】
〔ＣＹＣ６〕
（ポート使用権）画像処理部２３
（展開）画像処理部２３は、１マクロブロックの符号化／復号化処理が完了し、保持ＦＦ２３ａから退避用メモリ領域２２ｂへの転送を行う。
【０１０８】
〔ＣＹＣ７〕
（ポート使用権）画像処理部２３
（展開）画像処理部２３は、次マクロブロックの符号化／復号化処理を行うために取得用メモリ領域２２ａから保持ＦＦ２３ａへの転送を行う。転送完了時点で、画像処理側ポート使用権譲渡通知Ａをアサートする。
【０１０９】
〔ＣＹＣ８〕
（ポート使用権）ＤＲＡＭ転送制御部２４
（展開）ＣＹＣ６での転送で、退避用メモリ領域２２ｂは空ではなくなっているので、ＤＲＡＭ転送制御部２４は退避用メモリ領域２２ｂからＤＲＡＭ２１への転送を行う。その途中で、画像処理部２３の１マクロブロックの符号化／復号化処理が完了し、ポート使用権要求通知Ｃがアサートされる。ＤＲＡＭ転送制御部２４は、退避用メモリ領域２２ｂからＤＲＡＭ２１への転送が完了した時点で、取得用メモリ領域２２ａの残データ量が次マクロブロック処理に必要な量存在するかを判定する。必要量存在すると判定されると、ＤＲＡＭ２１から取得用メモリ領域２２ａへの転送が可能か否かに関わらず、その転送は実行せずに、メモリ側ポート使用権譲渡通知Ｂをアサートする。
【０１１０】
〔ＣＹＣ９〕
（ポート使用権）画像処理部２３
（展開）画像処理部２３は、１マクロブロックの符号化／復号化処理が完了し、保持ＦＦ２３ａから退避用メモリ領域２２ｂへの転送を行う。
【０１１１】
〔ＣＹＣ１０〕
（ポート使用権）画像処理部２３
（展開）画像処理部２３は、次マクロブロックの符号化／復号化処理を行うために取得用メモリ領域２２ａから保持ＦＦ１３ａへの転送を行う。転送完了時点で、ポート使用権譲渡通知Ａをアサートする。
【０１１２】
以上説明したように、第２の実施の形態では、符号化／復号化処理がごく短時間で完了した場合、ＳＲＡＭ２２からＤＲＡＭ２１への書き出し及びＤＲＡＭ２１からＳＲＡＭ２２への読み込みが必須でない状況であれば、ＤＲＡＭ２１とＳＲＡＭ２２間とのアクセスよりも、符号化／復号化処理側とＳＲＡＭ２２とのアクセスを優先するようにした。これにより、符号化／復号化処理は待たされずに、次マクロブロック処理を開始でき、処理時間の不要な増加を抑止することが可能になる。
【０１１３】
なお、上記では主にＨ．２６４で定められた１６×１６画素のマクロブロック単位で符号化／復号化処理を行うこととして説明したが、本発明の技術内容からわかるように、特にブロックサイズに限定されるものではなく、Ｎ画素×Ｍ画素といった任意のブロック単位で符号化／復号化処理を行ってもよい。また、上記の第１、第２の実施の形態におけるＤＲＡＭ、ＳＲＡＭ、保持メモリの間で行われるマクロブロック情報の転送制御はすべて、符号化／復号化処理での必要量として、オーバーフロー／アンダーフローが生じないように、適切な量のマクロブロック情報がメモリ間で転送されるものである。
【図面の簡単な説明】
【０１１４】
【図１】画像処理装置の原理図である。
【図２】マクロブロック情報を取得する際の隣接マクロブロックを示す図である。
【図３】画像処理装置の構成を示す図である。
【図４】画像処理装置の調停動作を示すタイムチャートである。
【図５】状態遷移を示す図である。
【図６】状態遷移を示す図である。
【図７】状態遷移を示す図である。
【図８】画像処理装置の原理図である。
【図９】画像処理装置の構成を示す図である。
【図１０】画像処理装置の調停動作を示すタイムチャートである。
【図１１】状態遷移を示す図である。
【図１２】状態遷移を示す図である。
【図１３】状態遷移を示す図である。
【図１４】ＤＲＡＭとＳＲＡＭを含む画像処理装置の概略構成を示す図である。
【図１５】シングルポートＳＲＡＭを用いた構成を示す図である。
【符号の説明】
【０１１５】
１０  画像処理装置
１１  第１のメモリ
１２  第２のメモリ
１２ａ  取得用メモリ領域
１２ｂ  退避用メモリ領域
１３  画像処理部
１３ａ  保持メモリ
１３ｂ  符号化／復号化処理部
１３ｃ  転送要求判定部
１３ｄ  マクロブロック情報転送部
１４  メモリ転送制御部
１５  メモリアクセス調停部
Ａ  退避用メモリ領域転送要求
Ｂ  保持メモリ取り込み転送要求
Ｃ  第１のメモリ転送要求
Ｄ  取得用メモリ領域転送要求
【図１】
2007274224.tif 000003
【図２】
2007274224.tif 000004
【図３】
2007274224.tif 000005
【図４】
2007274224.tif 000006
【図５】
2007274224.tif 000007
【図６】
2007274224.tif 000008
【図７】
2007274224.tif 000009
【図８】
2007274224.tif 000010
【図９】
2007274224.tif 000011
【図１０】
2007274224.tif 000012
【図１１】
2007274224.tif 000013
【図１２】
2007274224.tif 000014
【図１３】
2007274224.tif 000015
【図１４】
2007274224.tif 000016
【図１５】
2007274224.tif 000017