(57)【特許請求の範囲】
【請求項１】
複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、
上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、
上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成手段と、
上記複数のコマンドディスクリプタが記憶される記憶手段と、
上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御手段とを備え、
上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、
上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、
上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、
上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている
画像処理装置。
【請求項２】
上記複数の画像処理形式の画像情報には、ＭＰＥＧ（Moving Picture Experts Group）形式、ＤＶ（Digital Video）形式の画像情報が含まれる請求項１記載の画像処理装置。
【請求項３】
複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、コマンドディスクリプタを記憶するための記憶手段とを備える画像処理装置の画像処理方法において、
上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成工程と、
上記複数のコマンドディスクリプタを上記記憶手段に記憶させる記憶制御工程と、
上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御工程とを有し、
上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、
上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、
上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、
上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている
画像処理方法。
【請求項４】
上記複数の画像処理形式の画像情報には、ＭＰＥＧ（Moving Picture Experts Group）形式、ＤＶ（Digital Video）形式の画像情報が含まれる請求項３記載の画像処理方法。
【請求項５】
複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、コマンドディスクリプタを記憶するための記憶手段とを備える画像処理装置に、
上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成工程と、
上記複数のコマンドディスクリプタを記憶手段に記憶させる記憶制御工程と、
上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御工程とを含む処理を実行させ、
上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、
上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、
上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、
上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている
プログラム。
【請求項６】
複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、コマンドディスクリプタを記憶するための記憶手段とを備える画像処理装置に、
上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成工程と、
上記複数のコマンドディスクリプタを記憶手段に記憶させる記憶制御工程と、
上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御工程とを含む処理を実行させるプログラムが記録された記録媒体であって、
上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、
上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、
上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、
上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている
プログラムが記録された記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び方法、並びにプログラム及び記録媒体に関し、詳しくは、画像情報を符号化及び／又は復号化する際に好適な画像処理装置及び方法、並びにプログラム及び記録媒体に関する。
【０００２】
【従来の技術】
近年、画像情報は、デジタルとして取り扱われる際に、効率の高い情報の伝送及び蓄積を目的として、ＭＰＥＧ（Moving Picture Experts Group）形式等による圧縮によって、画像圧縮情報として用いられることが多い。
【０００３】
このとき、画像情報を符号化する処理、画像圧縮情報を復号化する処理、さらには復号化と符号化とを行って画像圧縮情報を変換する処理には、ハードエンコーダ、ハードデコーダが用いられる場合と、ソフトエンコーダ、ソフトデコーダが用いられる場合とがある。
【０００４】
【発明が解決しようとする課題】
ところで、上述のＭＰＥＧ形式には、現在、ＭＰＥＧ１、ＭＰＥＧ２及びＭＰＥＧ４等が用いられているが、上述のハードエンコーダ、ハードデコーダは、１種類の圧縮形式しか対応しないものが主であり、複数種類の圧縮形式に対応するためには、多くのＩＣ（Integrated Circuit）が組み合わされた回路を必要としなければならない。これは、回路規模が大きくなり、コストが高くなるという問題点となる。
【０００５】
また、上述のソフトエンコーダ、ソフトデコーダには、処理速度が速い高性能ＣＰＵ（Central processing Unit）又は複数の汎用ＣＰＵが使用される必要がある。しかしながら、高性能ＣＰＵは、価格が高いという問題点がある。また、複数の汎用ＣＰＵを使用した場合には、コストが高く、消費電力が多く、さらに複数の汎用ＣＰＵを収容するスペースが必要となるという問題点がある。なお、上述の高性能ＣＰＵ及び汎用ＣＰＵには、ＶＬＩＷ（Very Long Instruction Word）方式に対応したＣＰＵも含まれるものとする。
【０００６】
そこで、本発明は、上述の実情に鑑みて提案されたものであり、汎用ＣＰＵを用いて複数種類の圧縮形式に対応した処理を行うことができる画像処理装置及び方法、並びにプログラム及び記録媒体を提供することを目的としている。
【０００７】
【課題を解決するための手段】
本発明に係る画像処理装置は、上述の問題点を解決するために、複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成手段と、上記複数のコマンドディスクリプタが記憶される記憶手段と、上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御手段とを備え、上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている。
【０００８】
この画像処理装置は、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備え、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを記憶手段に作成し、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことにより、複数のモジュールの間で作業の受け渡しを行うことができる。
【０００９】
本発明に係る画像処理方法は、上述の問題点を解決するために、複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、コマンドディスクリプタを記憶するための記憶手段とを備える画像処理装置の画像処理方法において、上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成工程と、上記複数のコマンドディスクリプタを上記記憶手段に記憶させる記憶制御工程と、上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御工程とを有し、上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている。
【００１０】
この画像処理方法では、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備える画像処理装置の画像処理方法において、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成し、記憶手段に記憶させ、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことにより、複数のモジュールの間で作業の受け渡しを行うことができる。
【００１１】
本発明に係るプログラムは、上述の問題点を解決するために、複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、コマンドディスクリプタを記憶するための記憶手段とを備える画像処理装置に、上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成工程と、上記複数のコマンドディスクリプタを記憶手段に記憶させる記憶制御工程と、上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御工程とを含む処理を実行させ、上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている。
【００１２】
このプログラムは、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備える画像処理装置に、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成し、記憶手段に記憶させ、記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込む処理を実行させることにより、複数のモジュールの間で作業の受け渡しを行わせる。
【００１３】
本発明に係る記録媒体は、上述の問題点を解決するために、複数の画像処理形式の画像情報を符号化及び／又は復号化するための処理ユニットを構成する各部の機能にそれぞれ対応する複数のモジュールと、上記複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段と、コマンドディスクリプタを記憶するための記憶手段とを備える画像処理装置に、上記複数の画像処理形式に応じて、上記複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成工程と、上記複数のコマンドディスクリプタを記憶手段に記憶させる記憶制御工程と、上記記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、上記最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御工程とを含む処理を実行させるプログラムが記録された記録媒体であって、上記複数のコマンドディスクリプタのうちの所定のコマンドディスクリプタには、上記複数のモジュールのうちの所定のモジュールが実行する作業内容を指定する情報と、上記所定のモジュールの実行結果を用いて次の作業を実行する次のモジュールを指定する情報と、上記指定されたモジュールが実行する作業に関するコマンドディスクリプタが記憶されている領域を指定する情報とが少なくとも記述されている。
【００１４】
この記録媒体は、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備える画像処理装置に、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成し、記憶手段に記憶させ、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込む処理を実行させるプログラムが記録されていることにより、複数のモジュールの間で作業の受け渡しを行わせる。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。本発明の実施の形態として示すトランスコーダは、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数の処理モジュールと、複数の処理モジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段としてのＪｏｂ  Ｑｕｅｕｅ  ＦＩＦＯ（以下、単にＦＩＦＯ：First-in First-Outと記す）と、複数の画像処理形式に応じて複数の処理モジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成する作成手段としての作成機能部と、複数のコマンドディスクリプタが記憶される記憶手段としてのＲＡＭ（Random Access Memory）と、記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行する処理モジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことを制御する制御手段としての制御機能部とを備えるものである。
【００１６】
まず、本発明の実施の形態に係るトランスコーダ１の概略構成について図１を用いて説明する。トランスコーダ１を構成する各部は、モジュール化されており、トランスコーダ１全体の動作を制御する制御ユニット１１と、エンコード、デコード、トランスコード、解像度変換（スケーリング）、フレームレート変換、ビットレート変換等の処理を行う処理ユニット１２と、情報が記憶されるメモリユニット１３と、画像情報及びＭＰＥＧ（Moving Picture Experts Group）形式で圧縮された画像圧縮情報（以下、ＭＰＥＧ画像圧縮情報と記す）を入出力する入出力ユニット１４とに分類される。
【００１７】
ここで、上述のＭＰＥＧ画像圧縮情報は、例えばＭＰＥＧ１、ＭＰＥＧ２  ＨＤ（High Definition）、ＭＰＥＧ２  ＳＤ（StanDard）、ＭＰＥＧ４形式等で圧縮されたＭＰＥＧ画像圧縮情報のことである。
【００１８】
制御ユニット１１は、ＣＰＵ２１と、ＣＰＵ２１が接続されるＣＰＵインターフェース２２と、図示しないホストコンピュータが接続されるホストインターフェース２３と、図示しない外部ＲＯＭ（Read Only Memory）が接続される外部ＲＯＭインターフェース２４と、後述するアドレスを分類するジョブスプリッタ２５とからなる。
【００１９】
処理ユニット１２は、画像情報の動きベクトルを検出する動き推定部２６と、画像情報を離散コサイン変換と量子化する離散コサイン変換＋量子化部２７と、画像情報を可変長符号化する可変長符号化部２８と、ＭＰＥＧ画像圧縮情報を可変長復号化する可変長復号化部２９と、ＭＰＥＧ画像圧縮情報を逆離散コサイン変換と逆量子化する逆量子化＋逆離散コサイン変換部３０と、動きベクトルを用いて画像情報の動き予測を行う動き補償部３１と、ＭＰＥＧ画像圧縮情報の解像度を変換する解像度変換部３２と、アドレスを先入れ先出しするＦＩＦＯ３３ａ〜３３ｇとからなる。
【００２０】
以下、本明細書では、動き推定部２６、離散コサイン変換＋量子化部２７、可変長符号化部２８、可変長復号化部２９、逆量子化＋逆離散コサイン変換部３０、動き補償部３１及び解像度変換部３２を個々に区別する必要がない場合は、まとめて処理モジュール２６〜３２と記すことにする。
【００２１】
メモリユニット１３は、情報の蓄積や展開等に使用されるＲＡＭ３４と、ＲＡＭ３４を制御するＲＡＭコントローラ３５とからなる。
【００２２】
入出力ユニット１４は、画像情報を入力するビデオイン３６と、ＭＰＥＧ画像圧縮情報を入力する圧縮ビデオイン３７と、画像情報を出力するビデオアウト３８と、ＭＰＥＧ画像圧縮情報を出力する圧縮ビデオアウト３９とからなる。
【００２３】
次に、上述の各部の機能を説明する。まず、制御ユニット１１を構成する各部の機能を説明する。ＣＰＵ２１は、ＣＰＵ２１が実行する機能ブロックとして、各部の動作等を制御する制御機能部２１ａと、詳細は図２を用いて後述するが、処理モジュール２６〜３２が実行する一連の作業に関する複数のコマンドディスクリプタを作成する作成機能部２１ｂとを有する。ＣＰＵインターフェース２２は、ＣＰＵ２１を内部バスに接続するための接続機器である。ホストインターフェース２３は、ホストコンピュータを内部バスに接続するための接続機器である。外部ＲＯＭインターフェース２４は、外部ＲＯＭを内部バスに接続するための接続機器である。ジョブスプリッタ２５は、内部バスを介して受信したアドレスを分類し、ＦＩＦＯ３３ａ〜３３ｇへ送信する。
【００２４】
続いて、処理ユニット１２を構成する各部の機能を説明する。動き推定部２６は、画像情報の動きベクトルを検出し、内部バスへ出力する。離散コサイン変換＋量子化部２７は、画像情報を離散コサイン変換と量子化し、内部バスへ出力する。可変長符号化部２８は、画像情報を可変長符号化し、内部バスへ出力する。可変長復号化部２９は、ＭＰＥＧ画像圧縮情報を可変長復号化し、内部バスへ出力する。逆量子化＋逆離散コサイン変換部３０は、ＭＰＥＧ画像圧縮情報を逆離散コサイン変換と逆量子化し、内部バスへ出力する。動き補償部３１は、動きベクトルを用いて画像情報の動き予測を行い、内部バスへ出力する。解像度変換部３２は、ＭＰＥＧ画像圧縮情報の解像度を変換し、内部バスへ出力する。ＦＩＦＯ３３ａ〜３３ｇは、ジョブスプリッタ２５から送信されたアドレスを一時的に記憶し、先入れ先出し方式により一時的に記憶したアドレスを送出する素子であり、それぞれ処理モジュール２６〜３２に接続している。
【００２５】
また、メモリユニット１３を構成する各部の機能を説明する。ＲＡＭ３４は、共有メモリとされる高速な内蔵ＤＲＡＭ（Dynamic Random Access Memory）であり、詳細は図２を用いて後述するが、複数のコマンドディスクリプタが記憶される。ＲＡＭコントローラ３５は、ＲＡＭ３４を制御して、ＲＡＭ３４に記憶されているアドレス等の情報を読み書きする。
【００２６】
また、入出力ユニット１４を構成する各部の機能を説明する。ビデオイン３６は、画像情報を入力し、内部バスへ出力する。圧縮ビデオイン３７は、ＭＰＥＧ画像圧縮情報を入力し、内部バスへ出力する。ビデオアウト３８は、内部バスからの画像情報を出力する。圧縮ビデオアウト３９は、内部バスからのＭＰＥＧ画像圧縮情報を出力する。
【００２７】
このように構成されたトランスコード１は、処理モジュール２６〜３２が複数のコマンドディスクリプタに基づいて一連の作業を行うことによって、エンコード、デコード、トランスコード、解像度変換、フレームレート変換、ビットレート変換等の複数の処理を行う。
【００２８】
ここで、トランスコーダ１がコマンドディスクリプタを用いないでトランスコードを行った場合のＣＰＵ２１の割り込み回数について説明する。
【００２９】
トランスコーダ１が圧縮ビデオイン３７に入力した１つのＭＰＥＧ画像圧縮情報をトランスコードする場合、ＣＰＵ２１の機能ブロックとされる制御機能部２１ａは、処理モジュール２６〜３２がＭＰＥＧ画像圧縮情報の基本単位とされるフレーム単位で作業を実行するようにスケジューリングする。これにより、処理モジュール２６〜３２は、スケジューリングに沿って作業を実行し、ＭＰＥＧ画像圧縮情報をデコード、解像度変換及びエンコードして、より少ない割り当て符号量を有するＭＰＥＧ画像圧縮情報へとトランスコードする。
【００３０】
一方、トランスコーダ１が圧縮ビデオイン３７に入力した複数の異なるフレームレートを有するＭＰＥＧ画像圧縮情報を同時にトランスコードする場合、上述のフレーム単位のスケジューリングでは、処理モジュール２６〜３２のうちの各モジュールが実行する作業が重複してしまう。これにより、制御機能部２１ａは、処理モジュール２６〜３２が確実に作業を実行するようにスケジューリングすることが困難となる。そこで、制御機能部２１ａは、フレーム単位ではなく、より小さな単位であるスライス単位で処理モジュール２６〜３２をスケジューリングする必要がある。
【００３１】
しかしながら、制御機能部２１ａがスライス単位で処理モジュール２６〜３２をスケジューリングすると、制御機能部２１ａの割り込み回数が膨大な数となる。例えば、３０ｆｐｓのフレームレート、１フレーム当たり３０スライスとされる７２０×４８０の標準解像度を有する２つのＭＰＥＧ画像圧縮情報を、トランスコーダ１がデコード、解像度変換及びエンコードする場合、処理モジュール２６〜３２は７つなので、制御機能部２１ａの割り込み回数は、式（１）に示す値となる。
【００３２】
【数１】
0004423820.tif 000002
そこで、トランスコーダ１は、ＣＰＵ２１の割り込み回数を減少させるために、コマンドディスクリプタを用いる。
【００３３】
続いて、コマンドディスクリプタについて説明をする。ＣＰＵ２１の機能ブロックとされる作成機能部２１ｂは、ビデオイン３６に画像情報が入力したとき、又は圧縮ビデオイン３７にＭＰＥＧ画像圧縮情報が入力したときに、処理モジュール２６〜３２が実行する一連の作業に関する複数のコマンドディスクリプタをＲＡＭ３４に作成する。
【００３４】
上述の複数のコマンドディスクリプタの一例として、コマンドディスクリプタ５０を図２に示す。処理モジュール２６〜３２のうちの離散コサイン変換＋量子化部２７が、このコマンドディスクリプタ５０に基づいて作業を実行するものとする。
【００３５】
コマンドディスクリプタ５０は、コマンドコード５１、割込みフラグ５２、パラメータ５３、ネクスト処理モジュール５４１、ネクストアドレスポインタ５５１、ネクスト処理モジュール５４２及びネクストアドレスポインタ５５２から構成される。
【００３６】
コマンドコード５１には、離散コサイン変換＋量子化部２７が実行する作業内容を指定する記述がなされている。割込みフラグ５２には、制御機能部２１ａが割り込みをするか否かを指定するフラグが記述されている。パラメータ５３には、離散コサイン変換＋量子化部２７が実行する作業に応じて必要な引数が記述されている。ネクスト処理モジュール５４１には、離散コサイン変換＋量子化部２７の作業結果を用いて、次に作業を実行する可変長符号化部２８を指定する記述がなされている。ネクストアドレスポインタ５５１には、可変長符号化部２８が実行するコマンドディスクリプタが記憶されているＲＡＭ３４内の領域を指定するアドレスが記述されている。ネクスト処理モジュール５４２には、離散コサイン変換＋量子化部２７の作業結果を用いて、次に作業を実行する逆量子化＋逆離散コサイン変換部３０を指定する記述がなされている。ネクストアドレスポインタ５５２には、逆量子化＋逆離散コサイン変換部３０が実行するコマンドディスクリプタが記憶されているＲＡＭ３４内の領域を指定するアドレスが記述されている。
【００３７】
次に、離散コサイン変換＋量子化部２７が上述のコマンドディスクリプタ５０に基づいて作業を実行する動作について、図３に示すフローチャートを用いて説明する。
【００３８】
ステップＳ１において、離散コサイン変換＋量子化部２７は、接続されているＦＩＦＯ３３ｂが空であるか否かを判断する。ＦＩＦＯ３３ｂが空である場合、離散コサイン変換＋量子化部２７は、ＦＩＦＯ３３ｂにアドレスが書き込まれるまで待機する。一方、ＦＩＦＯ３３ｂが空ではなくアドレスが書き込まれている場合、ステップＳ２へ進んで処理が行われる。
【００３９】
ステップＳ２において、離散コサイン変換＋量子化部２７は、ＦＩＦＯ３３ｂからアドレスを１個読み込む。ステップＳ３において、離散コサイン変換＋量子化部２７は、アドレスが指定するＲＡＭ３４内の領域からコマンドディスクリプタ５０を読む。ステップＳ４において、離散コサイン変換＋量子化部２７は、コマンドディスクリプタ５０のコマンドコード５１及びパラメータ５３が指定する作業を実行する。
【００４０】
ステップＳ５において、離散コサイン変換＋量子化部２７は、実行した作業が終了したか否を判断する。作業が終了していない場合、離散コサイン変換＋量子化部２７は、上述のステップＳ４に戻って引き続き作業を実行する。一方、作業が終了した場合、ステップＳ６へ進んで処理が行われる。
【００４１】
ステップＳ６において、離散コサイン変換＋量子化部２７は、コマンドディスクリプタ５０の割込みフラグ５２が“１”であるか否か、すなわち割込み制御ビットが“１”であるか否かを判断する。割込みフラグ５２が“１”である場合、ステップＳ７へ進んで処理が行われる。一方、割込みフラグ５２が“１”でない場合、ステップＳ８へ進んで処理が行われる。
【００４２】
ステップＳ７において、詳細は図５を用いて説明するが、制御機能部２１ａは、割り込み処理を行う。
【００４３】
ステップＳ８において、離散コサイン変換＋量子化部２７は、コマンドディスクリプタ５０のネクスト処理モジュール５４１の値を確認し、“０”であるか否かを判断する。ネクスト処理モジュール５４１が“０”である場合、離散コサイン変換＋量子化部２７は、作業を終了し、上述のステップＳ１に戻ってＦＩＦＯ３３ｂが空であるか否かを判断する。一方、ネクスト処理モジュール５４１が“０”でない場合、ステップＳ９へ進んで処理が行われる。
【００４４】
ステップＳ９において、離散コサイン変換＋量子化部２７は、ジョブスプリッタ２５を介して、ネクスト処理モジュール５４１が指定する可変長符号化部２８に接続されているＦＩＦＯ３３ｃに、ネクストアドレスポインタ５５１のアドレスを書き込み、作業の受け渡しを行う。
【００４５】
ステップＳ１０において、離散コサイン変換＋量子化部２７は、ネクスト処理モジュール５４２の値を確認し、“０”であるか否かを判断する。ネクスト処理モジュール５４２が“０”である場合、離散コサイン変換＋量子化部２７は、上述のステップＳ１に戻ってＦＩＦＯ３３ｂが空であるか否かを判断する。一方、ネクスト処理モジュール５４２が“０”でない場合、ステップＳ１１へ進んで処理が行われる。
【００４６】
ステップＳ１１において、離散コサイン変換＋量子化部２７は、ジョブスプリッタ２５を介して、ネクスト処理モジュール５４２が指定する逆量子化＋逆離散コサイン変換部３０に接続されているＦＩＦＯ３３ｅに、ネクストアドレスポインタ５５２のアドレスを書き込み、作業の受け渡しを行う。
【００４７】
離散コサイン変換＋量子化部２７は、上述の処理を行って、制御機能部２１ａの介在無しに可変長符号化部２８と逆量子化＋逆離散コサイン変換部３０とに作業の受け渡しを行い、その後、ステップＳ１に戻って処理を続ける。
【００４８】
次に、制御機能部２１ａと作成機能部２１ｂとを有するＣＰＵ２１の制御動作について説明する。ＣＰＵ２１の制御動作は、ＣＰＵ２１の割り込み発生時とそれ以外との場合に分かれるので、まず、ＣＰＵ２１の割り込み発生時以外におけるＣＰＵ２１の制御動作について、図４に示すフローチャートを用いて説明する。
【００４９】
ステップＳ２１において、制御機能部２１ａは、ホストインターフェース２３に接続されたホストコンピュータから送信される設定コマンドを受信したか否かを判断する。受信した場合に、ステップＳ２２へ進んで処理が行われる。一方、設定コマンドを受信しなかった場合、ステップＳ２３へ進んで処理が行われる。
【００５０】
ステップＳ２２において、制御機能部２１ａは、受信した設定コマンドを基に設定作業を行う。
【００５１】
ステップＳ２３において、制御機能部２１ａは、ビデオイン３６に画像情報（画像フレーム）が入力したか、又はデコードされた画像情報（被デコードフレーム）が完成したかを判断する。画像情報が入力した、又はデコードされている画像情報が完成した場合、ステップＳ２４へ進んで処理が行われる。一方、画像情報が入力していない、又はデコードされた画像情報が完成していない場合、ステップＳ２６へ進んで処理が行われる。
【００５２】
ステップＳ２４において、作成機能部２１ｂは、画像情報の最初の１〜数スライス分をエンコードするための複数のコマンドディスクリプタをＲＡＭ３４に作成する。ステップＳ２５において、制御機能部２１ａは、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタのアドレスを、処理モジュール２６〜３２のうちの最初のコマンドディスクリプタを実行する処理モジュールに接続されているＦＩＦＯに書き込む。
【００５３】
ステップＳ２６において、制御機能部２１ａは、圧縮ビデオイン３７にＭＰＥＧ画像圧縮画像が入力したか否かを判断する。圧縮ビデオイン３７にＭＰＥＧ画像圧縮画像が入力しなかった場合、制御機能部２１ａは、上述のステップＳ２１に戻って、ホストコンピュータから送信される設定コマンドを受信したか否かを判断する。一方、圧縮ビデオイン３７にＭＰＥＧ画像圧縮画像が入力した場合、ステップＳ２７へ進んで処理が行われる。
【００５４】
ステップＳ２７において、制御機能部２１ａは、ＭＰＥＧ画像圧縮画像をスキャンする。ステップＳ２８において、作成機能部２１ｂは、ＭＰＥＧ画像圧縮画像をデコードするための複数のコマンドディスクリプタをＲＡＭ３４に作成する。ステップＳ２９において、制御機能部２１ａは、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタのアドレスを、処理モジュール２６〜３２のうちの最初のコマンドディスクリプタを実行する処理モジュールに接続されているＦＩＦＯに書き込む。
【００５５】
ＣＰＵ２１は、上述の処理を終了した後に、ステップＳ２１に戻って、処理を続ける。
【００５６】
次に、ＣＰＵ２１の割り込み発生時におけるＣＰＵ２１の制御動作について、図５に示すフローチャートを用いて説明する。図３のステップＳ６に示すように、コマンドディスクリプタ５０のコマンドコード５１及びパラメータ５３が指定する作業が終了したあとに、割込みフラグ５２が“１”である場合に、割り込みが発生する。
【００５７】
ステップＳ４１において、制御機能部２１ａは、画像情報をエンコードするためのコマンドディスクリプタの処理が終了しているか否かを判断する。コマンドディスクリプタの処理が終了している場合、ステップＳ４２へ進んで処理が行われる。一方、コマンドディスクリプタの処理が終了していない場合、ステップＳ４６へ進んで処理が行われる。
【００５８】
ステップＳ４２において、割り込みが発生する以前までの画像情報が、ＭＰＥＧ画像圧縮情報に合成される。
【００５９】
ステップＳ４３において、制御機能部２１ａは、画像情報の全てのスライスに対するエンコードが終了しているか否かを判断する。全てのスライスに対するエンコードが終了していない場合、ステップＳ４４へ進んで処理が行われる。一方、全てのスライスに対するエンコードが終了している場合、ステップＳ４６へ進んで処理が行われる。
【００６０】
ステップＳ４４において、作成機能部２１ｂは、次の１〜数スライス分をエンコードするための複数のコマンドディスクリプタをＲＡＭ３４に作成する。ステップＳ４５において、制御機能部２１ａは、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタのアドレスを、処理モジュール２６〜３２のうちの最初のコマンドディスクリプタを実行する処理モジュールに接続されているＦＩＦＯに書き込む。
【００６１】
ステップＳ４６において、制御機能部２１ａは、ＭＰＥＧ画像圧縮情報をデコードするためのコマンドディスクリプタの処理が終了しているか否かを判断する。コマンドディスクリプタの処理が終了している場合、ステップＳ４７へ進んで処理が行われる。一方、コマンドディスクリプタの処理が終了していない場合、制御機能部２１ａは、割り込み処理を終了する。
【００６２】
ステップＳ４７において、割り込みが発生する以前までのＭＰＥＧ画像圧縮情報が、画像情報に合成される。
【００６３】
ステップＳ４８において、制御機能部２１ａは、圧縮ビデオイン３７に次のＭＰＥＧ画像圧縮画像が入力したか否かを判断する。圧縮ビデオイン３７に次のＭＰＥＧ画像圧縮画像が入力しなかった場合、制御機能部２１ａは、割り込み処理を終了する。一方、圧縮ビデオイン３７に次のＭＰＥＧ画像圧縮画像が入力した場合、ステップＳ４９へ進んで処理が行われる。
【００６４】
ステップＳ４９において、制御機能部２１ａは、ＭＰＥＧ画像圧縮画像をスキャンする。ステップＳ５０において、作成機能部２１ｂは、ＭＰＥＧ画像圧縮画像をデコードするための複数のコマンドディスクリプタをＲＡＭ３４に作成する。ステップＳ５１において、制御機能部２１ａは、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタのアドレスを、処理モジュール２６〜３２のうちの最初のコマンドディスクリプタを実行する処理モジュールに接続されているＦＩＦＯに書き込み、割り込み処理を終了する。
【００６５】
以上、詳細に説明したように、本発明の実施の形態に係るトランスコーダ１は、作成機能部２１ｂが作成した複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタのアドレスを、制御機能部２１ａが処理モジュール２６〜３２のうちの最初のコマンドディスクリプタを実行する処理モジュールに接続されているＦＩＦＯに書き込み、処理モジュール２６〜３２が複数のコマンドディスクリプタに基づいて一連の作業を実行することにより、処理モジュール２６〜３２の間で作業の受け渡しを行うことができる。
【００６６】
これにより、トランスコーダ１は、ＣＰＵ２１の割り込み回数を減らすことができ、ＣＰＵ２１の負荷率を下げることができるので、複数のＭＰＥＧ画像圧縮情報を同時に処理することができる。
【００６７】
また、トランスコーダ１は、複数のコマンドディスクリプタに基づいて処理モジュール２６〜３２が一連の作業を実行することにより、複数種類の圧縮形式に対応することができるので、従来の１種類の圧縮形式しか対応できないハードエンコーダ及びハードデコーダと比べて、高い柔軟性と多機能性とを有している。
【００６８】
さらに、トランスコーダ１は、ＣＰＵ２１の負荷率を下げることができるので、高性能ＣＰＵを必要とせず、汎用ＣＰＵを用いることができる。これにより、トランスコーダ１は、従来の高性能ＣＰＵを必要とするソフトエンコーダ及びソフトデコーダと比べて、コストを抑えることができる。また、トランスコーダ１は、従来の複数の汎用ＣＰＵを必要とするソフトエンコーダ及びソフトデコーダと比べて、コスト、消費電力及びスペースを抑えることができる。
【００６９】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることはもちろんである。
【００７０】
例えば、本発明の実施の形態では、トランスコーダ１が扱う画像圧縮情報として、ＭＰＥＧ１、ＭＰＥＧ２  ＨＤ、ＭＰＥＧ２  ＳＤ、ＭＰＥＧ４形式で圧縮されたＭＰＥＧ画像圧縮情報を示したが、これに限らず、例えば、ＤＶ（Digital Video）形式で圧縮された画像圧縮情報であってもよい。
【００７１】
また、図２を用いて説明したコマンドディスクリプタ５０には、ネクスト処理モジュール５４１及びネクスト処理モジュール５４２とする２つのネクスト処理モジュールと、ネクストアドレス５５１及びネクストアドレス５５２とする２つのネクストアドレスとを示したが、これに限らず、トランスコーダ１が行う処理によって変化するものである。
【００７２】
また、ＦＩＦＯ３０ａ〜３０ｇに書き込まれるアドレスのパスは、内部バスとは別に設けているが、内部バスと共用にしてもよい。
【００７３】
また、トランスコーダ１が備えるＲＡＭ３４は、内蔵ＤＲＡＭとしたが、これに限らず、外部に備えた外部ＤＲＡＭであってもよい。
【００７４】
【発明の効果】
以上詳細に説明したように、本発明に係る画像処理装置は、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備え、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを記憶手段に作成し、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことにより、複数のモジュールの間で作業の受け渡しを行うことができる。
【００７５】
これにより、画像処理装置は、複数の画像処理形式の画像情報を同時に符号化及び／又は復号化することができる。
【００７６】
また、本発明に係る画像処理方法では、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備える画像処理装置の画像処理方法において、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成し、記憶手段に記憶させ、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込むことにより、複数のモジュールの間で作業の受け渡しを行うことができる。
【００７７】
これにより、画像処理方法では、複数の画像処理形式の画像情報を同時に符号化及び／又は復号化することができる。
【００７８】
また、本発明に係るプログラムは、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備える画像処理装置に、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成し、記憶手段に記憶させ、記憶手段に記憶された複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込む処理を実行させることにより、複数のモジュールの間で作業の受け渡しを行わせる。
【００７９】
これにより、プログラムは、画像処理装置に、複数の画像処理形式の画像情報を同時に符号化及び／又は復号化させることができる。
【００８０】
また、本発明に係る記録媒体は、複数の画像処理形式の画像情報を符号化及び／又は復号化する複数のモジュールと、複数のモジュールの各々に対応する先入れ先出し方式による複数の一時記憶手段とを備える画像処理装置に、複数の画像処理形式に応じて、複数のモジュールが実行する一連の作業に関する作業情報としての複数のコマンドディスクリプタを作成し、記憶手段に記憶させ、複数のコマンドディスクリプタのうちの最初のコマンドディスクリプタを実行するモジュールに対応する一時記憶手段に、最初のコマンドディスクリプタが記憶されている領域を指定する情報を書き込む処理を実行させるプログラムが記録されていることにより、複数のモジュールの間で作業の受け渡しを行わせる。
【００８１】
これにより、記録媒体は、画像処理装置に、複数の画像処理形式の画像情報を同時に符号化及び／又は復号化させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るトランスコーダ１の概略構成を説明する図である。
【図２】同トランスコーダ１を構成する作成機能部２１ｂが作成した複数のコマンドディスクリプタの一例とするコマンドディスクリプタ５０を説明する図である。
【図３】同トランスコーダ１を構成する離散コサイン変換＋量子化部２７がコマンドディスクリプタ５０に基づいて実行する動作を説明するフローチャートである。
【図４】同トランスコーダ１を構成するＣＰＵ２１の割り込み発生時以外の制御動作を説明するフローチャートである。
【図５】同トランスコーダ１を構成するＣＰＵ２１の割り込み発生時の制御動作を説明するフローチャートである。
【符号の説明】
１  トランスコーダ、１１  制御ユニット、１２  処理ユニット、１３メモリユニット、１４  入出力ユニット、２１  ＣＰＵ、２１ａ  制御機能部、２１ｂ作成機能部、２２  ＣＰＵインターフェース、２３  ホストインターフェース、２４  外部ＲＯＭインターフェース、２５  ジョブスプリッタ、２６  動き推定部、２７  離散コサイン変換＋量子化部、２８  可変長符号化部、２９  可変長復号化部、３０  逆量子化＋逆離散コサイン変換部、３１  動き補償部、３２解像度変換部、３３ａ〜３３ｇ  Ｊｏｂ  Ｑｕｅｕｅ  ＦＩＦＯ、３４  ＲＡＭ、３５  ＲＡＭコントローラ、３６  ビデオイン、３７  圧縮ビデオイン、３８  ビデオアウト、３９  圧縮ビデオアウト、５０  コマンドディスクリプタ、５１、コマンドコード、５２  割込みフラグ、５３  パラメータ、５４１、５４２  ネクスト処理モジュール、５５１、５５２  ネクストアドレスポインタ
【図１】
0004423820.tif 000003
【図２】
0004423820.tif 000004
【図３】
0004423820.tif 000005
【図４】
0004423820.tif 000006
【図５】
0004423820.tif 000007