(57)【特許請求の範囲】
【請求項１】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
該プロセッサ部に接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記プロセッサ部へ出力する可変長符号デコード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記可変長符号デコード部から出力された第２の種類のデータを画像データに復元して出力するようにしてあること
を特徴とする画像処理装置。
【請求項２】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、
該メモリに接続しており、複数の固定長符号からなるデータを画像データに復元するためのプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
前記メモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記メモリに書き込む可変長符号デコード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記メモリに前記可変長符号デコード部が書き込んだ第２の種類のデータを読み出して画像データに復元して出力するようにしてあること
を特徴とする画像処理装置。
【請求項３】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の可変長符号からなるデータを画像データに復元するためのプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
該プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、第３の種類のデータと前記データロード部から出力された元画像データとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力するようにしてあること
を特徴とする画像処理装置。
【請求項４】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、
該メモリに接続しており、複数の可変長符号からなるデータを画像データに復元するためのプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
前記メモリに接続しており、復元されるべき画像データの元となる元画像データを前記メモリに書き込むデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、前記メモリに前記データロード部が書き込んだ元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力するようにしてあること
を特徴とする画像処理装置。
【請求項５】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、
該メモリに接続しており、複数の可変長符号からなるデータを画像データに復元するためのプログラムの複数の命令をデコードする命令デコーダと、該命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
前記メモリに接続しており、復元されるべき画像データの元となる元画像データを半画素単位又は整数画素単位で前記メモリから読み出すデータ読み出し部と、該データ読み出し部に接続しており、半画素単位で処理される場合は前記読み出し部により読み出された元画像データの少なくとも二つの隣接する画素のデータを加算し、整数画素単位で処理される場合は前記読み出し部により読み出された元画像データの画素のデータのビット幅を拡張する加算部と、該加算部に接続しており、前記加算部による加算結果又は前記加算部によりビット幅が拡張されたデータを前記メモリに書き込むデータ書き込み部とを含むデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラム命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、半画素単位で処理される場合は前記メモリに前記データロード部により書き込まれた加算結果のデータを読み出すことにより、整数画素単位で処理される場合は前記メモリに前記データロード部により書き込まれたビット幅が拡張されたデータを読み出すことにより、第３の種類のデータと加算結果のデータ又はビット幅が拡張されたデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力すると共に、元画像データとして前記メモリへ出力するようにしてあること
を特徴とする画像処理装置。
【請求項６】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
該プロセッサ部に接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記プロセッサ部へ出力する可変長符号デコード部と、
前記プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記可変長符号デコード部から出力された第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、第３の種類のデータと前記データロード部から出力された元画像データとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力するようにしてあること
を特徴とする画像処理装置。
【請求項７】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、
複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
前記メモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記メモリへ出力する可変長符号デコード部と、
前記プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記メモリに前記可変長符号デコード部により書き込まれた第２の種類のデータを読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記メモリに前記データロード部により書き込まれた元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力するようにしてあること
を特徴とする画像処理装置。
【請求項８】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するための第１のメモリ及び第２のメモリと、
前記第１のメモリに接続しており、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令をデコードする第１の命令デコーダと、該第１の命令デコーダからの出力に従って命令を実行する第１の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第１のプロセッサ部と、
前記第２のメモリに接続しており、前記プログラムの複数の命令をデコードする第２の命令デコーダと、該第２の命令デコーダからの出力に従って命令を実行する第２の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第２のプロセッサ部と、
前記第１のメモリ及び第２のメモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、デコード結果を前記第１のメモリ及び第２のメモリに書き込む可変長符号デコード部と、
前記第１のメモリ及び第２のメモリに接続しており、復元されるべき画像データの元となる元画像データを前記第１のメモリ及び第２のメモリに書き込むデータロード部と
を備え、
前記第１のプロセッサ部及び第２のプロセッサ部はそれぞれ並列に、前記命令デコーダが前記プログラムの命令をデコードした出力に従って前記第１及び第２の命令実行部にそれぞれ命令を実行させることにより、前記第１のメモリ及び第２のメモリに前記可変長符号デコード部により書き込まれた第２の種類のデータをそれぞれ読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記第１のメモリ及び第２のメモリに前記データロード部により書き込まれた元画像データをそれぞれ読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとしてそれぞれ出力するようにしてあること
を特徴とする画像処理装置。
【請求項９】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するための第１のメモリ及び第２のメモリと、
前記第１のメモリに接続しており、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令をデコードする第１の命令デコーダと、該第１の命令デコーダからの出力に従って命令を実行する第１の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第１のプロセッサ部と、
前記第２のメモリに接続しており、前記プログラムの複数の命令をデコードする第２の命令デコーダと、該第２の命令デコーダからの出力に従って命令を実行する第２の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第２のプロセッサ部と、
前記第１のメモリ及び第２のメモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、デコード結果を前記第１のメモリ及び第２のメモリに書き込む可変長符号デコード部と、
前記第１のメモリ及び第２のメモリに接続しており、復元されるべき画像データの元となる元画像データを読み出すデータ読み出し部と、該データ読み出し部に接続しており、前記データ読み出し部により読み出された元画像データの少なくとも二つの隣接する画素のデータを加算する加算部と、該加算部に接続しており、前記加算部による加算結果を前記第１のメモリ及び第２のメモリに書き込むデータ書き込み部とを含むデータロード部と
を備え、
前記第１のプロセッサ部及び第２のプロセッサ部はそれぞれ並列に、前記命令デコーダが前記プログラムの命令をデコードした出力に従って前記第１及び第２の命令実行部にそれぞれ命令を実行させることにより、前記第１のメモリ及び第２のメモリに前記可変長符号デコード部により書き込まれた第２の種類のデータをそれぞれ読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記第１のメモリ及び第２のメモリに前記データロード部により書き込まれた加算結果をそれぞれ読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとしてそれぞれ出力するようにしてあること
を特徴とする画像処理装置。
【請求項１０】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、
複数の固定長符号からなるデータを画像データに復元するためのプログラムを記憶するための読み出し専用メモリと、
前記メモリ及び読み出し専用メモリに接続しており、前記読み出し専用メモリに記憶されている前記プログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
前記メモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記メモリに書き込む可変長符号デコード部と、
前記メモリに接続しており、復元されるべき画像データの元となる元画像データを前記メモリに書き込むデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記メモリに前記可変長符号デコード部により書き込まれた第２の種類のデータを読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記メモリに前記データロード部により書き込まれた元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力するようにしてあること
を特徴とする画像処理装置。
【請求項１１】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
外部から画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを入力する入力手段と、
前記プロセッサ部及び前記入力手段に接続しており、該入力手段を通じて外部から入力された第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記プロセッサ部へ出力する可変長符号デコード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記可変長符号デコード部から出力された第２の種類のデータを画像データに復元して出力するようにしてあること
を特徴とする画像処理装置。
【請求項１２】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
外部から複数の可変長符号からなる第１の種類のデータを入力する入力手段と、
該入力手段に接続しており、複数の可変長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
該プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、外部から前記入力手段を通じて入力された画像データに復元されるべき第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、第３の種類のデータと前記データロード部から出力された元画像データとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力するようにしてあること
を特徴とする画像処理装置。
【請求項１３】
複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、
複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するための第１のメモリ及び第２のメモリと、
該第１のメモリ及び第２のメモリに接続しており、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、
前記第１のメモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記第１のメモリに書き込む可変長符号デコード部と、
前記第２のメモリに接続しており、復元されるべき画像データの元となる元画像データを前記第２のメモリに書き込むデータロード部と
を備え、
前記プロセッサ部は、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記第１のメモリに前記可変長符号デコード部により書き込まれた第２の種類のデータを読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記第２のメモリに前記データロード部により書き込まれた元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力すると共に、元画像データとして前記データロード部へ出力するようにしてあること
を特徴とする画像処理装置。
【請求項１４】
前記プロセッサ部が、前記複数の演算回路にそれぞれ異なるバスを介して接続されたレジスタを更に備え、
前記命令デコーダによりデコードされた命令の複数の演算指定フィールドそれぞれにより指定される演算のオペランドとして、前記レジスタの異なる部分を指定することが可能であることを特徴とする請求項１乃至４、６、７、１０乃至１３のいずれかに記載の画像処理装置。
【請求項１５】
前記プロセッサ部が、前記複数の演算回路にそれぞれ異なるバスを介して接続されたレジスタを更に備え、
前記命令デコーダによりデコードされた命令の複数の演算指定フィールドそれぞれにより指定される演算のオペランドとして、前記レジスタの異なる部分をそれぞれ指定すること、又は前記レジスタの全体を指定することが可能であることを特徴とする請求項１乃至４、６、７、１０乃至１３のいずれかに記載の画像処理装置。
【請求項１６】
前記第１のプロセッサ部及び第２のプロセッサ部に接続しており、前記プログラムの命令を複数記憶するための第３のメモリを備え、
前記第１のプロセッサ部及び第２のプロセッサ部はそれぞれ、前記第３のメモリから命令を読み出して互いに並列に処理するようにしてあること
を特徴とする請求項８又は９に記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は圧縮された画像データを伸張する画像処理装置に関する。特に、画像データの伸張処理の内の演算を多く含む部分を汎用マイクロプロセッサがソフトウェアで処理し、メモリからのデータ読み出しを多く含む処理を専用回路がハードウェアで処理することにより、汎用マイクロプロセッサと専用回路とが協調動作して効率よく画像データを伸張する画像処理装置に関する。
【０００２】
【従来の技術】
画像データは非常に大きいデータであるため、それを蓄積したり、あるいは通信する際にはディジタルデータに符号化し、更に圧縮して扱う場合が多い。特に、動画像の符号化及び圧縮に関しては従来既に多くの研究がなされており、国際標準化機構によりMPEG(Moving Picture Experts Group)等の標準となる画像データのフォーマットが定められている。
【０００３】
MPEG標準として定められた動画データに代表される圧縮された画像データから元の画像データを再現するためにはデータの伸張処理が必要である。そのような目的で、これまでにHyundai Electronics America 社のHDM8211M, 三菱電機株式会社のM65771FP及びM65770FP等の種々の動画データ伸張処理用LSI の開発がなされてきた。たとえば、HDM8211Mに関しては文献Dave Bursky, "Single Chip Performs Both Audio and Video Decoding," Elecronic Design,  April 3, 1995 に記述されている。
【０００４】
【発明が解決しようとする課題】
しかし、これらの動画データの伸張処理を行なう従来の専用LSI は伸張処理のアルゴリズムに従って多くの演算器を集積した構成を採用しているため、ハードウェアの規模が大きく、価格も高価であった。また、それらはいずれも専用LSI として構成されていて他の用途には使用できないため、画像データの種類に比例した種類のLSI を開発する必要が生じる等、使用目的に柔軟に対応できないという問題があった。
【０００５】
このような問題を解決するために、専用ハードウェアを用いず、汎用マイクロプロセッサにいくつかのMPEG画像データ処理専用の命令を追加することにより、ソフトウェアで画像データの伸張処理を行なう試みもなされている。このような試みに関してはたとえば文献Ruby B. Lee, "Acceleratring Multimedia with Enhanced Microprocessors," IEEE Micro, pp. 22-32, April 1995. に記述されている。しかし、汎用プロセッサの演算性能あるいはメモリアクセス速度に比べて、MPEG標準の画像データの伸張処理の負荷は過大であり、従来のソフトウェア処理では低品質の動画データの伸張処理あるいは非実時間の伸張処理は可能ではあるものの、高品質の動画データの実時間伸張処理は不可能であった。
【０００６】
本発明は上述のような問題点に鑑みてなされたものであり、ソフトウェア処理を行なう汎用マイクロプロセッサとハードウェア処理を行なう周辺回路とを協調動作させることにより、MPEGに代表される画像データの伸張処理を効率的に行なうことが可能であり、且つ製造コストの面でも比較的安価な画像処理装置の提供を目的とする。
【０００７】
【課題を解決するための手段】
本発明に係る画像処理装置は端的には、逆離散型コサイン変換等のような比較的複雑な演算を多く含む部分は並列処理可能な高性能汎用プロセッサを用いてソフトウェアで処理し、フレーム間予測符号化画像の処理のための他フレームデータの読み出し等のような比較的単純な処理内容ではあるがメモリを頻繁にアクセスする処理及び可変長符号化された画素値のデコード処理等のような比較的単純な演算ではあるが並列化が本質的に困難な処理は専用の周辺回路を用いてハードウェアで処理し、ソフトウェア処理を行なう汎用マイクロプロセッサとハードウェア処理を行なう周辺回路とを協調動作させるような構成を採っている。
【０００８】
本発明に係る画像処理装置の第１の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、該プロセッサ部に接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記プロセッサ部へ出力する可変長符号デコード部とを備えている。
【０００９】
この第１の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記可変長符号デコード部から出力された第２の種類のデータを画像データに復元して出力する。
【００１０】
本発明に係る画像処理装置の第２の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、該メモリに接続しており、複数の固定長符号からなるデータを画像データに復元するためのプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、前記メモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記メモリに書き込む可変長符号デコード部とを備えている。
【００１１】
この第２の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記メモリに前記可変長符号デコード部が書き込んだ第２の種類のデータを読み出して画像データに復元して出力する。
【００１２】
本発明に係る画像処理装置の第３の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の可変長符号からなるデータを画像データに復元するためのプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、該プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部とを備えている。
【００１３】
この第３の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、第３の種類のデータと前記データロード部から出力された元画像データとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力する。
【００１４】
本発明に係る画像処理装置の第４の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、該メモリに接続しており、複数の可変長符号からなるデータを画像データに復元するためのプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、前記メモリに接続しており、復元されるべき画像データの元となる元画像データを前記メモリに書き込むデータロード部とを備えている。
【００１５】
この第４の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、前記メモリに前記データロード部が書き込んだ元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力する。
【００１６】
本発明に係る画像処理装置の第５の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、該メモリに接続しており、複数の可変長符号からなるデータを画像データに復元するためのプログラムの複数の命令をデコードする命令デコーダと、該命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、前記メモリに接続しており、復元されるべき画像データの元となる元画像データを半画素単位又は整数画素単位で前記メモリから読み出すデータ読み出し部と、該データ読み出し部に接続しており、半画素単位で処理される場合は前記読み出し部により読み出された元画像データの少なくとも二つの隣接する画素のデータを加算し、整数画素単位で処理される場合は前記読み出し部により読み出された元画像データの画素のデータのビット幅を拡張する加算部と、該加算部に接続しており、前記加算部による加算結果又は前記加算部によりビット幅が拡張されたデータを前記メモリに書き込むデータ書き込み部とを含むデータロード部とを備えている。
【００１７】
この第５の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラム命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、半画素単位で処理される場合は前記メモリに前記データロード部により書き込まれた加算結果のデータを読み出すことにより、整数画素単位で処理される場合は前記メモリに前記データロード部により書き込まれたビット幅が拡張されたデータを読み出すことにより、第３の種類のデータと加算結果のデータ又はビット幅が拡張されたデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力すると共に、元画像データとして前記メモリへ出力する。
【００１８】
本発明に係る画像処理装置の第６の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、該プロセッサ部に接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記プロセッサ部へ出力する可変長符号デコード部と、前記プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部とを備えている。
【００１９】
この第６の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記可変長符号デコード部から出力された第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、第３の種類のデータと前記データロード部から出力された元画像データとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力する。
【００２０】
本発明に係る画像処理装置の第７の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、前記メモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記メモリへ出力する可変長符号デコード部と、前記プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部とを備えている。
【００２１】
この第７の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記メモリに前記可変長符号デコード部により書き込まれた第２の種類のデータを読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記メモリに前記データロード部により書き込まれた元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力する。
【００２２】
本発明に係る画像処理装置の第８の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するための第１のメモリ及び第２のメモリと、前記第１のメモリに接続しており、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令をデコードする第１の命令デコーダと、該第１の命令デコーダからの出力に従って命令を実行する第１の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第１のプロセッサ部と、前記第２のメモリに接続しており、前記プログラムの複数の命令をデコードする第２の命令デコーダと、該第２の命令デコーダからの出力に従って命令を実行する第２の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第２のプロセッサ部と、前記第１のメモリ及び第２のメモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、デコード結果を前記第１のメモリ及び第２のメモリに書き込む可変長符号デコード部と、前記第１のメモリ及び第２のメモリに接続しており、復元されるべき画像データの元となる元画像データを前記第１のメモリ及び第２のメモリに書き込むデータロード部とを備えている。
【００２３】
この第８の発明では、前記第１のプロセッサ部及び第２のプロセッサ部はそれぞれ並列に、前記命令デコーダが前記プログラムの命令をデコードした出力に従って前記第１及び第２の命令実行部にそれぞれ命令を実行させることにより、前記第１のメモリ及び第２のメモリに前記可変長符号デコード部により書き込まれた第２の種類のデータをそれぞれ読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記第１のメモリ及び第２のメモリに前記データロード部により書き込まれた元画像データをそれぞれ読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとしてそれぞれ出力する。
【００２４】
本発明に係る画像処理装置の第９の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するための第１のメモリ及び第２のメモリと、前記第１のメモリに接続しており、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令をデコードする第１の命令デコーダと、該第１の命令デコーダからの出力に従って命令を実行する第１の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第１のプロセッサ部と、前記第２のメモリに接続しており、前記プログラムの複数の命令をデコードする第２の命令デコーダと、該第２の命令デコーダからの出力に従って命令を実行する第２の命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力する第２のプロセッサ部と、前記第１のメモリ及び第２のメモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、デコード結果を前記第１のメモリ及び第２のメモリに書き込む可変長符号デコード部と、前記第１のメモリ及び第２のメモリに接続しており、復元されるべき画像データの元となる元画像データを読み出すデータ読み出し部と、該データ読み出し部に接続しており、前記データ読み出し部により読み出された元画像データの少なくとも二つの隣接する画素のデータを加算する加算部と、該加算部に接続しており、前記加算部による加算結果を前記第１のメモリ及び第２のメモリに書き込むデータ書き込み部とを含むデータロード部とを備えている。
【００２５】
この第９の発明では、前記第１のプロセッサ部及び第２のプロセッサ部はそれぞれ並列に、前記命令デコーダが前記プログラムの命令をデコードした出力に従って前記第１及び第２の命令実行部にそれぞれ命令を実行させることにより、前記第１のメモリ及び第２のメモリに前記可変長符号デコード部により書き込まれた第２の種類のデータをそれぞれ読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記第１のメモリ及び第２のメモリに前記データロード部により書き込まれた加算結果をそれぞれ読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとしてそれぞれ出力する。
【００２６】
本発明に係る画像処理装置の第１０の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するためのメモリと、複数の固定長符号からなるデータを画像データに復元するためのプログラムを記憶するための読み出し専用メモリと、前記メモリ及び読み出し専用メモリに接続しており、前記読み出し専用メモリに記憶されている前記プログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、前記メモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記メモリに書き込む可変長符号デコード部と、前記メモリに接続しており、復元されるべき画像データの元となる元画像データを前記メモリに書き込むデータロード部とを備えている。
【００２７】
この第１０の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記メモリに前記可変長符号デコード部により書き込まれた第２の種類のデータを読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記メモリに前記データロード部により書き込まれた元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力する。
【００２８】
本発明に係る画像処理装置の第１１の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、外部から画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを入力する入力手段と、前記プロセッサ部及び前記入力手段に接続しており、該入力手段を通じて外部から入力された第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記プロセッサ部へ出力する可変長符号デコード部とを備えている。
【００２９】
この第１１の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記可変長符号デコード部から出力された第２の種類のデータを画像データに復元して出力する。
【００３０】
本発明に係る画像処理装置の第１２の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、外部から複数の可変長符号からなる第１の種類のデータを入力する入力手段と、該入力手段に接続しており、複数の可変長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、該プロセッサ部に接続しており、復元されるべき画像データの元となる元画像データを前記プロセッサ部へ出力するデータロード部とを備えている。
【００３１】
この第１２の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、外部から前記入力手段を通じて入力された画像データに復元されるべき第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードし、第２の種類のデータを元画像データとの差分を表わす第３の種類のデータに変換し、第３の種類のデータと前記データロード部から出力された元画像データとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力する。
【００３２】
本発明に係る画像処理装置の第１３の発明は、複数の固定長符号からなるデータに変換され、更に複数の可変長符号からなるデータにエンコードされた画像データを復元する画像処理装置において、複数の固定長符号からなるデータを画像データに復元する際に必要なデータを記憶するための第１のメモリ及び第２のメモリと、該第１のメモリ及び第２のメモリに接続しており、複数の固定長符号からなるデータを画像データに復元するための命令を記述したプログラムの複数の命令の内の実行すべき演算を指定する演算指定フィールドを複数含む命令をデコードする命令デコーダと、該命令デコーダが演算指定フィールドを複数含む命令をデコードした場合に複数の演算指定フィールドにより指定される各演算を並列に実行する複数の演算回路を含むと共に前記命令デコーダからの出力に従って命令を実行する命令実行部とを有し、前記プログラムに記述されている命令に従って所定の演算を行ない、演算結果を出力するプロセッサ部と、前記第１のメモリに接続しており、画像データに復元されるべき複数の可変長符号からなる第１の種類のデータを複数の固定長符号からなる第２の種類のデータにデコードして前記第１のメモリに書き込む可変長符号デコード部と、前記第２のメモリに接続しており、復元されるべき画像データの元となる元画像データを前記第２のメモリに書き込むデータロード部とを備えている。
【００３３】
この第１３の発明では、前記プロセッサ部が、前記命令デコーダが前記プログラムの演算指定フィールドを複数含む命令をデコードした出力に従って前記命令実行部に命令を実行させることにより、前記第１のメモリに前記可変長符号デコード部により書き込まれた第２の種類のデータを読み出して元画像データとの差分を表わす第３の種類のデータに変換し、前記第２のメモリに前記データロード部により書き込まれた元画像データを読み出して前記第３の種類のデータとの間で所定の演算を行ない、該演算により得られたデータを復元された画像データとして出力すると共に、元画像データとして前記データロード部へ出力する。
【００３４】
本発明に係る画像処理装置の第１４の発明は、第１乃至４、６、７、１０乃至１３のいずれかの発明において、前記プロセッサ部が、前記複数の演算回路にそれぞれ異なるバスを介して接続されたレジスタを更に備えている。
【００３５】
この第１４の発明では、第１乃至４、６、７、１０乃至１３のいずれかの発明において、前記命令デコーダによりデコードされた命令の複数の演算指定フィールドそれぞれにより指定される演算のオペランドとして、前記レジスタの異なる部分を指定することが可能である。
【００３６】
本発明に係る画像処理装置の第１５の発明は、第１乃至４、６、７、１０乃至１３のいずれかの発明において、前記プロセッサ部が、前記複数の演算回路にそれぞれ異なるバスを介して接続されたレジスタを更に備えている。
【００３７】
この第１５の発明では、第１乃至４、６、７、１０乃至１３のいずれかの発明において、前記命令デコーダによりデコードされた命令の複数の演算指定フィールドそれぞれにより指定される演算のオペランドとして、前記レジスタの異なる部分をそれぞれ指定すること、又は前記レジスタの全体を指定することが可能である。
【００３８】
本発明に係る画像処理装置の第１６の発明は、第８又は９の発明において、前記第１のプロセッサ部及び第２のプロセッサ部に接続しており、前記プログラムの命令を複数記憶するための第３のメモリを備えている。
【００３９】
この第１６の発明では、第８又は９の発明において、前記第１のプロセッサ部及び第２のプロセッサ部はそれぞれ、前記第３のメモリから命令を読み出して互いに並列に処理する。
【００４６】
【発明の実施の形態】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
【００４７】
〔実施の形態１〕
(1) 「全体構成」
図１に本発明の画像処理装置の実施の形態１の一構成例をメモリに接続したシステムのブロック図を示す。なお、図１において参照符号１で示されている部分が本発明の画像処理装置が構築されているチップであり、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【００４８】
本発明の画像処理装置は、１ブロックが８×８＝64個の画素からなり、１フレームが90×60＝ 5,400個のブロックからなる圧縮された画像データを１秒間に30フレーム伸張処理するMPEG標準のビデオデータと、そのビデオデータに付属するオーディオデータ及びデコードシステムの動作に関するシステムデータの三種類のデータを主として処理する。
【００４９】
本発明の画像処理装置の中心となる演算処理部は第１のプロセッサ部としての第１マイクロプロセッサ10と第２のプロセッサ部としての第２マイクロプロセッサ11とで構成されており、これらの第１マイクロプロセッサ10及び第２マイクロプロセッサ11がマルチプロセッサ手法に従って負荷分散を行なうことにより、高効率で画像データを処理する。
【００５０】
参照符号12は第１のメモリとしての第１高速メモリを、参照符号13は第２のメモリとしての第２高速メモリをそれぞれ示している。第１高速メモリ12はバス24を介して第１マイクロプロセッサ10と、第２高速メモリ13はバス25を介して第２マイクロプロセッサ11とそれぞれ接続しており、各マイクロプロセッサ10, 11のローカルメモリとして動作する。
【００５１】
参照符号14は可変長符号デコード部としての VLC(Variable Length Code:可変長符号) デコーダを示している。この VLCデコーダ14は、前述の64個の画素からなるブロックの可変長符号化された各画像データを64個の固定長画素データを要素とする配列にデコードし、デコード結果を内部バス20を介して高速メモリ12, 13へ出力する。
【００５２】
参照符号15はデータロード部としてのブロックローダを示している。このブロックローダ15は、フレーム間予測技法に従って、差分データを加算する対象となる隣接フレームのブロックを外部メモリ２から読み出して内部バス20を介して高速メモリ12, 13へ出力する。なお、 VLCデコーダ14及びブロックローダ15は高速メモリ12, 13と内部バス20により接続されており、内部バス20のバス権を相互に調停して高速メモリ12, 13にデータを書き込む。なお、内部バス20はアドレスバス (IAバス) とデータバス (IDバス) とにより構成されている。
【００５３】
参照符号16は第１, 第２マイクロプロセッサ10, 11により共通使用される命令キャッシュである。この命令キャッシュ16は、外部メモリ２から外部バス21を介してフェッチした命令をキャッシングし、第１, 第２マイクロプロセッサ10, 11それぞれに命令を供給する。また、命令キャッシュ16は第１, 第２マイクロプロセッサ10, 11に同一の命令を同時に供給することも、いずれか一方のマイクロプロセッサ10または11のみに命令を供給することも可能である。なお、外部バス21は、アドレスバス (EAバス) とデータバス (EDバス) とにより構成されており、、本発明の画像処理装置と外部メモリ２との間を接続している。
【００５４】
参照符号17は画像表示回路であり、伸張処理が終了した画像データを外部バス21を介して外部メモリ２から読み出し、バス28を介して外部へ出力する。参照符号18はシリアル入力回路であり、外部からシリアル信号線27を介して入力された圧縮画像のシリアルデータをパラレルデータに変換し、外部バス21を介して外部メモリ２に書き込む。従って、たとえばシリアル信号線27は外部アンテナあるいはディジタルビデオディスク(DVD) 再生装置の出力ラインと接続されており、バス28は CRTディスプレイ等の画像表示装置と接続されている。
【００５５】
なお、第１, 第２マイクロプロセッサ10, 11、 VLCデコーダ14、ブロックローダ15、命令キャッシュ16、画像表示回路17及びシリアル入力回路18は外部バス21のバス権を調停して外部メモリ２をアクセスする。
【００５６】
参照符号19は外部バス21のアドレスバス (EAバス) と外部メモリ２との間に備えられたDRAMコントローラであり、外部バス21へ出力されたアドレスをDRAMの行アドレスと列アドレスとに変換して外部メモリ２をアクセスするために備えられている。
【００５７】
(2) 「マイクロプロセッサ」
次に、第１, 第２マイクロプロセッサ10, 11について説明するが、両者は同一の構成を有する。本第１の実施の形態では、画像処理プログラムの実行中に第１マイクロプロセッサ10のみが動作する期間と、第２マイクロプロセッサ11のみが動作する期間と、両マイクロプロセッサ10, 11が共に動作する期間とがあるが、両マイクロプロセッサ10, 11の命令、レジスタ構成及びハードウェア機能は基本的に同一であるので、ここでは第１マイクロプロセッサ10についてのみ説明するが、その説明はそのまま第２マイクロプロセッサ11にもあてはまる。
【００５８】
(2.1) 「命令セットとレジスタ」
図２の模式図にマイクロプロセッサ10の命令フォーマットを示す。マイクロプロセッサ10の命令フォーマットには、一つの命令で二つの演算を指示する２演算命令のフォーマット101 と、一つの命令で一つの演算を指示する１演算命令のフォーマット102 とがある。
【００５９】
２演算命令のフォーマット101 には、各１ビットのフィールド103 及びフィールド104 からなるフォーマットフィールドと、二つの演算フィールド106, 107と、各演算フィールド106, 107に一つずつ付属する３ビットの実行条件フィールド105 とが含まれる。また、１演算命令のフォーマット102 には、各１ビットのフィールド103 及びフィールド104 からなるフォーマットフィールドと、フィールド108 及びフィールド109 からなる演算フィールドと、一方の演算フィールド108 のみに付属する３ビットの実行条件フィールド105 とが含まれる。
【００６０】
図３はフォーマットフィールド103 及び104 の内容の詳細を示す模式図である。フォーマットフィールドの値FMが”00”である場合、この命令は２演算命令であり、演算フィールド106 で指示されたoperation ＿0 の演算がデコード直後のクロックサイクルに実行され、演算フィールド107 で指示されたoperation ＿1 の演算がoperation ＿0 の演算に対して１クロックサイクル遅れて実行されることを意味している。
【００６１】
フォーマットフィールドの値FMが”01”である場合、この命令は２演算命令であり、演算フィールド106 で指示されたoperation ＿0 の演算と演算フィールド107 で指示されたoperation ＿1 の演算とがデコード直後のクロックサイクルで並列に実行されることを意味している。
【００６２】
フォーマットフィールドの値FMが”10”である場合、この命令は２演算命令であり、演算フィールド107 で指示されたoperation ＿1 の演算がデコード直後のクロックサイクルに実行され、演算フィールド106 で指示されたoperation ＿0 の演算がoperation ＿1 の演算に対して１クロックサイクル遅れて実行されることを意味している。
【００６３】
フォーマットフィールドの値FMが”11”である場合、この命令は１演算命令であり、108 及び109 からなる演算フィールドで指示された一つの演算がデコード直後のクロックサイクルに実行されることを意味している。
【００６４】
図４は実行条件フィールド105 の内容の詳細を示す模式図である。実行条件フィールド105 は、後述するマイクロプロセッサ10の状態フラグF0及びF1の値に依存して、演算フィールド106, 107でそれぞれ示されたoperation ＿0 の演算及びoperation ＿1 の演算、更には演算フィールド108 及び109 で示された演算が有効であるか無効であるかを定める。ここで、演算が有効であるとは、演算結果がレジスタ, メモリ, フラグに反映され、その演算により定義された動作結果が残ることを意味する。また、演算が無効であるとは、演算結果がレジスタ, メモリ, フラグに反映されず、定められた演算の種類には拘わらずにその演算により無効演算(NOP:no operation)と同様の結果がレジスタあるいはフラグに残ることを意味する。
【００６５】
実行条件フィールド105 の値CCが”000 ”である場合、演算はフラグF0, F1の値に拘わらずに常に有効である。実行条件フィールド105 の値CCが”001 ”である場合、演算はF1の値には拘わらずF0が”10”である場合にのみ有効である。実行条件フィールド105 の値CCが”010 ”である場合、演算はF0が”10”であり且つF1が”10”である場合にのみ有効である。実行条件フィールド105 の値CCが”011 ”である場合、演算はF0が”10”であり且つF1が”11”である場合にのみ有効である。実行条件フィールド105 の値CCが”101 ”である場合、演算はF1の値に拘わらずF0が”11”である場合にのみ有効である。実行条件フィールド105 の値CCが”110 ”である場合、演算はF0が”11”であり且つF1が”10”である場合にのみ有効である。実行条件フィールド105 の値CCが”111 ”である場合、演算はF0が”11”であり且つF1が”11”である場合にのみ有効である。実行条件フィールド105 の値CCが”100 ”である場合の動作は未定義であり、この値が命令で用いられることはない。
【００６６】
図５は28ビットで表現される短型の演算フィールド106, 107と58ビットで表現される長型の演算フィールド（108 及び109 で構成）のビット構成例を示す模式図である。短型の演算フィールドには三種類のフォーマット111, 112, 113 があり、長型の演算フィールドには一種類のフォーマット114 のみがある。
【００６７】
フォーマット111 は演算内容を指定するフィールド115 及び117 と、レジスタ番号または６ビットの即値を指定するフィールド121 と、レジスタの番号を指定する二つのフィールド122, 123とで構成される。このフォーマット111 の演算には、レジスタ間及びレジスタと即値の算術演算, 論理演算, シフト演算, ビット演算、あるいはレジスタ間接アドレッシングのメモリアクセス演算, ジャンプ演算等が含まれる。
【００６８】
フォーマット112 は16ビット長のデータのレジスタ間演算のためのフォーマットであり、演算内容を指定するフィールド116 と、レジスタの番号を指定する三つのフィールド122, 123及び124 と、各レジスタ番号修飾情報118, 120とで構成される。マイクロプロセッサ10は後述するように32ビット長の汎用レジスタを64個備えている (図６参照) 。16ビットデータは各汎用レジスタの上位側または下位側の16ビットに格納される。このため、レジスタ上の16ビット長のオペランド位置を特定するためにレジスタ番号と上位または下位の格納位置を示す１ビット修飾情報とがそれぞれに必要になる。レジスタ番号修飾情報118 及び120 は合計３ビットのフィールドであり、このために使用される。このフォーマット112 は16ビットで表現される画像データを扱う演算において多用される。
【００６９】
フォーマット113 は分岐命令のためのフォーマットであり、演算内容を指定するフィールド115 及び117 と、分岐変位のフィールド125 とで構成される。このフォーマット113 の演算には分岐命令とサブルーチン分岐命令とが含まれる。
【００７０】
フォーマット114 は32ビットの分岐変位または即値を必要とする演算のためのフォーマットであり、演算の内容を指定するフィールド115 と、三つのレジスタの番号を指定するフィールド122, 123及び124 と、分岐変位または即値を指定するフィールド126 とで構成される。このフォーマット114 の演算には複雑な算術演算, 大きな即値を用いる算術演算, 大きなディスプレースメント付きレジスタ間接アドレッシングのメモリアクセス演算, 大きな分岐変位の分岐演算, 絶対番地へのジャンプ演算等が含まれる。
【００７１】
図６はマイクロプロセッサ10のレジスタ構成例を示す模式図である。マイクロプロセッサ10にはR0乃至R63 の64本の32ビット長の汎用レジスタ130 と、６本の32ビット長の制御レジスタ140 と、２本の64ビット長のアキュムレータ136 とが備えられている。制御レジスタ140 には、プロセッサ状態語(PSW)134と、プログラムカウンタ(PC)135 と、その他の各種の専用レジスタとが含まれる。
【００７２】
フォーマット112 の演算では64本の汎用レジスタ130 のそれぞれの上位16ビットと下位16ビットとを別々にアクセス可能である。また、２本のアキュムレータ136 はそれぞれ上位32ビットと下位32ビットとを別々にアクセス可能である。汎用レジスタ(R0)131 はその内容が読み出された場合には常に”０”であり、書き込みは無視される。汎用レジスタ(R63) はスタックポインタ(SPI) であり、 PSW134 のSMフィールドの値に依存してユーザスタックポインタ(SPU)132または割り込みスタックポインタ(SPI)133のいずれかが動作する。
【００７３】
図７は PSW134 の詳細な内容を示す模式図である。 PSW134 の上位16ビットのフィールド142 には、スタックポインタを切り替えるSMフィールド, アドレス変換動作の有無を制御するATフィールド, デバッグ機構の動作を制御するDBフィールド, 外部割り込みの受け付け動作を制御する IMASKフィールドが含まれる。下位16ビットのフィールド143 はフラグフィールドである。フラグフィールド143 には８個のフラグがあり、その内のF0フラグ144 とF1フラグ145 とは演算の有効／無効を制御する。各フラグの値は比較演算あるいは算術演算の結果に依存して変化するほか、フラグ初期化演算で初期化される場合、あるいはフラグ値書き込み演算で任意の値をフラグフィールド143 に書き込むことにより変化する場合がある。また、フラグ値読み出し演算でフラグフィールド143 の値を読み出すことも可能である。
【００７４】
(2.2) 「ハードウェア構成」
本発明の画像処理装置の実施の形態１のマイクロプロセッサ10の全体の構成例を図８のブロック図に示す。
【００７５】
図８において、参照符号163 はマイクロプロセッサ10を外部バス21, 命令キャッシュ16及び高速メモリ12と接続するバスインタフェイス部である。バスインタフェイス部163 はマイクロプロセッサ10内部では、IAバス及びBDバスを介して命令フェッチ部161 と、またOAバス及びBDバスを介してオペランドアクセス部162 とそれぞれ接続している。
【００７６】
命令フェッチ部161 は、命令をバスインタフェイス部163 を介して命令キャッシュ16あるいは外部メモリ２からフェッチし、64ビットのIIバスを経由して命令マッパ150 へ送る。また、オペランドアクセス部162 は、データをバスインタフェイス部163 を介して高速メモリ12または外部メモリ２からフェッチしてメモリアクセス部159 へ送り、あるいはメモリアクセス部159 から送られてきたデータをバスインタフェイス部163 を介して高速メモリ12または外部メモリ２に書き込む。
【００７７】
命令マッパ150 は命令フェッチ部161 から送られてきた64ビットの命令をそれに含まれるフォーマットフィールド103 と104 とに従って演算フィールドに分解し、指定された順序で命令デコーダ170 へ転送する。この際、命令マッパ150 は演算の種類に応じて各演算フィールドを四つのデコーダ151, 152, 153 及び154 の内の対応するデコーダへ再配置して転送する。
【００７８】
命令デコーダ170 は、ジャンプ演算, 分岐演算の演算コードをデコードするデコーダであるPCD 151 と、算術演算, シフト演算等の汎用レジスタにあるオペランドに関する演算の演算コードをデコードするデコーダであるIAD 152 及びIBD 153 と、メモリアクセス演算の演算コードをデコードするデコーダであるMD 154とで構成される。これらのデコーダ151, 152, 153 及び154 によるデコード結果は制御回路155 に与えられる。制御回路155 には PSW134 が含まれており、命令デコーダ170 の各デコーダによるデコード結果と PSW134 の内容とに従って演算部180 を制御する。
【００７９】
演算部180 は命令デコーダ170 の四つのデコーダ151, 152, 153 及び154 に対応してPC部156 と、２部分からなる整数演算部160 と、メモリアクセス部159 との計４ブロックで構成される。
【００８０】
PC部156 には前述のプログラムカウンタ135 あるいは図示されていない加算器が備えられている。PC部156 は、有効なジャンプ演算または分岐演算を含まない命令が実行された場合には、その命令のPC値に”８”を加えることにより次に実行すべき命令の PC 値を計算し、ジャンプ演算あるいは分岐演算が実行された場合には、その命令のPC値に分岐変位を加算するか、または演算で指定されたアドレッシングモードに従う計算を行なうことによりジャンプ先命令のPC値を計算する。
【００８１】
整数演算部160 には前述の７ポートの汎用レジスタ130,制御レジスタ140 及びアキュムレータ136 と、後述するバレルシフタ,ALU及び乗算器が備えられており、整数演算を並列に実行する二つの整数演算機構であるIA部157 とIB部158 とで構成されている。なお、PC部156 と整数演算部160 のIA部157 及びIB部158 とはそれぞれ他と独立に動作するが、必要に応じてＳバス, Ｄバスを経由して相互にデータを送受信する場合もある。
【００８２】
メモリアクセス部159 は整数演算部160 のIA部157 またはIB部158 と協調して動作し、オペランドアクセス部162 との間でデータを送受信する。
【００８３】
なお、演算部180 と命令フェッチ部161 あるいはオペランドアクセス部162 との間はJAバス, AAバス及びDDバスで結合されており、それぞれ演算部180 と命令アドレス, データアドレス及びデータを送受信する。
【００８４】
図９は整数演算部160 の詳細な構成例を示すブロック図であり、整数演算部160 とメモリアクセス部159 との間の接続関係が併せて示されている。整数演算部160 は、レジスタファイル166 と二つの演算部167 及び168 とで構成されている。
【００８５】
レジスタファイル166 には前述の図６に示されている汎用レジスタ130,制御レジスタ140 及びアキュムレータ136 が含まれており、IA部157 とIB部158 とで共有される。また、演算部167 はIA部157 に、演算部168 はIB部158 にそれぞれ含まれる。換言すれば、IA部157 は演算部167 とレジスタファイル166 とで、IB部158 は演算部168 とレジスタファイル166 とでそれぞれ構成されている。
【００８６】
レジスタファイル166 内の汎用レジスタ130 と演算部167 及び168 とはそれぞれ３本のバスで結合されており、独立に二つの演算が実行可能に構成されている。また、汎用レジスタ130 はもう１本のバスでメモリアクセス部159 と結合している。演算部167 にはALU 167A, バレルシフタ167B及び乗算器167Mが、演算部168 にはALU 168A, バレルシフタ168B及び乗算器168Mがそれぞれ備えられている。また、図示されてはいないが、アキュムレータ136 の一つは演算部167 に、もう一つが演算部168 に備えられており、それぞれ乗算器167M, 168Mによる乗算の結果を蓄積加算または蓄積減算して保持する。
【００８７】
(3) 「ブロックローダ」
図10はブロックローダ15の詳細な構成例を示すブロック図である。
【００８８】
図10において、参照符号171 は入力データキューを示している。入力データキュー171 は外部メモリ２から８バイトまたは９バイトのデータを整置された４バイト毎に読み込んでバッファリングし、１バイト毎に出力する。但し、入力データキュー171 が外部メモリ２から１回に読み込むデータの長さはそのデータの先頭番地が４バイト境界に対してどのような位置にあるかに依存する。
【００８９】
参照符号172 はラッチであり、入力データキュー171 から現在出力されているデータの１回前に出力された１バイトのデータを保持する。
【００９０】
参照符号173 はオフセットアドレス格納用のレジスタ(Offset)であり、８×８の画素データをブロック単位に外部メモリ２からロードするために、第ｎ行の画素データの読み込み後に第(n+1) 行の画素データを読み込むために必要なオフセットアドレスを格納する。
【００９１】
参照符号174 は、高速メモリ12または13に画素データを書き込む際のアドレスを保持するためのレジスタ(IAR) であり、４アドレス単位のインクリメント機能を有する。このレジスタ174 が保持するアドレスは内部バス20のIAバスへ出力される。参照符号175 は、外部メモリ２から画素データを読み出す際のアドレスを保持するためのレジスタ(EAR) であり、４アドレス単位のインクリメント機能を有する。このレジスタ175 が保持するアドレスは外部バス21のEAバスへ出力される。
【００９２】
参照符号176 は加算器であり、入力データキュー171 から出力されているデータとラッチ172 に保持されているデータとを加算して出力データキュー177 に書き込むか、またはレジスタ173 と175 との値を加算してレジスタ175 に書き込む動作を行なう。出力データキュー177 は、加算器176 から出力される２個の16ビットデータをバッファリングして４バイト毎に高速メモリ12または13へ出力する。
【００９３】
なお、上述の入力データキュー171,レジスタ173, 174及び175 は外部バス21のEDバスからの入力経路を有する。入力データキュー171,ラッチ172,レジスタ173 及び175 は加算器176 への出力経路を有する。なお、入力データキュー171 はラッチ172 への出力をも有する。更に、加算器176 はレジスタ175 及び出力データキュー177 への出力経路を有する。
【００９４】
ところで、MPEG標準の動画処理では、フレーム間予測のための予測データとして他フレームの整数画素単位のデータを扱う場合と、半画素単位のデータを扱う場合とがある。整数画素単位のデータを扱う場合は、入力データキュー171 から出力されているデータとラッチ172 に保持されているデータとを加算器176 で加算する処理は不必要であり、入力データキュー171 から出力されている８ビットのデータが加算器176 で16ビットにゼロ拡張されて出力データキュー177 に書き込まれる。
【００９５】
一方、半画素単位のデータを扱う場合は、入力データキュー171 から出力されている８ビットの画素値とラッチ172 から出力されている８ビットの画素値とが加算器176 で加算されて隣接２画素値の和として16ビットのデータが出力データキュー177 に書き込まれる。このため、ブロックローダ15内では予測データの１画素が常時16ビットで表現され、出力データキュー177 は予測データが半画素単位のデータであるか、または整数画素単位のデータであるかには拘わらず、常に１画素が16ビットであり且つブロックの各行が８個のデータで構成されるデータを高速メモリ12または13に書き込む。
【００９６】
(4) 「MPEG標準の動画データ処理例」
以下に本発明の画像処理装置による動画データ処理について説明するが、それに先立って、MPEG標準の動画データの処理 (原画像の圧縮符号化処理及びその再生のための伸張処理) の概要について説明する。
【００９７】
(4.1) 「MPEG標準の動画データ処理の概要」
本発明の画像処理装置は動画像を圧縮符号化して得られた符号化データを伸張処理する装置であるが、符号化データは基本的には外部からシリアル信号線27を介して入力される。このような動画データの圧縮符号化手法としては、主として以下の三種類の手法が利用される。第１は画面内相関による圧縮であり、同一フレーム内の各画素間の相関関係が利用される。第２は画面間相関関係による圧縮であり、フレーム間の対応する画素のデータの差分が利用される。フレーム間で対応する画素相互の差分のデータは生のデータに比してバラツキが非常に小さくなる。第３は符号の出現確率の偏りによる圧縮であり、可変長符号(VLC:Variable Length Code)が利用される。これは、第２の手法により得られた差分のデータ（コード）を対象として行なわれ、具体的には出現確率が高いデータのコードに対しては短いビット長のコードを割り当て、出現確率が低いデータのコードに対しては長いビット長のコードを割り当てることにより、データ量を圧縮する。
【００９８】
まず、第１の画面内相関関係を利用する手法について説明する。図11(a) に示されているように、たとえば 352×288 画素で構成される１フレームの原画像をそれぞれが８×８＝64画素のブロックに分割し、その一つを取り出す。なお、64個の画素はａ1 〜ａ64にて示されており、それぞれの画素値はこの時点ではランダムである。そして、この図11(a) に示されている８×８＝64画素のブロックに対して画面内相関関係による圧縮が行なわれる。具体的には、図11(a) に示されている原画像をまずDCT(Discrete Cosine Transform:離散コサイン変換) 変換する。
【００９９】
自然画像は一般的に、ある正方形の領域に対して所謂直交変換処理を行なうと、領域全体が一様な画素値を有する平均的な画像から始まって除々に精細な画像へ順に分解される。このようにして得られた精細さが異なる複数の画像の内、より精細なことを周波数が高いと言う。従って、自然画像は低周波数項 (平均的な画像) から順に高周波数項へと分解された複数の画像を重ね合わせて表現されていることになる。
【０１００】
上述のような直交変換の一種として、MPEG標準では前述のDCT を採用している。このような DCT変換が行なわれた後の画像は、変換前にはランダムに分布していた画素値が変換後には低周波数側の項に大きな値が集中するという特性がある。従って、そのような DCT変換後の画像データから高周波数項を除けばデータを圧縮することが可能である。具体的には、図11(a) に示されている原画像を DCT変換すると図11(b) に示されているような、それぞれの画素の係数ｂ1 〜ｂ64が低周波数項から高周波数項へジグザグ状に配列された画像データが得られる。
【０１０１】
次に、 DCT変換により得られた画像データの個々の画素の係数をある除数Ｄで除算して剰余を丸めることにより量子化して１フレームの画像データそのものが圧縮される。具体的には、図11(b) に示されている DCT変換後の画像データを量子化すると、前述のようにそれぞれの画素の係数ｂ1 〜ｂ64が低周波数項側から高周波数項側へジグザグに配列されているため、ある除数Ｄで除算して剰余を丸めると、図11(c) に示されているように、各画素の商としては低周波数項側のｃ1 〜ｃ5 までのみが得られ、他の画素の商は全て”０”になるような画像データが得られる。この図11(c) に示されている量子化後の画像データの内の値が”０”の画素に関するデータを圧縮することが可能である。
【０１０２】
このようにして圧縮された画像データは、上述と逆の処理を行なうことにより、即ちまず図11(c) に示されている画像データに量子化の際の除数Ｄを乗算することにより、図12(d) に示されているような、各画素の係数ｂ’1 〜ｂ’5 が復元された逆量子化画像データが得られる。次に、この逆量子化画像データを逆DCT 変換すれば、図12(e) に示されているような、各画素値がａ’1 〜ａ’64で表されるほぼ原画像に近い再生画像が得られる。
【０１０３】
次に、画面間相関関係を利用した第２の圧縮手法について説明する。画像が全く別の画像に切り替わる場合は別として、一般的には時系列上で隣接するフレーム間で対応する画素相互の差分のデータは生のデータに比してバラツキが非常に小さくなる。従って、１フレーム前の各画素のデータとの差分のデータを上述の画面内相関関係を利用した圧縮手法に利用すれば、更に圧縮効率が向上する。また更に、そのような差分データを以下に説明する第３の手法である可変長符号を利用して表現すれば、より一層のデータ圧縮が可能になる。
【０１０４】
第３の圧縮手法は符号の出現確率の偏りによる圧縮であり、可変長符号(VLC:Variable Length Code)が利用される。
【０１０５】
MPEG標準では、主として上述の三種類のデータ圧縮手法を利用して動画像圧縮を行なうことにより可変長符号を生成し、この可変長符号を送信したり、あるいは記録媒体に記録する。従って、そのようなデータの再生、換言すれば圧縮符号化データを伸張処理するには上述の処理とは逆の処理、即ち可変長符号化された圧縮符号化データをデコードする可変長符号のデコード (復号) 処理, フレーム間で対応する画素間のデータへの差分の加算, 量子化の際の除数を乗算することによる逆量子化処理, 逆量子化処理により得られたデータの逆DCT 変換等が必要であり、それらの処理を行なうことにより、ほぼ原画像に近い再生画像が得られる。
【０１０６】
(4.2) 「本発明の画像処理装置によるMPEG標準の動画データ処理例」
MPEG標準で扱われる符号化データは大きく分けて、デコーダシステムの動作に関するシステムデータと、ビデオに関するビデオデータと、オーディオに関するオーディオデータとの三種類である。従って、MPEG標準のデータをすべてデコードするデコードシステムではこれら三種類のデータの全てをデコードする必要がある。
【０１０７】
ところで、これらの三種類のデータをデコード処理する場合の負荷を比較するとビデオデータのデコード処理の負荷が非常に大きく、他の二種類のデータのデコード処理の負荷はビデオデータのデコードの負荷に比べると非常に小さい。また、ビデオデータには、８×８画素単位のブロックデータである本来の画像データと、各ブロック単位のデータの修飾情報及び複数のブロックデータで一つのフレームデータを構成するための修飾情報等の付加データとが含まれる。そして、付加データのデコード処理の負荷はブロックデータのデコード処理の負荷に比べると非常に小さい。
【０１０８】
従って、本発明の画像処理装置の実施の形態１では、ブロックデータ以外のデータのデコード処理は第１, 第２マイクロプロセッサ10, 11によりソフトウェア処理のみで対処するように構成されている。なお、８×８画素単位のブロックデータのデコード処理は図13のフローチャートに示されているアルゴリズムに従って第１, 第２マイクロプロセッサ10, 11とその周辺回路とが協調して行なう。以下、図13のフローチャートに示されている処理の流れを詳しく説明する。
【０１０９】
たとえば、外部アンテナにより受信された可変長符号に符号化された入力ブロックデータはシリアル信号線27から本発明の画像処理装置のチップ１にシリアルに入力され、シリアル入力回路18により32ビット単位のパラレルデータに変換され、更に外部バス21を介して外部メモリ２に書き込まれてバッファリングされる (ステップS11)。
【０１１０】
次に、外部メモリ２に書き込まれているデータを VLCデコーダ14が外部バス21を介して読み込み（ステップS12)、１画素が８ビットの固定長データにデコードする（ステップS13)。この VLCデコーダ14によるデコード結果の内の第１マイクロプロセッサ10が処理するブロックのデータは高速メモリ12に、第２マイクロプロセッサ11が処理するブロックのデータは高速メモリ13にそれぞれ書き込まれる。
【０１１１】
このようにして固定長データにデコードされたブロック単位の画素データは第１マイクロプロセッサ10により第１高速メモリ12から、第２マイクロプロセッサ11により第２高速メモリ13からそれぞれ読み出されて両マイクロプロセッサ10, 11においてそれぞれ逆量子化処理 (ステップS14)が並列に行なわれる。ステップS14 での逆量子化処理では各画素データに二つの数が乗算されることにより、インデックス値がジグザグ順に付与されたマトリクスのブロックがｎ行×ｍ列の画素がインデックス値(8n+m)となるような標準的なインデクス順のマトリクスのブロックに変換される。
【０１１２】
逆量子化されたブロック単位の画素データは第１, 第２マイクロプロセッサ10, 11の汎用レジスタ130 内にそれぞれ保持され、次に行なわれるステップS15 での逆DCT 処理の際に使用される。このステップS15 での逆DCT 処理では、第１, 第２マイクロプロセッサ10, 11がそれぞれの担当する８×８画素からなる２次元のブロックが８点の１次元逆DCT 高速アルゴリズムを使用して高速に変換処理される。
【０１１３】
なお、１次元高速逆DCT アルゴリズムについてはたとえば文献C. Loeffler, A. Ligtenberg, and G. Moschytz: "Practical Fast I-DCT Algorithms with 11 Multiplications," Proc. Int'l Conf. on Acoustics, Speech , and Signal Processing 1989 (ICASSP'89), pp. 988-991. に詳細な記述がある。
【０１１４】
次に、逆DCT 処理された画素データに対して予測データとの加算を行なうか否かがブロックの修飾情報に従って決定される（ステップS16)。この判断は、現在処理しているブロックのデータが隣接フレームとの差分データであるか否かに従う。具体的には、現在処理しているブロックのデータが隣接フレームとの差分データである場合には予測データとの加算を行なう必要がある。
【０１１５】
ステップS16 において予測データとの加算を行なうと決定された場合、ブロックローダ15は外部メモリ２から隣接フレームの予測対象ブロックのデータを読み出し (ステップS17)、第１高速メモリ12には第１マイクロプロセッサ10が使用する予測対象ブロックのデータを、第２高速メモリ13には第２マイクロプロセッサ11が使用する予測対象ブロックのデータをそれぞれ書き込む。
【０１１６】
なお、MPEG標準の動画データでは予測データとの加算の必要性はブロックデータ６個毎に付加される修飾情報により示される。このため、ブロックローダ15による予測対象ブロックデータの読み込みは図13に示されている各ブロックデータのデコード処理開始と同時に始めることが可能である。従って、第１, 第２マイクロプロセッサ10, 11によるステップS14 での逆量子化処理とステップS15 での逆DCT 処理とが行なわれている間に、ブロックローダ15によるステップS17 での予測データの読み込み処理が並列に実行可能である。
【０１１７】
次に、第１, 第２マイクロプロセッサ10, 11がそれぞれ第１, 第２高速メモリ12, 13から予測データを読み出し、それぞれの逆DCT 処理後のデータと加算し（ステップS18)、加算結果をデコード済みデータとして外部メモリ２に書き込む（ステップS19)。
【０１１８】
なお、前述のステップS16 の処理において予測データとの加算を行なわないと決定された場合は、上述のステップS19 へ直接処理が進められる。この場合、第１, 第２マイクロプロセッサ10, 11はそれぞれの逆DCT 処理済み画素データをそのままデコード処理済みデータとして、外部メモリ２に書き込む。
【０１１９】
第１, 第２マイクロプロセッサ10, 11による逆量子化処理 (ステップS14), 逆DCT 処理 (ステップS15)及び予測データとの加算処理 (ステップS18)では、両マイクロプロセッサ10, 11が扱うブロックデータは異なるが処理内容は全く同一であるため、両マイクロプロセッサ10, 11が命令キャッシュ16から入力された同一の命令を並列に実行することにより処理可能である。デコード済みデータの外部メモリ２への書き込み処理 (ステップS19)では、両マイクロプロセッサ10, 11が共に外部バス21を介して外部メモリ２へのデータの書き込みを行なうため、両マイクロプロセッサ10, 11は異なる時間に外部メモリ２をアクセスする。
【０１２０】
外部メモリ２に書き込まれたデコード済みデータはフレーム単位で画像表示回路17により読み出され、バス28を介して外部へ出力される (ステップS20)。従って、バス28が画像表示装置の入力ラインに接続されていれば、画像表示装置に動画像が表示される。
【０１２１】
以上のような図13に示されている処理の内、ステップS11 の処理はシリアル入力回路18により行なわれる。ステップS12 及びS13 の処理は VLCデコーダ14により行なわれる。ステップS17 の処理はブロックローダ15により行なわれる。ステップS14, S15, S16, S18及びS19 の処理はマイクロプロセッサ10及び11により行なわれる。ステップS20 の処理は画像出力回路17により行なわれる。
【０１２２】
MPEG標準の動画処理では１フレームあたり、それぞれが64画素で構成される 5,400個ものブロックデータを処理するため、シリアル入力回路18,  VLCデコーダ14, ブロックローダ15, マイクロプロセッサ10及び11の４種類のハードウェアが並列に動作してパイプライン処理の原理に基づいて多数のブロックデータを次々に処理する。また、両マイクロプロセッサ10及び11で行なわれるステップS14, S15, S16, S18及びS19 の処理の間にはそれぞれの処理間のブロックデータの受け渡しが汎用レジスタ130 を介して行なわれ、途中の演算結果をメモリに書き込む必要なしに処理が進められる。
【０１２３】
(5) 「効果」
以上に詳述した実施の形態１においては、本発明の画像処理装置を構成する四つのハードウェア、即ち VLCデコーダ14, ブロックローダ15及び二つのマイクロプロセッサ10, 11が協調動作して動画データを処理するため、高速な画像処理が行なわれる。具体的には、外部メモリ２からのデータの読み出し量が多く、しかも並列処理が困難な可変長符号のデコード処理を VLCデコーダ14が担当してハードウェア処理し、また外部メモリ２からのデータ読み出し量が非常に多い予測データの読み出し処理をブロックローダ15が担当してハードウェア処理し、複雑ではあるが並列演算が可能なデータ変換処理を二つのマイクロプロセッサ10, 11が担当してソフトウェア処理する。
【０１２４】
また、上述の実施の形態１では、図10に示されているように、ブロックローダ15は、加算器176 が備えられていることにより画素データの加算機能を有している。このため、半画素単位の予測データをブロックローダ15が外部メモリ２から読み出す処理を行なう際には、外部メモリ２から読み出された各行が９個の要素からなるブロックデータの隣接要素間の加算を行なって各行が８個の要素からなるブロックデータに変換するので、半画素単位の予測データを処理する場合にも VLCデコーダ14, ブロックローダ15及び二つのマイクロプロセッサ10及び11が高速で効率のよい画像処理を行なうことが可能である。
【０１２５】
また、上述の実施の形態１では、 VLCデコーダ14及びブロックローダ15と二つのマイクロプロセッサ10及び11それぞれとの間には中間処理データをバッファリングする高速メモリ12, 13が備えられている。このため、 VLCデコーダ14とブロックローダ15とが共通の高速メモリ12, 13に二つのマイクロプロセッサ10, 11が将来必要とするそれぞれのデータを事前に書き込んでおくことが可能である。従って、両マイクロプロセッサ10, 11は必要とするデータを必要とする時点で高速メモリ12, 13からそれぞれ高速に読み出すことが可能である。
【０１２６】
また、上述の実施の形態１では、図10に示されているように、ブロックローダ15は、入力データキュー171 から出力されている８ビットのデータが加算器176 で16ビットにゼロ拡張されて出力データキュー177 に書き込まれるという画素データのゼロ拡張機能を有する。従って、整数画素単位の予測データをブロックローダ15が外部メモリ２から読み出す処理を行なう場合には、外部メモリ２から読み出された各要素が８ビットで各行が８個の要素からなるブロックデータの各要素が16ビットにゼロ拡張されることにより16ビットの要素８個に変換されて高速メモリ12及び13に書き込まれる。また、半画素単位の予測データをブロックローダ15が外部メモリ２から読み出す処理を行なう場合には、外部メモリ２から読み出された各要素が８ビットで各行が９個の要素からなるブロックデータの隣接要素間の加算が行なわれて16ビットの要素８個に変換されて高速メモリ12及び13に書き込まれる。このため、両マイクロプロセッサ10, 11は整数画素単位の予測データを処理する場合と半画素単位の予測データを処理する場合とでそれぞれ同一フォーマットのデータを高速メモリ12, 13から読み出して処理することになるため、高速且つ高効率に画像処理を行なうことが可能である。
【０１２７】
また、上述の第１の実施の形態では、両マイクロプロセッサ10, 11が共通の命令キャッシュ16から同一の命令を並列に読み出して画像処理プログラムを実行する。このため、二つのマイクロプロセッサ10, 11が画像処理プログラムの多くの部分でプログラムを共有することが可能であり、二つのマイクロプロセッサ10, 11が独立に命令キャッシュを備える場合に比して命令を保持するためのメモリ容量が小さくなる。
【０１２８】
〔実施の形態２〕
(1) 「全体構成」
図14に本発明の画像処理装置の実施の形態２の一構成例をメモリに接続したシステムのブロック図を示す。なお、図14において参照符号５で示されている部分が本発明の画像処理装置のチップであり、前述の実施の形態１と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１２９】
本実施の形態２の画像処理装置は、前述の図１に示されている実施の形態１の画像処理装置に備えられているマイクロプロセッサ10, 11に代えて、それらの処理速度の２倍の処理速度を有する一つのマイクロプロセッサ30を備え、それに伴って高速メモリも参照符号12にて示されている一つのみを備えている。更に、本実施の形態２では、前述の実施の形態１において二つのプロセッサ10, 11に命令を供給していた命令キャッシュ16をマイクロプロセッサ30専用の命令キャッシュ29に置き換えている。なお、高速メモリ12とマイクロプロセッサ30との間はバス24により接続されている。
【０１３０】
前述の実施の形態１の画像処理装置においては、負荷分散のために二つのマイクロプロセッサ10, 11が備えられていたが、本実施の形態２の画像処理装置に備えられているマイクロプロセッサ30の性能がそれらの少なくとも２倍であればマイクロプロセッサは一つのみで済み、従って実施の形態１の画像処理装置において備えられていた二つの高速メモリ12, 13も一つのみを備えていればよいことになる。
【０１３１】
本発明の画像処理装置の実施の形態２のマイクロプロセッサ30の全体構成を図15のブロック図に示す。なお、マイクロプロセッサ30の命令セット及びレジスタ構成は前述の実施の形態１のマイクロプロセッサ10(11)と同様である。
【０１３２】
本実施の形態２の画像処理装置のマイクロプロセッサ30と前述の実施の形態１の画像処理装置のマイクロプロセッサ10との相違はバスインタフェイス部163 及び命令フェッチ部161 の接続に関する部分のみである。マイクロプロセッサ30の命令フェッチ部161 は、命令のアドレスに従って命令キャッシュ29をアクセスするか、またはバスインタフェイス部163 を介して外部メモリ２をアクセスするかを決定し、命令キャッシュ29または外部メモリ２から命令をフェッチする。このため、マイクロプロセッサ30の命令フェッチ部161 は命令キャッシュ29から命令を直接読み込む経路を有し、バスインタフェイス部163 は命令キャッシュ29から命令を読み込む経路を有していない。
【０１３３】
(2) 「MPEG標準の動画処理例」
本第２の実施の形態の画像処理装置がMPEG標準の動画データを処理する場合、８×８画素単位のブロックデータをデコードする処理以外の処理は前述の実施の形態１の場合と全く同様である。ブロックデータのデコード処理の手順も図13に示されている実施の形態１の手順と基本的に同様である。異なる点は、図13に示されているステップS14, S15, S16, S18及びS19 の各処理を実施の形態１では二つのマイクロプロセッサ10, 11が行なっていた代わりに本実施の形態２では一つのマイクロプロセッサ30が行なう点のみである。
【０１３４】
(3) 「効果」
以上に詳述した実施の形態２においては、本発明の画像処理装置を構成する三つのハードウェア、即ち VLCデコーダ14, ブロックローダ15及びマイクロプロセッサ30が協調動作して動画データを処理するため、高速な画像処理が行なわれる。具体的には、外部メモリ２からのデータ読み出し量が多く、しかも並列処理が困難な可変長符号のデコード処理を VLCデコーダ14が担当してハードウェア処理し、また外部メモリ２からのデータ読み出し量が非常に多い予測データの読み出し処理をブロックローダ15が担当してハードウェア処理し、データ変換処理をマイクロプロセッサ30が担当してソフトウェア処理する。
【０１３５】
また、上述の実施の形態２では、 VLCデコーダ14及びブロックローダ15とマイクロプロセッサ30との間には中間処理データをバッファリングする高速メモリ12が備えられている。このため、 VLCデコーダ14とブロックローダ15とが高速メモリ12にマイクロプロセッサ30が将来必要とするデータを事前に書き込んでおくことが可能である。従って、マイクロプロセッサ30は必要とするデータを必要とする時点で高速メモリ12から高速に読み出すことが可能である。
【０１３６】
なお、本実施の形態２においては、ブロックローダ15の構成は図10に示されている実施の形態１のそれと同様であるので、ブロックローダ15が画素データの加算機能を有していること、及び画素データのゼロ拡張機能を有していることも同様であり、それによる効果も同様であることは言うまでもない。
【０１３７】
〔実施の形態３〕
(1) 「全体構成」
図16に本発明の画像処理装置の実施の形態３の一構成例をメモリに接続したシステムのブロック図を示す。なお、図16において参照符号６で示されている部分が本発明の画像処理装置のチップであり、前述の各実施の形態と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１３８】
本実施の形態３の画像処理装置は、前述の図14に示されている実施の形態２の画像処理装置からブロックローダ15を取り除いた構成を採っている。このため、本実施の形態３の画像処理装置のマイクロプロセッサ30は、予測データを外部メモリ２から直接読み出す必要があり、従って実施の形態２の画像処理装置のマイクロプロセッサ30よりも更に高速に動作する必要があるが、ブロックローダ15が必要とするハードウェア量が削減される。但し、外部メモリ２からの予測データの読み出しはマイクロプロセッサ30がソフトウェアで処理するため、新たな機能をマイクロプロセッサ30に付加する必要なはい。
【０１３９】
(2) 「MPEG標準の動画処理例」
本実施の形態３の画像処理装置がMPEG標準の動画データを処理する場合、８×８画素単位のブロックデータのデコード以外の処理は前述の実施の形態１の場合と全く同様である。ブロックデータのデコード処理の手順も図13に示されている実施の形態１の手順と基本的に同様である。異なる点は、図13に示されているステップS14, S15, S16, S18及びS19 の各処理を二つのマイクロプロセッサ10, 11が行なう代わりに一つのマイクロプロセッサ30が行なう点と、ステップS17 の処理をブロックローダ15がハードウェア処理で行なう代わりにマイクロプロセッサ30がソフトウェア処理で行なう点のみである。
【０１４０】
(3) 「効果」
以上に詳述した実施の形態３においては、本発明の画像処理装置を構成する二つのハードウェア、即ち VLCデコーダ14及びマイクロプロセッサ30が協調動作して動画データを処理するため、高速な画像処理が行なわれる。具体的には、外部メモリ２からのデータ読み出し量が多く、しかも並列処理が困難な可変長符号のデコード処理を VLCデコーダ14が担当してハードウェア処理し、またデータ変換処理と外部メモリ２からの予測データの読み出し処理とをマイクロプロセッサ30が担当してソフトウェア処理する。
【０１４１】
また、上述の実施の形態３では、 VLCデコーダ14とマイクロプロセッサ30との間には中間処理データをバッファリングする高速メモリ12が備えられている。このため、 VLCデコーダ14が高速メモリ12にマイクロプロセッサ30が将来必要とするデータを事前に書き込んでおくことが可能である。従って、マイクロプロセッサ30は必要とするデータを必要とする時点で高速メモリ12から高速に読み出すことが可能である。
【０１４２】
〔実施の形態４〕
(1) 「全体構成」
図17に本発明の画像処理装置の実施の形態４の一構成例をメモリに接続したシステムのブロック図を示す。なお、図17において参照符号７で示されている部分が本発明の画像処理装置のチップであり、前述の各実施の形態と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１４３】
本実施の形態４の画像処理装置は、前述の図14に示されている実施の形態２の画像処理装置から VLCデコーダ14を取り除いた構成を採っている。このため、本実施の形態４の画像処理装置のマイクロプロセッサ30は、外部メモリ２から可変長符号データを直接読み出して１画素が８ビットの固定長データにデコードする必要があり、従って実施の形態２の画像処理装置のマイクロプロセッサ30よりも更に高速に動作する必要があるが、 VLCデコーダ14が必要とするハードウェア量が削減される。但し、可変長符号のデコードはマイクロプロセッサ30がソフトウェアで処理するため、新たな機能をマイクロプロセッサ30に付加する必要なはい。
【０１４４】
(2) 「MPEG標準の動画処理例」
本実施の形態４の画像処理装置がMPEG標準の動画データを処理する場合、８×８画素単位のブロックデータのデコード以外の処理は前述の実施の形態１の場合と全く同様である。ブロックデータのデコード処理の手順も図13に示されている実施の形態１の手順と基本的に同様である。異なる点は、図13に示されているステップS14, S15, S16, S18及びS19 の各処理を二つのマイクロプロセッサ10, 11が行なう代わりに一つのマイクロプロセッサ30が行なう点と、ステップS12 とS13 との両処理を VLCデコーダ14が行なう代わりにマイクロプロセッサ30が行なう点のみである。
【０１４５】
(3) 「効果」
以上に詳述した実施の形態４においては、本発明の画像処理装置を構成する二つのハードウェア、即ちブロックローダ15及びマイクロプロセッサ30が協調動作して動画データを処理するため、高速な画像処理が行なわれる。具体的には、外部メモリ２からのデータ読み出し量が非常に多い予測データの読み出し処理をブロックローダ15が担当してハードウェア処理し、データ変換処理と可変長符号のデコード処理とをマイクロプロセッサ30が担当してソフトウェア処理する。
【０１４６】
また、上述の実施の形態４では、ブロックローダ15とマイクロプロセッサ30との間には中間処理データをバッファリングする高速メモリ12が備えられている。このため、ブロックローダ15が高速メモリ12にマイクロプロセッサ30が将来必要とするデータを事前に書き込んでおくことが可能である。従って、マイクロプロセッサ30は必要とするデータを必要とする時点で高速メモリ12から高速に読み出すことが可能である。
【０１４７】
なお、本実施の形態４においては、ブロックローダ15の構成は図10に示されている実施の形態１のそれと同様であるので、ブロックローダ15が画素データの加算機能を有していること、及び画素データのゼロ拡張機能を有していることも同様であり、それによる効果も同様であることは言うまでもない。
【０１４８】
〔実施の形態５〕
(1) 「全体構成」
図18に本発明の画像処理装置の実施の形態５の一構成例をメモリに接続したシステムのブロック図を示す。なお、図18において参照符号８で示されている部分が本発明の画像処理装置のチップであり、前述の各実施の形態と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１４９】
本実施の形態５の画像処理装置は、前述の図１に示されている実施の形態１の画像処理装置の命令キャッシュ16を命令ROM 31に置き換えた構成を採っている。命令ROM 31には第１, 第２マイクロプロセッサ10, 11が実行するプログラムの内の図13に示されているステップS14, S15, S16, S18及びS19 の各処理に関する部分等のような特に高速処理する必要がある部分が格納されている。命令ROM 31は第１マイクロプロセッサ10または第２マイクロプロセッサ11の内のいずれか一方のみに命令を供給することも、両マイクロプロセッサ10, 11に同一の命令を並列に供給することも可能である。また、両マイクロプロセッサ10, 11は命令ROM 31のほかに外部メモリ２からも命令をフェッチして実行する。
【０１５０】
なお、本発明の画像処理装置の実施の形態５の両マイクロプロセッサ10, 11はバスインタフェイス部163 の外部との接続関係を除いて図８に示されている実施の形態１の場合と同一の構成を有しており、またその命令セット及びレジスタ構成も前述の実施の形態１の場合と同様である。相違点は、命令キャッシュ16が命令ROM 31と置換されたことに伴って、バスインタフェイス部163 が外部バス21, 第１高速メモリ12及び命令ROM 31と接続されていることである。従って、バスインタフェイス部163 は命令のアドレスに従って命令ROM 31をアクセスするか、または外部メモリ２をアクセスするかを決定し、命令ROM 31または外部メモリ２から命令をフェッチする。
【０１５１】
(2) 「MPEG標準の動画処理例」
本実施の形態５の画像処理装置がMPEG標準の動画データを処理する場合、８×８画素単位のブロックデータのデコード以外の処理は前述の実施の形態１の場合と全く同様である。ブロックデータのデコード処理も実施の形態１の手順とほとんど同様である。異なる点は、両マイクロプロセッサ10, 11が命令のアドレスに依存して命令ROM 31または外部メモリ２のいずれかから命令をフェッチする点のみである。図13に示されているステップS14, S15, S16 及びS18 の各処理では、二つのマイクロプロセッサ10, 11が命令ROM 31から供給された同一の命令を並列に実行する。
【０１５２】
(3) 「効果」
本実施の形態５では、二つのマイクロプロセッサ10, 11が共通の命令ROM 31から同一の命令を並列に読み出して画像処理プログラムを実行する。このため、両マイクロプロセッサ10, 11が画像処理プログラムの多くの部分でプログラムを共有でき、それぞれが独立して命令ROM を備える場合に比して命令を保持するメモリ容量を削減することが可能になる。
【０１５３】
〔実施の形態６〕
(1) 「全体構成」
図19に本発明の画像処理装置の実施の形態６の一構成例をメモリに接続したシステムのブロック図を示す。なお、図19において参照符号９で示されている部分が本発明の画像処理装置のチップであり、前述の各実施の形態と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１５４】
本実施の形態６の画像処理装置は、前述の図14に示されている実施の形態２の画像処理装置の命令キャッシュ29を命令ROM 32に置き換えた構成を採っている。命令ROM 32にはマイクロプロセッサ30が実行するプログラムの内の図13に示されているステップS14, S15, S16, S18及びS19 の各処理に関する部分等のような特に高速処理する必要がある部分が記憶されている。マイクロプロセッサ30は命令ROM 32または外部メモリ２から命令をフェッチして実行する。
【０１５５】
なお、本発明の画像処理装置の実施の形態６のマイクロプロセッサ30は命令フェッチ部161 の接続関係を除いて図15に示されている実施の形態２の場合と同一の構成を有しており、またその命令セット及びレジスタ構成も前述の実施の形態２の場合と同様である。相違点は、命令キャッシュ16が命令ROM 32と置換されたことに伴って、命令フェッチ部161 が命令キャッシュ29ではなくて命令ROM 32と接続されている点である。従って、命令フェッチ部161 は、命令のアドレスに従って命令ROM 32をアクセスするか、またはバスインタフェイス部163 を介して外部メモリ２をアクセスするかを決定し、命令ROM 32または外部メモリ２から命令をフェッチする。
【０１５６】
(2) 「MPEG標準の動画処理例」
本実施の形態６の画像処理装置がMPEG標準の動画データを処理する場合、８×８画素単位のブロックデータのデコード以外の処理は前述の実施の形態１の場合と全く同様である。ブロックデータのデコード処理の手順も図13に示されている実施の形態１の手順と基本的に同様である。異なる点は、図13に示されているステップS14, S15, S16, S18及びS19 の各処理を二つのマイクロプロセッサ10, 11が行なう代わりに一つのマイクロプロセッサ30が行なう点と、命令をそのアドレスに依存して命令ROM 32または外部メモリ２からフェッチする点のみである。
【０１５７】
(3) 「効果」
本実施の形態６では、マイクロプロセッサ30が特に高速処理する必要がある命令を、命令キャッシュよりも単位面積当たりの記憶容量が大きくしかも命令キャッシュとアクセス速度が同等の命令ROM 32から読み出して画像処理プログラムを実行するので、命令キャッシュを用いる場合に比べてチップ上での専有面積が小さな画像処理装置を実現できる。
【０１５８】
〔実施の形態７〕
(1) 「全体構成」
図20に本発明の画像処理装置の実施の形態７の一構成例をメモリに接続したシステムのブロック図を示す。なお、図20において参照符号35で示されている部分が本発明の画像処理装置のチップであり、前述の各実施の形態と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１５９】
本実施の形態７の画像処理装置は、前述の図19に示されている実施の形態６の画像処理装置にメモリ33を追加すると共に、その出力信号を VLCデコーダ14に入力するためのバス34を備えた構成を採っている。具体的には、メモリ33はシリアル入力回路18の出力信号である可変長符号のデータを入力してバッファリングし、このメモリ33にバッファリングされたデータを VLCデコーダ14がバス34を介して読み出すように構成されている。即ち、シリアル入力回路18から画像処理装置のチップ35内へ入力された可変長符号の信号を外部メモリ２にバッファリングする代わりにメモリ33にバッファリングするように構成されている。
【０１６０】
(2) 「MPEG標準の動画処理例」
本実施の形態７の画像処理装置がMPEG標準の動画データを処理する場合の動作は前述の実施の形態６の手順とほとんど同様である。異なる点は、図13に示されているステップS11 に相当する処理で可変長符号が外部メモリ２の代わりにメモリ33に書き込まれ、ステップS12 に相当する処理で可変長符号が外部メモリ２の代わりにメモリ33から読み出される点のみである。
【０１６１】
(3) 「効果」
本実施の形態７では、可変長符号をバッファリングする専用のメモリ33を備えたため、シリアル入力回路18及び VLCデコーダ14が外部メモリ２をアクセスする必要がなくなり、外部バス21を介した外部メモリ２のアクセス権制御が実施の形態６の場合に比してより単純になる。
【０１６２】
〔実施の形態８〕
(1) 「全体構成」
図21に本発明の画像処理装置の実施の形態８の一構成例をメモリに接続したシステムのブロック図を示す。なお、図21において参照符号36で示されている部分が本発明の画像処理装置のチップであり、前述の各実施の形態と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１６３】
本実施の形態８の画像処理装置36は、前述の図17に示されている VLCデコーダ14が備えられていない構成の実施の形態４の画像処理装置に上述の実施の形態７と同様のメモリ33及びバス34を追加した構成を採っている。但し、本実施の形態８では VLCデコーダ14が備えられていないため、バス34はメモリ33とマイクロプロセッサ30とを直接接続している。具体的には、メモリ33はシリアル入力回路18の出力信号である可変長符号のデータを入力してバッファリングし、このメモリ33にバッファリングされたデータをマイクロプロセッサ30がバス34を介して直接読み出すように構成されている。
【０１６４】
(2) 「MPEG標準の動画処理例」
本実施の形態８の画像処理装置36がMPEG標準の動画データを処理する場合の動作は前述の実施の形態４の手順とほとんど同様である。異なる点は、図13に示されているステップS11 に相当する処理で可変長符号が外部メモリ２の代わりにメモリ33に書き込まれ、ステップS12 に相当する処理で可変長符号が外部メモリ２の代わりにメモリ33から読み出される点のみである。
【０１６５】
(3) 「効果」
本実施の形態８では、可変長符号をバッファリングする専用のメモリ33を設けたため、シリアル入力回路18が外部メモリ２をアクセスする必要がなく、外部バス21を介した外部メモリ２のアクセス権制御を実施の形態４の場合よりも単純にできる。
【０１６６】
〔実施の形態９〕
(1) 「全体構成」
図22に本発明の画像処理装置の実施の形態９の一構成例をメモリに接続したシステムのブロック図を示す。なお、図22において参照符号40で示されている部分が本発明の画像処理装置のチップであり、前述の各実施の形態と同様に、複数のDRAMチップで構成される外部メモリ２にデータバス３及びアドレスバス４等を介して接続されている。
【０１６７】
本実施の形態９の画像処理装置は、前述の図19に示されている実施の形態６の画像処理装置に備えられている高速メモリ12に加えて更に VLCデコーダ14専用の高速メモリ37を追加した構成を採っている。なお、高速メモリ37と VLCデコーダ14との間はバス39にて、マイクロプロセッサ30との間はバス38にてそれぞれ接続されている。従って、 VLCデコーダ14とブロックローダ15とがそれぞれ独立の高速メモリ37と12とを介してデータをマイクロプロセッサ30へ転送することが可能になっている。具体的には、 VLCデコーダ14は外部メモリ２からフェッチした可変長符号を１画素が８ビットの固定長データにデコードしてバス39を介して高速メモリ37に書き込むように構成されている。一方、マイクロプロセッサ30はバス38を介して高速メモリ37からこの固定長データを読み出す。また、ブロックローダ15は外部メモリ２から読み出した予測データを内部バス20を介して高速メモリ12に書き込む。マイクロプロセッサ30はバス24を介してこの予測データをメモリ12から読み出す。
【０１６８】
(2) 「MPEG標準の動画処理例」
本実施の形態９の画像処理装置40がMPEG標準の動画データを処理する場合の動作は前述の実施の形態６の手順とほとんど同様である。異なる点は、図13に示されているステップS13 とS17 とに相当する処理の結果がそれぞれ独立した高速メモリ37及び12に書き込まれることと、ステップS14 とS18 とに相当する処理でそれぞれ独立する高速メモリ37及び12からデータが読み出される点のみである。
【０１６９】
(3) 「効果」
本実施の形態９では、 VLCデコーダ14とブロックローダ15とがそれそれ独立した高速メモリ37と12とを介してデータをマイクロプロセッサ30へ転送するため、実施の形態６の画像処理装置で必要であった内部バス20のアクセス権制御を考慮することなしに、高速メモリ37及び12へのデータの書き込みが行なえると共に、高速メモリ12, 37への書き込み制御が単純になる。
【０１７０】
〔他の実施の形態〕
上述の実施の形態１〜９ではいずれも、高速メモリ12あるいは13を介して VLCデコーダ14あるいはブロックローダ15からマイクロプロセッサ10, 11あるいは30にデータを受け渡すように構成されているが、マイクロプロセッサがレジスタ上にデータをプリフェッチする機能を有している場合には高速メモリ12, 13が備えられていなくとも同様に動画データの処理が可能である。
【０１７１】
また、上述の実施の形態１, ２, ４〜９ではいずれも、ブロックローダ15が整数画素単位の予測データを扱う場合に外部メモリ２から読み出した８ビットの画素値を16ビットの画素値にゼロ拡張して高速メモリ12あるいは13に書き込む構成を採っているが、整数画素単位の予測データを扱う場合には、外部メモリ２から読み出した８ビットの画素値を８ビットの画素値のまま高速メモリ12あるいは13へ書き込むように構成することも勿論可能である。
【０１７２】
また、上述の実施の形態１, ２, ４〜９ではいずれも、ブロックローダ15がブロックデータのロード時に同一行内の隣接画素値のみを加算するように構成されているが、ブロックローダ15に１行分の画素データの全てを保持するレジスタを設けて隣接行間の画素値を加算する機能を付加すすることにより、ブロックデータのロードに際して隣接行間の画素値を加算したり、あるいは縦横隣接４点の画素値を加算するようにしてもよい。
【０１７３】
また、上述の実施の形態５〜７, ９ではいずれも、マイクロプロセッサ10, 11あるいは30が命令を命令ROM 31, 32あるいは外部メモリ２からフェッチして実行するように構成されているが、命令ROM 31, 32に画像処理に必要な全てのプログラムを格納させた場合には、マイクロプロセッサ10, 11あるいは30が外部メモリ２から命令をフェッチする必要はない。
【０１７４】
また、上述の実施の形態１〜６ではいずれも、シリアル信号線27から可変長符号化データが入力され、処理済みデータをバス28を介して外部の画像表示装置へ出力するように構成されているが、予め外部メモリ２に格納されている可変長符号化データを処理して処理済みデータを再度外部メモリ２に書き戻す場合は、それぞれの実施の形態においてシリアル入力回路18及び画像表示回路17が備えられていなくてもよい。
【０１７５】
また、DRAMコントローラが外部メモリ２に含まれている場合、あるいは外部メモリ２がDRAM以外のメモリで構成される場合には、各実施の形態の画像処理装置にDRAMコントローラ19が備えられている必要はない。
【０１７６】
【発明の効果】
以上に詳述した如く本発明の画像処理装置の各実施の形態によれば、必要な処理の内の可変長符号のデコード及びフレーム間予測データの読み出し等のような、大容量のメモリからのデータの読み出し量は多いが演算内容は比較的単純な処理を VLCデコーダ及び／又はブロックローダ等の専用の回路がハードウェア処理し、逆離散型コサイン変換等のような複雑な演算を多く含む処理をマイクロプロセッサがソフトウェア処理する。
【０１７７】
換言すれば、本発明の画像処理装置の各実施の形態によれば、専用ハードウェアとマイクロプロセッサとが協調してパイプライン的に画像データを処理するため、全体のハードウェア規模を抑制することが可能になり、比較的低速な大容量メモリを用いても処理速度を高速化することが可能になり、従って安価で高性能な画像処理装置が実現される。
【０１７８】
また、本発明の画像処理装置の各実施の形態では、複雑な演算処理をマイクロプロセッサでソフトウェア処理しているため、MPEG標準に限定されることなく、他の画像処理方式にも適用可能であり、それぞれの方式に対応してソフトウェアを変更することにより柔軟に対応することが可能になる。
【図面の簡単な説明】
【図１】  本発明の画像処理装置の実施の形態１の一構成例をメモリに接続したシステムのブロック図である。
【図２】  本発明の画像処理装置のマイクロプロセッサの命令フォーマットを示す模式図である。
【図３】  本発明の画像処理装置のマイクロプロセッサの命令のフォーマットフィールドの内容の詳細を示す模式図である。
【図４】  本発明の画像処理装置のマイクロプロセッサの命令の実行条件フィールドの内容の詳細を示す模式図である。
【図５】  本発明の画像処理装置のマイクロプロセッサの演算フィールドのビット構成例を示す模式図である。
【図６】  本発明の画像処理装置のマイクロプロセッサのレジスタ構成例を示す模式図である。
【図７】  本発明の画像処理装置のマイクロプロセッサのプロセッサ状態語の内容を示す模式図である。
【図８】  本発明の画像処理装置の実施の形態１のマイクロプロセッサの全体の構成例を示すブロック図である。
【図９】  本発明の画像処理装置の実施の形態１のマイクロプロセッサの整数演算部の構成例を示すブロック図である。
【図１０】  本発明の画像処理装置の実施の形態１のマイクロプロセッサのブロックローダの構成例を示すブロック図である。
【図１１】  動画像の圧縮符号化処理の概略を説明するための模式図である。
【図１２】  圧縮符号化された動画像データの伸張処理の概略を説明するための模式図である。
【図１３】  本発明の画像処理装置の実施の形態１のマイクロプロセッサがMPEG標準の画像データを処理する場合のアルゴリズムの一部であるブロックデータによる処理手順を示すフローチャートである。
【図１４】  本発明の画像処理装置の実施の形態２の一構成例をメモリに接続したシステムのブロック図である。
【図１５】  本発明の画像処理装置の実施の形態２のマイクロプロセッサの全体の構成例を示すブロック図である。
【図１６】  本発明の画像処理装置の実施の形態３の一構成例をメモリに接続したシステムのブロック図である。
【図１７】  本発明の画像処理装置の実施の形態４の一構成例をメモリに接続したシステムのブロック図である。
【図１８】  本発明の画像処理装置の実施の形態５の一構成例をメモリに接続したシステムのブロック図である。
【図１９】  本発明の画像処理装置の実施の形態６の一構成例をメモリに接続したシステムのブロック図である。
【図２０】  本発明の画像処理装置の実施の形態７の一構成例をメモリに接続したシステムのブロック図である。
【図２１】  本発明の画像処理装置の実施の形態８の一構成例をメモリに接続したシステムのブロック図である。
【図２２】  本発明の画像処理装置の実施の形態９の一構成例をメモリに接続したシステムのブロック図である。
【符号の説明】
２  外部メモリ、10  第１マイクロプロセッサ、11  第２マイクロプロセッサ、12  第１高速メモリ、13  第２高速メモリ、14  VLC(可変長符号) デコーダ、15  ブロックローダ、16  命令キャッシュ、17  画像比較回路、18  シリアル入力回路、33  メモリ、170 命令デコーダ、166 レジスタファイル、167 演算部、168 演算部、160 整数演算部。
【図１】
0003729540.tif 000002
【図２】
0003729540.tif 000003
【図３】
0003729540.tif 000004
【図４】
0003729540.tif 000005
【図５】
0003729540.tif 000006
【図６】
0003729540.tif 000007
【図７】
0003729540.tif 000008
【図８】
0003729540.tif 000009
【図９】
0003729540.tif 000010
【図１０】
0003729540.tif 000011
【図１１】
0003729540.tif 000012
【図１２】
0003729540.tif 000013
【図１３】
0003729540.tif 000014
【図１４】
0003729540.tif 000015
【図１５】
0003729540.tif 000016
【図１６】
0003729540.tif 000017
【図１７】
0003729540.tif 000018
【図１８】
0003729540.tif 000019
【図１９】
0003729540.tif 000020
【図２０】
0003729540.tif 000021
【図２１】
0003729540.tif 000022
【図２２】
0003729540.tif 000023