(57)【要約】【課題】本発明は、処理データを入力する入力部と、処理データに処理を施す処理部と、処理の施された処理データを出力する出力部とを備える装置で用いられて、それらの各部とメモリとの間のデータ転送を制御するときに、入出力の際に必要となるバッファのオーバーフローやアンダーフローの回避を目的とする。【解決手段】メモリと処理部との間に発生する一連のデータ転送命令を規定の順序に従って発行する手段と、入力部の持つバッファ容量から制限される入力部とメモリとの間に発生するデータ転送間隔の最大値と、出力部の持つバッファ容量から制限される出力部とメモリとの間に発生するデータ転送間隔の最大値とを記憶する手段と、発行されたデータ転送命令と２つの最大値とに従って、次に実行するデータ転送命令を決定する手段とを備えることで、バッファのオーバーフローやアンダーフローを回避するようにと転送シーケンスを動的に変更する。【選択図】          図１
2004234057.tif 000002
【特許請求の範囲】
【請求項１】
処理データを入力してメモリに書き込む入力部と、該メモリに記憶される処理データに所定の処理を施す１つ又は複数の処理部と、該メモリに記憶される処理の施された処理データを出力する出力部とを備える処理装置で用いられて、それらの各部と該メモリとの間のデータ転送を制御するメモリ制御装置であって、
上記メモリと上記処理部との間に発生する一連のデータ転送命令を規定の順序に従って発行する第１の手段と、
上記入力部の持つバッファ容量から制限される上記入力部と上記メモリとの間に発生するデータ転送間隔の最大値と、上記出力部の持つバッファ容量から制限される上記出力部と上記メモリとの間に発生するデータ転送間隔の最大値とを記憶する第２の手段と、
上記発行したデータ転送命令と上記２つの最大値とに従って、次に実行するデータ転送命令を決定する第３の手段とを備えることを、
特徴とするメモリ制御装置。
【請求項２】
請求項１記載のメモリ制御装置において、
上記処理装置が、上記処理部とは異なる処理を施す１つ又は複数の処理部を備えるように構成されることを、
特徴とするメモリ制御装置。
【請求項３】
請求項１又は２記載のメモリ制御装置において、
上記入力部と上記メモリとの間のデータ転送を司るデータ転送命令の終了からの経過サイクル数と、上記出力部と上記メモリとの間のデータ転送を司るデータ転送命令の終了からの経過サイクル数とを計数する第４の手段と、
各データ転送命令毎、あるいは、代表値として、データ転送に必要なサイクル数を記憶する第５の手段とを備え、
上記第３の手段は、上記発行したデータ転送命令の示すデータ転送に必要なサイクル数と上記経過サイクル数との加算値を算出して、その加算値が上記最大値を超えるのか否かを判断することで、次に実行するデータ転送命令を決定することを、
特徴とするメモリ制御装置。
【請求項４】
請求項３記載のメモリ制御装置において、
上記第３の手段は、上記加算値が上記最大値を超える場合には、その超えた最大値に対応付けられるデータ転送命令を次に実行するデータ転送命令として決定し、上記加算値が上記最大値を超えない場合には、上記発行したデータ転送命令を次に実行するデータ転送命令として決定することを、
特徴とするメモリ制御装置。
【請求項５】
請求項３記載のメモリ制御装置において、
上記第３の手段は、先ず最初に、上記加算値が上記入力部に係る最大値を超えるのか否かを判断して、超える場合には、上記入力部と上記メモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として決定し、超えない場合には、続いて、上記加算値が上記出力部に係る最大値を超えるのか否かを判断して、超える場合には、上記出力部と上記メモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として決定し、超えない場合には、上記発行したデータ転送命令を次に実行するデータ転送命令として決定することを、
特徴とするメモリ制御装置。
【請求項６】
請求項１ないし５のいずれか１項に記載のメモリ制御装置において、
上記第１の手段は、複数のデータ転送命令の組み合わせを繰り返し発行する場合には、その組み合わせのデータ転送命令の転送シーケンスを保持するメモリ域をサイクリックに参照することで、その組み合わせのデータ転送命令を繰り返し発行することを、
特徴とするメモリ制御装置。
【請求項７】
請求項１ないし６のいずれか１項に記載のメモリ制御装置において、
上記発行したデータ転送命令が次に実行するデータ転送命令として決定される場合にあって、そのデータ転送命令が待ち状態にある場合には、上記入力部と上記メモリとの間のデータ転送を司るデータ転送命令、あるいは、上記出力部と上記メモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として最終決定する第６の手段を備えることを、
特徴とするメモリ制御装置。
【請求項８】
処理データを入力してメモリに書き込む入力部と、該メモリに記憶される処理データに所定の処理を施す１つ又は複数の処理部と、該メモリに記憶される処理の施された処理データを出力する出力部とを備える処理装置で用いられて、それらの各部と該メモリとの間のデータ転送を制御するメモリ制御方法であって、
上記メモリと上記処理部との間に発生する一連のデータ転送命令を規定の順序に従って発行する第１の過程と、
上記入力部の持つバッファ容量から制限される上記入力部と上記メモリとの間に発生するデータ転送間隔の最大値と、上記出力部の持つバッファ容量から制限される上記出力部と上記メモリとの間に発生するデータ転送間隔の最大値とを指定する第２の過程と、
上記発行したデータ転送命令と上記２つの最大値とに従って、次に実行するデータ転送命令を決定する第３の過程とを備えることを、
特徴とするメモリ制御方法。
【請求項９】
請求項８記載のメモリ制御方法において、
上記処理装置が、上記処理部とは異なる処理を施す１つ又は複数の処理部を備えるように構成されることを、
特徴とするメモリ制御方法。
【請求項１０】
請求項８又は９記載のメモリ制御方法において、
上記入力部と上記メモリとの間のデータ転送を司るデータ転送命令の終了からの経過サイクル数と、上記出力部と上記メモリとの間のデータ転送を司るデータ転送命令の終了からの経過サイクル数とを計数する第４の過程と、
各データ転送命令毎、あるいは、代表値として、データ転送に必要なサイクル数を指定する第５の過程とを備え、
上記第３の過程では、上記発行したデータ転送命令の示すデータ転送に必要なサイクル数と上記経過サイクル数との加算値を算出して、その加算値が上記最大値を超えるのか否かを判断することで、次に実行するデータ転送命令を決定することを、
特徴とするメモリ制御方法。
【請求項１１】
請求項１０記載のメモリ制御方法において、
上記第３の過程では、上記加算値が上記最大値を超える場合には、その超えた最大値に対応付けられるデータ転送命令を次に実行するデータ転送命令として決定し、上記加算値が上記最大値を超えない場合には、上記発行したデータ転送命令を次に実行するデータ転送命令として決定することを、
特徴とするメモリ制御方法。
【請求項１２】
請求項１０記載のメモリ制御方法において、
上記第３の過程では、先ず最初に、上記加算値が上記入力部に係る最大値を超えるのか否かを判断して、超える場合には、上記入力部と上記メモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として決定し、超えない場合には、続いて、上記加算値が上記出力部に係る最大値を超えるのか否かを判断して、超える場合には、上記出力部と上記メモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として決定し、超えない場合には、上記発行したデータ転送命令を次に実行するデータ転送命令として決定することを、
特徴とするメモリ制御方法。
【請求項１３】
請求項８ないし１２のいずれか１項に記載のメモリ制御方法において、
上記第１の過程では、複数のデータ転送命令の組み合わせを繰り返し発行する場合には、その組み合わせのデータ転送命令の転送シーケンスを保持するメモリ域をサイクリックに参照することで、その組み合わせのデータ転送命令を繰り返し発行することを、
特徴とするメモリ制御方法。
【請求項１４】
請求項８ないし１３のいずれか１項に記載のメモリ制御方法において、
上記発行したデータ転送命令が次に実行するデータ転送命令として決定される場合にあって、そのデータ転送命令が待ち状態にある場合には、上記入力部と上記メモリとの間のデータ転送を司るデータ転送命令、あるいは、上記出力部と上記メモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として最終決定する第６の過程を備えることを、
特徴とするメモリ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像フレームを入力してマクロブロックに分割し、それらのマクロブロックを処理単位として符号化を行ってビットストリームを出力する処理を行う画像符号化装置などで用いられるメモリ制御装置及びその方法に関し、特に、入出力の際に必要となるバッファのオーバーフローやアンダーフローを回避できるようにすることで、それらのバッファの容量を削減できるようにするメモリ制御装置及びその方法に関する。
【０００２】
【従来の技術】
ＭＰＥＧ２などの動画像符号化装置では、高圧縮を実現するために空間方向、時間方向の情報を用いているため、画像データなどの大量のデータを扱う必要がある。特に、ＨＤＴＶ画像の実時間符号化では、膨大な画像データを実時間で符号化するために、大容量のメモリと大きなメモリバンド幅（メモリにアクセスする際の帯域）とを確保することが重要である。
【０００３】
このため、動画像符号化装置で用いられる従来のメモリ制御方式では、メモリとのデータ転送のバンド幅を確保するために、設計時に、予めデータ転送の順序をスケジューリングすることにより実現している。
【０００４】
図１２に、動画像符号化装置の装置構成を図示する。
【０００５】
この図に示すように、動画像符号化装置は、▲１▼外部から画像フレームをインタレースあるいはプログレッシブで入力する画像入力部と、▲２▼画像フレームから分割されるマクロブロックを処理単位として動作するＭ個（Ｍ≧１）のマクロブロック同期転送部と、▲３▼画像フレームをＮ個（Ｎ≧１）に分割した分割フレームを入力としてマクロブロック単位で符号化処理を行った後それぞれの分割ビットストリームを出力する並列で動作するＮ個の符号化コア部と、▲４▼ビットストリームを外部に出力するビットストリーム出力部と、▲５▼メモリと、▲６▼メモリと画像入力部／マクロブロック同期転送部／符号化コア部／ビットストリーム出力部との間のデータ転送を制御するメモリ制御部とを備えるという構成を採っている。
【０００６】
ここで、図１２では、Ｍ個のマクロブロック同期転送部として、１個のフィルタ部を備えることを想定している。また、画像入力部及びビットストリーム出力部は、小容量のバッファを有する。また、入力画像、ビットストリームおよびマクロブロック処理用のデータについては、共通のメモリに蓄積されることになる。
【０００７】
このように構成される動画像符号化装置では、画像入力部やビットストリーム出力部のデータ転送は、内部処理とは無関係に発生することになる。
【０００８】
これから、予めデータ転送の順序をスケジューリングするという従来のメモリ制御方式に従っていたのでは、バッファのオーバーフローやアンダーフローが発生しないようにするために、画像入力部やビットストリーム出力部が保持するバッファを大きくするか、あるいは、画像入力部やビットストリーム出力部とメモリとの間のデータ転送回数を増やさなければならない。
【０００９】
この場合、バッファを大きくするようにすると、バッファのメモリ量が大きくなるという問題があり、一方、データ転送回数を増やすようにすると、オーバーヘッドが大きくなり、符号化コア部へのデータ転送サイクルを十分に確保できなくなるために、画像品質の劣化を生じやすいという問題がある。
【００１０】
なお、本発明に関連する先行技術として、（イ）下記の特許文献１には、画像メモリとバッファとの間のデータ転送を効率よく行うための技術が開示されており、（ロ）下記の特許文献２には、符号化データ量を制御することにより、バッファメモリでのオーバーフローを防止するという技術が開示されており、（ハ）下記の特許文献３には、画像符号化装置の各処理部の処理をスケジューリングにより決定することにより、処理競合を解決するという技術が開示されている。
【００１１】
【特許文献１】
特開平８−９３８１号公報
【特許文献２】
特開平６−２３３２７２号公報
【特許文献３】
特開平１０−１０８１９９号公報
【００１２】
【発明が解決しようとする課題】
従来のメモリ制御方式では、メモリとのデータ転送を行うときに以下のような問題が生じる。
【００１３】
（１）マクロブロックの処理サイクルは、画像の性質や符号化方法によって増減する。これから、図１３に示すように、マクロブロックの処理サイクルの増減により、予めスケジューリングされたデータ転送では、画像入力部やビットストリーム出力部とメモリとの間のデータ転送間隔が変動することになる。
【００１４】
このデータ転送間隔の変動により、一定のレートで入力されてくる画像入力部のバッファや、一定のレートで引き抜かれるビットストリーム出力部のバッファが破綻しないようにするために、バッファ量を大きくするとか、データ転送回数を多くする（オーバーヘッドの増加を招くことになる）という方法が用いられている。
【００１５】
（２）画像入力部とメモリとの間で発生するデータ転送や、ビットストリーム出力部とメモリとの間で発生するデータ転送は、マクロブロック処理に無関係に発生する。一方、設計時に転送シーケンスを決定する場合、転送シーケンス順序にしかデータ転送が発生しない。これから、画像入力部の持つバッファがオーバーフローしたり、ビットストリーム出力部の持つバッファがアンダーフローする可能性がある。
【００１６】
（３）Ｎ個の符号化コア部とメモリとの間の転送シーケンスとして、Ｎ回分指定するメモリ制御方式では、同様の転送シーケンスにも関わらず、Ｎ倍の転送シーケンスを指定しなければならない。
【００１７】
（４）Ｍ個のマクロブロック同期転送部とメモリとの間の転送シーケンスの実行の待ち状態や、Ｎ個の符号化コア部とメモリとの間の転送シーケンスの実行の待ち状態は、全体のデータ転送の効率を悪くする可能性がある。
【００１８】
以上に説明したように、従来技術に従っていると、画像入力部やビットストリーム出力部の持つバッファが大きなものとなったり、それらのバッファがオーバーフローしたりアンダーフローする可能性があるとともに、転送シーケンスを指定するメモリ量が大きく、転送シーケンスの待ち状態で無駄なオーバーヘッドを発生させるという問題がある。
【００１９】
このような問題は、動画像符号化装置に限られることなく、処理データを入力してメモリに書き込む入力部と、メモリに記憶される処理データに所定の処理を施す処理部と、メモリに記憶される処理の施された処理データを出力する出力部とを備える処理装置で一般的に発生している問題である。
【００２０】
本発明はかかる事情に鑑みてなされたものであって、処理データを入力してメモリに書き込む入力部と、メモリに記憶される処理データに所定の処理を施す処理部と、メモリに記憶される処理の施された処理データを出力する出力部とを備える処理装置で用いられて、それらの各部とメモリとの間のデータ転送を制御するという構成を採るときにあって、入出力の際に必要となるバッファのオーバーフローやアンダーフローを回避できるようにすることで、それらのバッファの容量を削減できるようにする新たなメモリ制御技術の提供を目的とする。
【００２１】
さらに、本発明は、これに加えて、転送シーケンスを指定するメモリ量を削減できるようにするとともに、転送シーケンスの待ち状態により発生する無駄なオーバーヘッドを削減できるようにする新たなメモリ制御技術の提供を目的とする。
【００２２】
【課題を解決するための手段】
この目的を達成するために、本発明のメモリ制御装置は、処理データを入力してメモリに書き込む入力部と、メモリに記憶される処理データに所定の処理を施す１つ又は複数の処理部と、メモリに記憶される処理の施された処理データを出力する出力部とを備える処理装置で用いられて、それらの各部とメモリとの間のデータ転送を制御するという構成を採るときにあって、
▲１▼メモリと処理部との間に発生する一連のデータ転送命令を規定の順序に従って発行する第１の手段と、
▲２▼入力部の持つバッファ容量から制限される入力部とメモリとの間に発生するデータ転送間隔の最大値と、出力部の持つバッファ容量から制限される出力部とメモリとの間に発生するデータ転送間隔の最大値とを記憶する第２の手段と、
▲３▼第１の手段の発行したデータ転送命令と、第２の手段の記憶データの指定する２つの最大値とに従って、次に実行するデータ転送命令を決定する第３の手段と、
▲４▼入力部とメモリとの間のデータ転送を司るデータ転送命令の終了からの経過サイクル数と、出力部とメモリとの間のデータ転送を司るデータ転送命令の終了からの経過サイクル数とを計数する第４の手段と、
▲５▼各データ転送命令毎、あるいは、代表値として、データ転送に必要なサイクル数を記憶する第５の手段と、
▲６▼第１の手段の発行したデータ転送命令が次に実行するデータ転送命令として決定される場合にあって、そのデータ転送命令が待ち状態にある場合には、入力部とメモリとの間のデータ転送を司るデータ転送命令、あるいは、出力部とメモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として最終決定する第６の手段とを備えるように構成する。
【００２３】
ここで、上述の処理装置は、上述の処理部とは異なる処理を施す１つ又は複数の処理部を備えることがある。
【００２４】
このように構成される本発明のメモリ制御装置では、第１の手段は、メモリと処理部との間に発生する一連のデータ転送命令を規定の順序に従って発行する。例えば、データ転送命令の転送シーケンスを保持するメモリ域を参照することで、メモリと処理部との間に発生する一連のデータ転送命令を規定の順序に従って発行するのである。
【００２５】
このとき、複数のデータ転送命令の組み合わせを繰り返し発行する場合には、転送シーケンスの命令数の削減を図るために、その組み合わせのデータ転送命令の転送シーケンスを保持するメモリ域をサイクリックに参照することで、その組み合わせのデータ転送命令を繰り返し発行することが好ましい。
【００２６】
このデータ転送命令の発行を受けて、第３の手段は、第２の手段の記憶データの指定に従って、２つのデータ転送間隔の最大値を取得するとともに、第４の手段の計数する経過サイクル数を取得し、さらに、第５の手段の記憶データの指定に従って、第１の手段の発行したデータ転送命令の示すデータ転送に必要なサイクル数を取得する。
【００２７】
続いて、第３の手段は、その取得したデータ転送に必要なサイクル数と、その取得した経過サイクル数との加算値を算出して、その加算値がその取得した最大値を超えるのか否かを判断することで、次に実行するデータ転送命令を決定する。
【００２８】
すなわち、その加算値が第２の手段の記憶データの指定する最大値を超える場合には、第１の手段の発行したデータ転送命令を次に実行すると、入力部の持つバッファがオーバーフローしたり、出力部の持つバッファがアンダーフローすることになるので、そのような不都合を回避すべく、その加算値がその最大値を超える場合には、その超えた最大値に対応付けられるデータ転送命令を次に実行するデータ転送命令として決定し、その加算値がその最大値を超えない場合には、第１の手段の発行したデータ転送命令を次に実行するデータ転送命令として決定するのである。
【００２９】
このとき、入力部とメモリとの間のデータ転送を司るデータ転送命令の方が、出力部とメモリとの間のデータ転送を司るデータ転送命令よりも緊急性が高いことを考慮して、先ず最初に、加算値が入力部に係る最大値を超えるのか否かを判断して、超える場合には、入力部とメモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として決定し、超えない場合には、続いて、加算値が出力部に係る最大値を超えるのか否かを判断して、超える場合には、出力部とメモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として決定し、超えない場合には、第１の手段の発行したデータ転送命令を次に実行するデータ転送命令として決定することがある。
【００３０】
第３の手段が次に実行するデータ転送命令を決定すると、第６の手段は、処理部とメモリとの間のデータ転送を司るデータ転送命令に待ち状態が発生することを考慮して、第１の手段の発行したデータ転送命令が次に実行するデータ転送命令として決定される場合には、そのデータ転送命令が待ち状態にあるのか否かをチェックして、そのデータ転送命令が待ち状態にある場合には、入力部とメモリとの間のデータ転送を司るデータ転送命令、あるいは、出力部とメモリとの間のデータ転送を司るデータ転送命令を次に実行するデータ転送命令として最終決定するように処理する。
【００３１】
このようにして、本発明によれば、処理データを入力してメモリに書き込む入力部と、メモリに記憶される処理データに所定の処理を施す処理部と、メモリに記憶される処理の施された処理データを出力する出力部とを備える処理装置で用いられて、それらの各部とメモリとの間のデータ転送を制御するという構成を採るときにあって、入力部の持つバッファのオーバーフローを回避できるようになるとともに、出力部の持つバッファのアンダーフローを回避できるようになり、これにより、バッファの容量に必要以上の余裕を持たせる必要がなくなるので、バッファの容量を削減できるようになる。
【００３２】
そして、本発明によれば、処理部とメモリとの間のデータ転送を司るデータ転送命令を優先する形でデータ転送を実行することで、入力部の持つバッファがオーバーフローとなる直前までそのバッファに処理データを入力するとともに、出力部の持つバッファがアンダーフローとなる直前までそのバッファから処理データを出力するというように処理することから、入力部とメモリとの間のデータ転送回数を削減できるようになるとともに、出力部とメモリとの間のデータ転送回数を削減できるようになる。
【００３３】
そして、本発明によれば、処理部とメモリとの間のデータ転送を司るデータ転送命令が繰り返し発行される場合に、その転送シーケンスを指定するメモリ量を削減できるようになる。
【００３４】
そして、本発明によれば、処理部とメモリとの間のデータ転送を司るデータ転送命令の待ち状態により発生する無駄なオーバーヘッドを削減できるようになる。
【００３５】
【発明の実施の形態】
以下、動画像符号化装置に適用した実施の形態に従って本発明を詳細に説明する。
【００３６】
図１に、本発明を具備する動画像符号化装置の一実施形態例を図示する。
【００３７】
図中、１は画像入力部であって、外部から画像フレームを入力するもの、１０は画像入力部１の備えるバッファ、２はフィルタ部であって、画像フレームから分割されるマクロブロックの同期転送のためのフィルタリング処理を行うもの、３−ｉ（ｉ＝１〜Ｎ）はＮ個設けられる符号化コア部であって、並列動作して、画像フレームをＮ個に分割した分割フレームを入力としてマクロブロック単位で符号化処理を行った後それぞれの分割ビットストリームを出力するもの、４はビットストリーム出力部であって、符号化コア部３−ｉの出力するビットストリームを外部に出力するもの、４０はビットストリーム出力部４の備えるバッファ、５はメモリ、６は本発明を具備するメモリ制御部である。
【００３８】
この画像入力部１は、外部から画像データを入力して、メモリ制御部６を介してメモリ５に書き込む処理を行う。フィルタ部２は、メモリ制御部６を介してメモリ５から画像データを読み出してフィルタリング処理を施し、メモリ制御部６を介してメモリ５に書き込む処理を行う。符号化コア部３−ｉは、メモリ制御部６を介してメモリ５から画像データを読み出して符号化処理を施し、メモリ制御部６を介してメモリ５に書き込む処理を行う。ビットストリーム出力部４は、メモリ制御部６を介してメモリ５から符号化画像データを読み出して、外部に出力する処理を行う。
【００３９】
本発明を具備するメモリ制御部６は、パイプライン構成のハードウェアで構成されて、画像入力部１やビットストリーム出力部４のように、外部とのインタラクションでデータ転送が発生する処理部と、フィルタ部２や符号化コア部３−ｉのように、マクロブロックの処理に同期してデータ転送が発生する処理部とに対して、効率のよいデータ転送を提供する処理を行う。
【００４０】
この処理を実現するために、本発明を具備するメモリ制御部６は、転送シーケンス保持用レジスタ６１を備えるデータ転送命令発行手段６０と、実行サイクル数管理手段６２と、入出力実行間隔最大値管理手段６３と、入出力経過サイクル数計数手段６４と、実行命令決定手段６５と、アドレス計算手段６６と、データ転送手段６７とを備える。
【００４１】
転送シーケンス保持用レジスタ６１は、図２に示すように、フィルタ部２とメモリ５との間のデータ転送を司るデータ転送命令（Ｔｒａｎｓ１）と、各符号化コア部３−ｉとメモリ５との間のデータ転送を司るデータ転送命令（符号化コア部３−１についてはＴｒａｎｓ２，Ｔｒａｎｓ３，Ｔｒａｎｓ４、・・・・・、符号化コア部３−ＮについてはＴｒａｎｓｚ−２，Ｔｒａｎｓｚ−１，Ｔｒａｎｓｚ）  との羅列データ（転送シーケンスを構成することになる）について保持する。
【００４２】
データ転送命令発行手段６０は、図３に示すように、この転送シーケンス保持用レジスタ６１に保持される転送シーケンスに従って、実行命令決定手段６５に対して、フィルタ部２とメモリ５との間のデータ転送を司るデータ転送命令と、各符号化コア部３−ｉとメモリ５との間のデータ転送を司るデータ転送命令とをサイクリックの形式に従って順番に発行することで、メモリ５とフィルタ部２／符号化コア部３−ｉとの間に発生するＮマクロブロック処理分の一連のデータ転送命令を発行する。
【００４３】
実行サイクル数管理手段６２は、図２に示すように、転送シーケンス保持用レジスタ６１に保持される各データ転送命令に対応付けて、そのデータ転送命令の実行サイクル数を管理する。ここで、図２では、各データ転送命令毎に必要なサイクル数を管理しているが、各データ転送命令をいくつかにまとめて代表的な値を管理することも可能である。
【００４４】
入出力実行間隔最大値管理手段６３は、画像入力部１の持つバッファ１０の容量から制限される画像入力部１とメモリ５との間に発生するデータ転送間隔の最大値が何サイクルであるのかという情報と、ビットストリーム出力部４の持つバッファ４０の容量から制限されるビットストリーム出力部４とメモリ５との間に発生するデータ転送間隔の最大値が何サイクルであるのかという情報とを管理する。
【００４５】
すなわち、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）について、画像入力部１の持つバッファ１０がオバーフローしないようにするために、例えば１００サイクルを超えない形で実行されなければならないという条件が課されるときには、図２に示すように、画像入力部１とメモリ５との間に発生するデータ転送間隔の最大値が１００サイクルであるということを管理するのである。
【００４６】
そして、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）について、ビットストリーム出力部４の持つバッファ４０がアンダーフローしないようにするために、例えば５００サイクルを超えない形で実行されなければならないという条件が課されるときには、図２に示すように、ビットストリーム出力部４とメモリ５との間に発生するデータ転送間隔の最大値が５００サイクルであるということを管理するのである。
【００４７】
入出力経過サイクル数計数手段６４は、マクロブロックに同期しないデータ転送を行う画像入力部１／ビットストリーム出力部４のそれぞれのデータ転送が終了してからの経過サイクル数を計数するものであり、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）の終了からの経過サイクル数（ＲＴｒａｎｓＩｎ）を計数して、それを保持するとともに、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）の終了からの経過サイクル数（ＲＴｒａｎｓＢｓ）を計数して、それを保持する。
【００４８】
すなわち、入出力経過サイクル数計数手段６４は、図４に示すように、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）の終了からの経過サイクル数（ＲＴｒａｎｓＩｎ）を計数するカウンタ６４０を備えて、そのデータ転送命令が実行を開始すると、カウンタ６４０の値をリセットし、そのデータ転送命令が実行を終了すると、１サイクル経過する度にカウンタ６４０の値を１つインクリメントすることで、そのデータ転送命令の終了からの経過サイクル数（ＲＴｒａｎｓＩｎ）を計数するのである。
【００４９】
そして、入出力経過サイクル数計数手段６４は、図４に示すように、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）の終了からの経過サイクル数（ＲＴｒａｎｓＢｓ）を計数するカウンタ６４１を備えて、そのデータ転送命令が実行を開始すると、カウンタ６４１の値をリセットし、そのデータ転送命令が実行を終了すると、１サイクル経過する度にカウンタ６４１の値を１つインクリメントすることで、そのデータ転送命令の終了からの経過サイクル数（ＲＴｒａｎｓＢｓ）を計数するのである。
【００５０】
実行命令決定手段６５は、データ転送命令発行手段６０の発行するデータ転送命令と、実行サイクル数管理手段６２から取得されるそのデータ転送命令の実行サイクル数と、入出力実行間隔最大値管理手段６３から取得されるデータ転送間隔の最大値と、入出力経過サイクル数計数手段６４の計数する経過サイクル数とを入力として、次に実行するデータ転送命令を決定する。
【００５１】
アドレス計算手段６６は、実行命令決定手段６５の決定したデータ転送命令を入力として、そのデータ転送命令の指定するアドレス計算を行い、メモリ５に対してそのアドレスを入力する。
【００５２】
データ転送手段６７は、メモリ５へのアドレス入力に同期して、画像入力部１／フィルタ部２／符号化コア部３−ｉ／ビットストリーム出力部４とメモリ５との間のデータ転送を実行する。
【００５３】
次に、図５を参照しつつ、このように構成される本発明を具備するメモリ制御部６の実行する処理について詳細に説明する。
【００５４】
実行命令決定手段６５は、データ転送命令発行手段６０の発行するデータ転送命令（Ｔｒａｎｓｐ（ｐ＝１〜ｚ））  を受け取ると、図５に示すように、実行サイクル数管理手段６２から、そのデータ転送命令（Ｔｒａｎｓｐ）の実行サイクル数（Ｓｐ）を取得する。
【００５５】
このとき、実行命令決定手段６５は、さらに、入出力実行間隔最大値管理手段６３から、データ転送間隔の最大値（ＭａｘＩｎ）／最大値（ＭａｘＢｓ）を取得するとともに、入出力経過サイクル数計数手段６４から、経過サイクル数（ＲＴｒａｎｓＩｎ）／経過サイクル数（ＲＴｒａｎｓＢｓ）を取得する。
【００５６】
続いて、実行命令決定手段６５は、先ず最初に、
ＲＴｒａｎｓＩｎ＋Ｓｐ  ＞ＭａｘＩｎ
という条件が成立するのか否かを判断して、この条件が成立することを判断する場合には、次に実行するデータ転送命令として、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）を決定する。
【００５７】
すなわち、次に実行するデータ転送命令として、データ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）を選択すると、経過サイクル数（ＲＴｒａｎｓＩｎ）がデータ転送間隔の最大値（ＭａｘＩｎ）を超えてしまうことになる場合には、次に実行するデータ転送命令として、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）を選択するのである。
【００５８】
このときには、データ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）については保留状態とするので、データ転送命令発行手段６０にはデータ転送命令をアクセプトした旨の通知がいかず、これから、データ転送命令発行手段６０は、次のデータ転送命令の発行の待ち状態に入る。
【００５９】
一方、実行命令決定手段６５は、
ＲＴｒａｎｓＩｎ＋Ｓｐ  ＞ＭａｘＩｎ
という条件が成立しないことを判断する場合には、続いて、
ＲＴｒａｎｓＢｓ＋Ｓｐ  ＞ＭａｘＢｓ
という条件が成立するのか否かを判断して、この条件が成立することを判断する場合には、次に実行するデータ転送命令として、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）を決定する。
【００６０】
すなわち、次に実行するデータ転送命令として、データ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）を選択すると、経過サイクル数（ＲＴｒａｎｓＢｓ）がデータ転送間隔の最大値（ＭａｘＢｓ）を超えてしまうことになる場合には、次に実行するデータ転送命令として、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）を選択するのである。
【００６１】
このときには、データ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）については保留状態とするので、データ転送命令発行手段６０にはデータ転送命令をアクセプトした旨の通知がいかず、これから、データ転送命令発行手段６０は、次のデータ転送命令の発行の待ち状態に入る。
【００６２】
一方、実行命令決定手段６５は、
ＲＴｒａｎｓＢｓ＋Ｓｐ  ＞ＭａｘＢｓ
という条件が成立しないことを判断する場合には、次に実行するデータ転送命令として、データ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）を決定する。
【００６３】
このときには、データ転送命令発行手段６０に対してデータ転送命令をアクセプトした旨が通知され、これから、データ転送命令発行手段６０は、次のデータ転送命令を発行することになる。
【００６４】
このように、実行命令決定手段６５は、マクロブロック処理用のデータ転送を優先することで効率的にマクロブロックの処理を進めながら、データ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）を選択すると、画像入力部１の持つバッファ１０がオーバーフローしてしまう場合には、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）を選択し、また、データ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）を選択すると、ビットストリーム出力部４の持つバッファ４０がアンダーフローしてしまうときには、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）を選択するように処理するのである。
【００６５】
ここで、「ＲＴｒａｎｓＢｓ＋Ｓｐ  ＞ＭａｘＢｓ  」の判断よりも「ＲＴｒａｎｓＩｎ＋Ｓｐ  ＞ＭａｘＩｎ  」の判断を優先させるのは、画像入力部１の持つバッファ１０がオーバーフローして入力画像が失われると画質劣化に直結するのに対して、ビットストリーム出力部４の持つバッファ４０がアンダーフローすることにより出力できるビットストリームが無くなっても、ｎｕｌｌパケットを挿入することにより、ある程度回避可能であるからである。
【００６６】
これから、実行命令決定手段６５は、先ず最初に、「ＲＴｒａｎｓＩｎ＋Ｓｐ  ＞ＭａｘＩｎ  」の判断を行い、続いて、「ＲＴｒａｎｓＢｓ＋Ｓｐ  ＞ＭａｘＢｓ  」の判断を行うことで、次に実行するデータ転送命令を決定するのである。
【００６７】
実行命令決定手段６５が次に実行するデータ転送命令を決定すると、アドレス計算手段６６は、実行命令決定手段６５の決定したデータ転送命令を入力として、そのデータ転送命令の指定するアドレス計算を行い、メモリ５に対してそのアドレスを入力し、これを受けて、データ転送手段６７は、画像入力部１／フィルタ部２／符号化コア部３−ｉ／ビットストリーム出力部４とメモリ５との間のデータ転送を実行する。
【００６８】
このようにして、本発明を具備するメモリ制御部６によれば、画像入力部１の持つバッファ１０のオーバーフローを回避できるようになるとともに、ビットストリーム出力部４の持つバッファ４０のアンダーフローを回避できるようになり、これにより、バッファ１０，４０の容量に必要以上の余裕を持たせる必要がなくなるので、バッファ１０，４０の容量を削減できるようになる。
【００６９】
そして、本発明を具備するメモリ制御部６によれば、フィルタ部２／符号化コア部３−ｉとメモリ５との間のデータ転送を司る命令を優先する形でデータ転送を実行することから、効率的にマクロブロックの処理を進めることができるようになる。
【００７０】
そして、本発明を具備するメモリ制御部６によれば、画像入力部１の持つバッファ１０がオーバーフローとなる直前までそのバッファ１０に画像データを入力するとともに、ビットストリーム出力部４の持つバッファ４０がアンダーフローとなる直前までそのバッファ４０から画像データを出力するというように処理することから、画像入力部１とメモリ５との間のデータ転送回数を削減できるようになるとともに、ビットストリーム出力部４とメモリ５との間のデータ転送回数を削減できるようになる。
【００７１】
上述したように、画像入力部１は、外部から与えられる画像データを入力する処理を行うことになるが、その他に、例えば、その入力した画像データの縮小画像データを作成してメモリ５に格納するというような処理を行うことがある。また、色画像を入力するときには、明度に関する画像データと輝度に関する画像データとを別々にメモリ５に入力する処理を行う。
【００７２】
これから、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令として、データ転送命令（ＴｒａｎｓＩｎ’）と、データ転送命令（ＴｒａｎｓＩｎ’’）というように複数種類のデータ転送命令が存在することがある。なお、このようなときには別々のバッファ１０が用意されることになる。
【００７３】
このような場合には、図６に示すように、実行命令決定手段６５は、図５に示した手順と同様の手順を実行する実行処理１（全てのバッファにオーバフローやアンダフローが発生しないようにしつつ、マクロブロックの処理に係るデータ転送命令を優先する形でデータ転送命令を選択する処理）に従って、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令を選択するときに、実行処理２に示すように、この複数種類のデータ転送命令（ＴｒａｎｓＩｎ’やＴｒａｎｓＩｎ’’）を順番に選択していくように処理することになる。
【００７４】
ここで、このような場合には、図６に示すように、入出力実行間隔最大値管理手段６３には、それぞれのデータ転送間隔の最大値が管理されることになるとともに、入出力経過サイクル数計数手段６４は、それぞれのデータ転送命令の終了からの経過サイクル数を計数することになる。
【００７５】
図２では、一般的な説明を行うために、各符号化コア部３−ｉのデータ転送命令が異なるものとなることで説明したが、実際には、各符号化コア部３−ｉは同一の処理を実行することから、図７に示すように、符号化コア部３−１のデータ転送命令もＴｒａｎｓ２，Ｔｒａｎｓ３，Ｔｒａｎｓ４であり、符号化コア部３−２のデータ転送命令もＴｒａｎｓ２，Ｔｒａｎｓ３，Ｔｒａｎｓ４であり、・・・・・、符号化コア部３−Ｎのデータ転送命令もＴｒａｎｓ２，Ｔｒａｎｓ３，Ｔｒａｎｓ４であるというように、各符号化コア部３−ｉのデータ転送命令は同一のものとなる。
【００７６】
この場合には、転送シーケンス保持用レジスタ６１は、図７に示すように、フィルタ部２とメモリ５との間のデータ転送を司るデータ転送命令（Ｔｒａｎｓ１）と、この共通のデータ転送命令（Ｔｒａｎｓ２，Ｔｒａｎｓ３，Ｔｒａｎｓ４）との羅列データについて保持すれば足りることになる。
【００７７】
すなわち、データ転送命令発行手段６０は、図８に示すように、データ転送命令（Ｔｒａｎｓ１）を発行した後、データ転送命令（Ｔｒａｎｓ２，Ｔｒａｎｓ３，Ｔｒａｎｓ４）を、「Ｔｒａｎｓ２→Ｔｒａｎｓ３→Ｔｒａｎｓ４」という順番にＮ回繰り返して発行してから、再び、データ転送命令（Ｔｒａｎｓ１）を発行していくことを繰り返していくという処理を行うことにより、転送シーケンス保持用レジスタ６１が「Ｔｒａｎｓ１，Ｔｒａｎｓ２，Ｔｒａｎｓ３，Ｔｒａｎｓ４  」という少ないデータ転送命令を保持すれば足りることを実現できるようになるからである。
【００７８】
この構成に従うと、転送シーケンス保持用レジスタ６１を小さなものにできるというメリットが得られる。
【００７９】
データ転送命令発行手段６０がこのようなデータ転送命令の発行形態を用いる場合には、アドレス計算手段６６は、データ転送命令発行手段６０での繰り返し数に応じてデータ転送毎のスライス番号とマクロブロック番号とを変更してアドレス計算を行うことになる。
【００８０】
図９に、本発明を具備する動画像符号化装置の他の実施形態例を図示する。
【００８１】
この実施形態例では、実行命令決定手段６５が次に実行するデータ転送命令としてデータ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）を決定するときにあって、そのデータ転送命令（Ｔｒａｎｓｐ）が待ち状態にあるということが起こることを考慮して、そのような待ち状態により発生する無駄なオーバーヘッドを削減することを目的としている。
【００８２】
この実施形態例に従う場合、メモリ制御部６は、実行命令決定手段６５の決定したデータ転送命令を入力として、次に実行するデータ転送命令を最終決定する処理を行う実行命令最終決定手段６８を備えるという構成を採る。
【００８３】
この実行命令最終決定手段６８は、実行命令決定手段６５が次に実行するデータ転送命令としてデータ転送命令発行手段６０の発行したデータ転送命令（Ｔｒａｎｓｐ）を決定するときにあって、そのデータ転送命令（Ｔｒａｎｓｐ）が待ち状態にあるときには、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）か、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）のいずれか一方を、次に実行するデータ転送命令として最終決定してアドレス計算手段６６に入力する処理を行う。
【００８４】
例えば、図１０に示すように、前回、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）を次に実行するデータ転送命令として最終決定した場合には、今回は、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）を次に実行するデータ転送命令として最終決定し、逆に、前回、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）を次に実行するデータ転送命令として最終決定した場合には、今回は、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）を次に実行するデータ転送命令として最終決定するのである。
【００８５】
あるいは、図１１に示すように、画像入力部１とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＩｎ）について、「ＭａｘＩｎ  −ＲＴｒａｎｓＩｎ」を計算するとともに、ビットストリーム出力部４とメモリ５との間のデータ転送を司るデータ転送命令（ＴｒａｎｓＢｓ）について、「ＭａｘＢｓ  −ＲＴｒａｎｓＢｓ」を計算することで、どちらの方が余裕がないのかを判断して、その余裕のない方のデータ転送命令を次に実行するデータ転送命令として最終決定するのである。
【００８６】
この実行命令最終決定手段６８を備えることで、転送シーケンスの待ち状態により発生する無駄なオーバーヘッドを削減できるようになる。
【００８７】
図示実施形態例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施形態例では、動画像符号化装置に適用した実施の形態に従って本発明を説明したが、本発明はその適用が動画像符号化装置に限られるものではない。
【００８８】
【発明の効果】
以上説明したように、本発明によれば、処理データを入力してメモリに書き込む入力部と、メモリに記憶される処理データに所定の処理を施す処理部と、メモリに記憶される処理の施された処理データを出力する出力部とを備える処理装置で用いられて、それらの各部とメモリとの間のデータ転送を制御するという構成を採るときにあって、入力部の持つバッファのオーバーフローを回避できるようになるとともに、出力部の持つバッファのアンダーフローを回避できるようになり、これにより、バッファの容量に必要以上の余裕を持たせる必要がなくなるので、バッファの容量を削減できるようになる。
【００８９】
そして、本発明によれば、処理部とメモリとの間のデータ転送を司るデータ転送命令を優先する形でデータ転送を実行することで、入力部の持つバッファがオーバーフローとなる直前までそのバッファに処理データを入力するとともに、出力部の持つバッファがアンダーフローとなる直前までそのバッファから処理データを出力するというように処理することから、入力部とメモリとの間のデータ転送回数を削減できるようになるとともに、出力部とメモリとの間のデータ転送回数を削減できるようになる。
【００９０】
そして、本発明によれば、処理部とメモリとの間のデータ転送を司るデータ転送命令が繰り返し発行される場合に、その転送シーケンスを指定するメモリ量を削減できるようになる。
【００９１】
そして、本発明によれば、処理部とメモリとの間のデータ転送を司るデータ転送命令の待ち状態により発生する無駄なオーバーヘッドを削減できるようになる。
【図面の簡単な説明】
【図１】本発明を具備する動画像符号化装置の一実施形態例である。
【図２】転送シーケンス保持用レジスタの保持する転送シーケンスの説明図である。
【図３】データ転送命令発行手段の実行処理の説明図である。
【図４】入出力経過サイクル数計数手段の実行処理の説明図である。
【図５】実行命令決定手段の実行処理の説明図である。
【図６】実行命令決定手段の実行処理の説明図である。
【図７】符号化コア部のデータ転送命令の説明図である。
【図８】データ転送命令発行手段の実行処理の説明図である。
【図９】本発明を具備する動画像符号化装置の他の実施形態例である。
【図１０】実行命令最終決定手段の実行処理の説明図である。
【図１１】実行命令最終決定手段の実行処理の説明図である。
【図１２】動画像符号化装置の装置構成の説明図である。
【図１３】従来の動画像符号化装置の処理の説明図である。
【符号の説明】
１    画像入力部
２    フィルタ部
３    符号化コア部
４    ビットストリーム出力部
５    メモリ
６    メモリ制御部
１０  バッファ
４０  バッファ
６０  データ転送命令発行手段
６１  転送シーケンス保持用レジスタ
６２  実行サイクル数管理手段
６３  入出力実行間隔最大値管理手段
６４  入出力経過サイクル数計数手段
６５  実行命令決定手段
６６  アドレス計算手段
６７  データ転送手段
【図１】
2004234057.tif 000003
【図２】
2004234057.tif 000004
【図３】
2004234057.tif 000005
【図４】
2004234057.tif 000006
【図５】
2004234057.tif 000007
【図６】
2004234057.tif 000008
【図７】
2004234057.tif 000009
【図８】
2004234057.tif 000010
【図９】
2004234057.tif 000011
【図１０】
2004234057.tif 000012
【図１１】
2004234057.tif 000013
【図１２】
2004234057.tif 000014
【図１３】
2004234057.tif 000015