(57)【要約】【課題】  圧縮符号化された信号を高速に再生する場合、復号処理部を単純に複数持つ構成では、回路規模が増加する。【解決手段】  算術演算を施した後、可変長符号化処理を行った信号を高速化するとき、逐次処理が必要な可変長復号処理過程では、所望の処理単位に分割し、複数の処理単位を複数の可変長復号処理部で同時に復号処理する。そして、次の逆演算処理を行う算術演算過程では、処理単位毎に時分割に処理する。このとき、算術演算部は、演算回路の並列化を行うことで処理性能を確保する。以上より、回路規模の増加を抑えつつ、高速に復号化処理する信号処理装置を提供する。【選択図】  図１
2005260639.tif 000002
【特許請求の範囲】
【請求項１】
所定の規格によって符号化された信号（符号化信号）を処理する装置であって、
前記符号化信号は、複数のブロックデータと、当該ブロックデータに関するブロック情報を格納するヘッダとを含み、
前記装置は、
ヘッダ情報取得部と、プレパーサー部と、複数の可変長復号部と、算術演算部を備え、
前記ヘッダ情報取得部は、
前記符号化信号のヘッダに格納されたブロック情報を取得し、
前記プレパーサー部は、
前記ヘッダ情報取得部によって取得されたブロック情報を参照して、前記複数のブロックデータの各々に前記複数の可変長復号部のうちいずれか１つを対応付け、
前記複数の可変長復号部の各々は、
前記プレパーサー部によって対応付けられたブロックデータに対して可変長復号化を行うことによって復号データを生成し、
前記算術演算部は、
前記複数の可変長復号部を１つずつ順番に選択し、選択した可変長復号部によって生成された復号データに対して逆算術演算を行うことによって再生データを生成する
ことを特徴とする信号処理装置
【請求項２】
請求項１において、
前記複数のブロックデータの各々は、
当該ブロックデータの終端を示す終端符号が付加されており、
前記プレパーサー部は、
前記ブロックデータの中から終端符号を検出する終端符号検出部と、
前記ヘッダ情報取得部によって取得されたブロック情報に基づき、前記複数のブロックの各々に前記複数の可変長復号部のうちいずれか１つを対応付けるブロック制御部と、
前記終端符号検出部によって終端符号が検出されると、前記ブロック制御部による前記複数のブロックと前記複数の可変長復号部との対応付けに従って、当該終端符号が検出されたブロックデータに前記複数の可変長復号部のうちいずれか１つを対応付ける選択部とを含む
ことを特徴とする信号処理装置。
【請求項３】
請求項１において、
前記算術演算部は、
前記複数の可変長復号部を１つずつ順番に選択し、選択した可変長復号部によって生成された復号データに対して逆直交変換を行うことによって空間データを生成する周波数変換部と、
前記周波数変換部によって生成された空間データに対して動き補償を行うことによって再生データを生成する動き補償部とを含む
ことを特徴とする信号処理装置。
【請求項４】
請求項１において、
前記算術演算部の動作速度は、前記可変長復号部の動作速度よりも速い
ことを特徴とする信号処理装置。
【請求項５】
請求項１において、
前記所定の規格によって符号化された信号は、ＭＰＥＧストリームである
ことを特徴とする信号処理装置。
【請求項６】
所定の規格によって符号化された信号（符号化信号）を処理する方法であって、
前記符号化信号は、複数のブロックデータと、当該ブロックデータに関するブロック情報を格納するヘッダとを含み、
前記方法は、
ヘッダ情報取得ステップと、プレパーサーステップと、複数の可変長復号ステップと、算術演算ステップを備え、
前記ヘッダ情報取得ステップは、
前記符号化信号のヘッダに格納されたブロック情報を取得し、
前記プレパーサーステップは、
前記ヘッダ情報取得ステップによって取得されたブロック情報を参照して、前記複数のブロックデータの各々に前記複数の可変長復号ステップのうちいずれか１つを対応付け、
前記複数の可変長復号ステップの各々は、
前記プレパーサーステップによって対応付けられたブロックデータに対して可変長復号化を行うことによって復号データを生成し、
前記算術演算ステップは、
前記複数の可変長復号ステップを１つずつ順番に選択し、選択した可変長復号ステップによって生成された復号データに対して逆算術演算を行うことによって再生データを生成する
ことを特徴とする信号処理方法
【請求項７】
請求項６において、
前記複数のブロックデータの各々は、
当該ブロックデータの終端を示す終端符号が付加されており、
前記プレパーサーステップは、
前記ブロックデータの中から終端符号を検出する終端符号検出ステップと、
前記ヘッダ情報取得ステップによって取得されたブロック情報に基づき、前記複数のブロックの各々に前記複数の可変長復号ステップのうちいずれか１つを対応付けるブロック制御ステップと、
前記終端符号検出ステップによって終端符号が検出されると、前記ブロック制御ステップによる前記複数のブロックと前記複数の可変長復号ステップとの対応付けに従って、当該終端符号が検出されたブロックデータに前記複数の可変長復号ステップのうちいずれか１つを対応付ける選択ステップとを含む
ことを特徴とする信号処理方法。
【請求項８】
請求項６において、
前記算術演算ステップは、
前記複数の可変長復号ステップを１つずつ順番に選択し、選択した可変長復号ステップによって生成された復号データに対して逆直交変換を行うことによって空間データを生成する周波数変換ステップと、
前記周波数変換ステップによって生成された空間データに対して動き補償を行うことによって再生データを生成する動き補償ステップとを含む
ことを特徴とする信号処理方法。
【請求項９】
請求項６において、
前記算術演算ステップの動作速度は、前記可変長復号ステップの動作速度よりも速い
ことを特徴とする信号処理方法。
【請求項１０】
請求項６において、
前記所定の規格によって符号化された信号は、ＭＰＥＧストリームである
ことを特徴とする信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された信号を復号化する信号処理方法および信号処理装置に関する。
【背景技術】
【０００２】
動画像の圧縮符号化には、ＭＰＥＧ圧縮符号化方式が広く用いられており、ＭＰＥＧでは、離散コサイン変換を用いて、周波数空間に変換した後、可変長符号化を施している。近年、HDTVのデジタル放送化が進んでおり、テレビの商品仕様の拡張に伴い、ＭＰＥＧデコーダが扱うデータ量(処理量)も増加傾向にある。このため、要求仕様に応じて、リアルタイムに入力信号を再生するために、動作周波数を上げずに、デコード処理を高速化するための方法が提案されている。
【０００３】
図１８に、高速化を実現するために提案されている従来の信号処理装置の一例を示す。
【０００４】
従来の信号処理装置は、入力信号を所定単位に分割し、複数の信号を出力するプレパーサー部９０１と、プレパーサー部９０１の出力する信号を入力とし、入力信号中の所定の位置に記録されたヘッダ情報を解析するヘッダ解析部９０２ａ，９０２ｂと、複数ある可変長符号化テーブルから一致する符号を検出し、可変長符号化テーブルに一致するシンボルを復号データとして出力する可変長復号部９０３ａ，９０３ｂと、可変長復号部９０３ａ，９０３ｂの各々より出力される復号データを算術処理して、差分データを出力する二算術演算部９０４ａ，９０４ｂと、算術演算部９０４ａ，９０４ｂの各々より出力される差分データを格納するフレームメモリ９０５から構成される。
【０００５】
また、図１９に示すように、算術演算部９０４ａ，９０４ｂの各々は、入力信号が符号化の過程で行われた周波数変換を元に戻す逆変換（逆周波数変換）を行う周波数変換部９０４０と、入力信号が符号化の過程で行われた動き予測を再生する（動き補償を行う）動き補償部９０４１から構成される。
【０００６】
以上述べたように、従来の信号処理装置は、入力信号をスライス単位に分割してスライス単位に同時にデコード処理するため、同じ機能を持つデコード処理系統を複数持つ構成である。このように、複数のデコード処理系を持つことで、高速に入力信号を復号化処理することができる。
【０００７】
例えば、１本のMP@HL (１９２０×１０８０)を１フレーム時間に１フレームデコード処理する性能を持つデコーダで、２本のMP＠HLのストリームをデコード処理させる場合を考える。このとき、デコーダに要求される処理性能は、１フレームデコード時間に、２フレームをデコード処理することである。従来技術のデコーダを用いると、スライスデコーダを２並列持てば、２倍速の性能を確保することができ、１フレームデコード時間に、２フレームをデコード処理することが可能である。
【特許文献１】特開平１０-１７８６４４公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような方法で、２倍速の信号処理装置を検討すると、回路規模が２倍になる。さらに、３倍速を検討すると、回路規模が３倍になる。つまり、性能が向上すると共に、回路規模も同様に大きくなる。
【０００９】
また、このような方法を用いずデコード処理系統を１つしか持たない場合では、２倍速，３倍速の性能を得るためには装置全体の動作周波数を上げなければならない。
【００１０】
本発明は、このような点に鑑み、回路規模の増加を抑え、高速に入力信号の復号化処理を行う信号処理装置を提案する。
【課題を解決するための手段】
【００１１】
この発明の１つの局面に従うと、信号処理装置は、所定の規格によって符号化された信号を処理する。符号化信号は、複数のブロックデータと、ヘッダとを含む。ヘッダは、そのブロックデータに関するブロック情報を格納する。信号処理装置は、ヘッダ情報取得部と、プレパーサー部と、複数の可変長復号部と、算術演算部を備える。ヘッダ情報取得部は、符号化信号の中からヘッダに格納されたブロック情報を取得する。プレパーサー部は、ヘッダ情報取得部によって取得されたブロック情報を参照して、複数のブロックデータの各々に複数の可変長復号部のうちいずれか１つを対応付ける。複数の可変長復号部の各々は、プレパーサー部によって対応付けられたブロックデータに対して可変長復号化を行うことによって復号データを生成する。算術演算部は、複数の可変長復号部を１つずつ順番に選択し、選択した可変長復号部によって生成された復号データに対して逆算術演算を行うことによって再生データを生成する。
【００１２】
上記信号処理装置では、複数の可変長復号部によってブロック単位の復号化信号を並列に処理するので、符号化信号の復号化を高速に行うことができる。また、算術演算部の動作速度を上げると、複数の可変長復号部の各々によって生成された復号データに対する算術演算を高速に行うことができる。よって、算術演算部が１つしかなくとも、算術演算部の動作速度のみを上げれば高速の処理性能を得ることができる。このように、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、装置全体の動作周波数を上げずに算術演算部の動作周波数のみを上げれば高速の処理性能を得ることができる。
【００１３】
好ましくは、上記複数のブロックデータの各々は、当該ブロックデータの終端を示す終端符号が付加されている。上記プレパーサー部は、終端符号検出部と、ブロック制御部と、選択部とを含む。終端符号検出部は、上記ブロックデータの中から終端符号を検出する。ブロック制御部は、上記ヘッダ情報取得部によって取得されたブロック情報に基づき、上記複数のブロックの各々に上記複数の可変長復号部のうちいずれか１つを対応付ける。選択部は、終端符号検出部によって終端符号が検出されると、上記ブロック制御部による上記複数のブロックと上記複数の可変長復号部との対応付けに従って、当該終端符号が検出されたブロックデータに上記複数の可変長復号部のうちいずれか１つを対応付ける。
【００１４】
上記信号処理装置では、終端符号が検出される毎にその終端符号が付加されたブロックデータに対して可変長符号部が対応付けられる。このように、複数の可変長復号部の各々にブロックデータを対応付けることができる。
【００１５】
好ましくは、上記算術演算部は、周波数変換部と、動き補償部とを含む。周波数変換部は、上記複数の可変長復号部を１つずつ順番に選択し、選択した可変長復号部によって生成された復号データに対して逆直交変換を行うことによって空間データを生成する。動き補償部は、周波数変換部によって生成された空間データに対して動き補償を行うことによって再生データを生成する。
【００１６】
上記信号処理装置では、周波数演算部は、単純に入力されたデータに対して演算を行うだけなので、比較的動作速度を上げやすい。また、フレームメモリにアクセスできるのは１つだけなので、動き補償部が１つしか存在しなくとも、動き補償部が複数存在する場合と同様の性能を得ることができる。このように、周波数変換部および動き補償部が１つしかなくとも、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、装置全体の動作周波数を上げずに算術演算部の動作周波数のみを上げれば高速の処理性能を得ることができる。
【００１７】
好ましくは、上記算術演算部の動作速度は、上記可変長復号部の動作速度よりも速い。
【００１８】
好ましくは、上記所定の規格によって符号化された信号は、ＭＰＥＧストリームである。
【００１９】
この発明のもう１つの局面に従うと、信号処理方法は、所定の規格によって符号化された信号を処理する。符号化信号は、複数のブロックデータと、ヘッダとを含む。ヘッダは、そのブロックデータに関するブロック情報を格納する。信号処理方法は、ヘッダ情報取得ステップと、プレパーサーステップと、複数の可変長復号ステップと、算術演算ステップを備える。ヘッダ情報取得ステップは、符号化信号の中からヘッダに格納されたブロック情報を取得する。プレパーサーステップは、ヘッダ情報取得ステップによって取得されたブロック情報を参照して、複数のブロックデータの各々に複数の可変長復号ステップのうちいずれか１つを対応付ける。複数の可変長復号ステップの各々は、プレパーサーステップによって対応付けられたブロックデータに対して可変長復号化を行うことによって復号データを生成する。算術演算ステップは、複数の可変長復号ステップを１つずつ順番に選択し、選択した可変長復号ステップによって生成された復号データに対して逆算術演算を行うことによって再生データを生成する。
【００２０】
上記信号処理方法では、複数の可変長復号ステップによってブロック単位の復号化信号を並列に処理するので、符号化信号の復号化を高速に行うことができる。また、算術演算ステップの動作速度を上げると、複数の可変長復号ステップの各々によって生成された復号データに対する算術演算を高速に行うことができる。よって、算術演算ステップが１つしかなくとも、算術演算ステップの動作速度のみを上げれば高速の処理性能を得ることができる。このように、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、方法全体の動作周波数を上げずに算術演算ステップの動作周波数のみを上げれば高速の処理性能を得ることができる。
【００２１】
好ましくは、上記複数のブロックデータの各々は、当該ブロックデータの終端を示す終端符号が付加されている。上記プレパーサーステップは、終端符号検出ステップと、ブロック制御ステップと、選択ステップとを含む。終端符号検出ステップは、上記ブロックデータの中から終端符号を検出する。ブロック制御ステップは、上記ヘッダ情報取得ステップによって取得されたブロック情報に基づき、上記複数のブロックの各々に上記複数の可変長復号ステップのうちいずれか１つを対応付ける。選択ステップは、終端符号検出ステップによって終端符号が検出されると、上記ブロック制御ステップによる上記複数のブロックと上記複数の可変長復号ステップとの対応付けに従って、当該終端符号が検出されたブロックデータに上記複数の可変長復号ステップのうちいずれか１つを対応付ける。
【００２２】
上記信号処理方法では、終端符号が検出される毎にその終端符号が付加されたブロックデータに対して可変長符号ステップが対応付けられる。このように、複数の可変長復号ステップの各々にブロックデータを対応付けることができる。
【００２３】
好ましくは、上記算術演算ステップは、周波数変換ステップと、動き補償ステップとを含む。周波数変換ステップは、上記複数の可変長復号ステップを１つずつ順番に選択し、選択した可変長復号ステップによって生成された復号データに対して逆直交変換を行うことによって空間データを生成する。動き補償ステップは、周波数変換ステップによって生成された空間データに対して動き補償を行うことによって再生データを生成する。
【００２４】
上記信号処理方法では、周波数演算ステップは、単純に入力されたデータに対して演算を行うだけなので、比較的動作速度を上げやすい。また、フレームメモリにアクセスできるのは１つだけなので、動き補償ステップが１つしか存在しなくとも、動き補償ステップが複数存在する場合と同様の性能を得ることができる。このように、周波数変換ステップおよび動き補償ステップが１つしかなくとも、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、方法全体の動作周波数を上げずに算術演算ステップの動作周波数のみを上げれば高速の処理性能を得ることができる。
【００２５】
好ましくは、上記算術演算ステップの動作速度は、上記可変長復号ステップの動作速度よりも速い。
【００２６】
好ましくは、上記所定の規格によって符号化された信号は、ＭＰＥＧストリームである。
【発明の効果】
【００２７】
以上のように、複数の可変長復号部によってブロック単位の復号化信号を並列に処理するので、符号化信号の復号化を高速に行うことができる。また、算術演算部の動作速度を上げると、複数の可変長復号部の各々によって生成された復号データに対する算術演算を高速に行うことができる。よって、算術演算部が１つしかなくとも、算術演算部の動作速度のみを上げれば高速の処理性能を得ることができる。このように、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、装置全体の動作周波数を上げずに算術演算部の動作周波数のみを上げれば高速の処理性能を得ることができる。
【発明を実施するための最良の形態】
【００２８】
以下、この発明の実施の形態を図面を参照して詳しく説明する。なお、図中同一または相当部分には同一の符号を付しその説明は繰り返さない。
【００２９】
（第１の実施形態）
〈全体構成〉
この発明の第１の実施形態による信号処理装置の全体構成を図１に示す。この装置は、ヘッダ解析部１０１と、プレパーサー部１０２と、可変長復号部１０３ａ，１０３ｂと、算術演算部１０４と、フレームメモリ１０５とを備える。ヘッダ解析部１０１は、入力信号中の所定の位置に記録されたヘッダ情報を解析することによって動き補償に使用する情報SignalA，ブロックに関する情報SignalB，および逆離散コサイン変換に関する情報SignalCを取得する。プレパーサー部１０２は、ヘッダ情報解析部１０１からの情報SignalBを参照して、ヘッダ情報解析部１０１からの入力信号を所定の単位毎に可変長復号部１０３ａ，１０３ｂへ出力する。可変長復号部１０３ａ，１０３ｂの各々は、複数ある可変長符号化テーブルからプレパーサー部１０２から出力された入力信号と一致する符号を検出し、その可変長符号化テーブルに一致するシンボルをそれぞれ復号データＤ１０３Ａ，Ｄ１０３Ｂとして出力する（可変長復号化を行う）。算術演算部１０４は、ヘッダ情報解析部１０１からの情報SignalA，SignalCを参照して、可変長復号部１０３ａから出力された復号データＤ１０３Ａおよび可変長復号部１０３ｂから出力された復号データＤ１０３Ｂを時分割に算術処理して差分データを生成する。フレームメモリ１０５は、算術演算部１０４によって生成された差分データを格納する。
【００３０】
〈入力信号〉
ここで、図３および図４を用いて、入力信号について説明する。入力信号は、ＭＰＥＧ２圧縮されたビットストリームであり、図３のように、シーケンス，ＧＯＰ，ピクチャ，スライス，マクロブロック，およびブロックからなる階層構造になっている。ここでは、本実施形態の説明に必要なブロックおよびマクロブロックについての説明のみ行う。
【００３１】
《マクロブロック》
マクロブロックは、動き予測の処理単位であり、１６×１６画素のデータサイズを有する。マクロブロックは、このマクロブロックの輝度データを示す４つのブロック（輝度ブロックＹ０，Ｙ１，Ｙ２，Ｙ３）と、このマクロブロックの色差データを示す２つのブロック（色差ブロックＣｂ，Ｃｒ）と、マクロブロックヘッダとを含む。輝度ブロックＹ０，Ｙ１，Ｙ２，Ｙ３および色差ブロックＣｂ，Ｃｒは、ストリームにおいて、Ｙ０，Ｙ１，Ｙ２，Ｙ３，Ｃｂ，Ｃｒの順で記録されている。マクロブロックヘッダには、ＣＢＰ (Coded Block Pattern),量子化ステップ値，および動きベクトルなど、マクロブロック毎に規定される情報が記録されている。ＣＢＰは、マクロブロックに含まれるブロックのうち特定のブロックに有効なデータが存在しないことを示す情報である。動きベクトルは、動き予測を行った際に取得されるマクロブロックの動き情報であり、動き補償に使用される情報である。
【００３２】
《ブロック》
最下位層のブロックには、図４のように、マクロブロック（１６×１６画素の区画）中の８×８画素の区画の輝度成分を示す輝度ブロックＹ０，Ｙ１，Ｙ２，Ｙ３と、マクロブロック（１６×１６画素の区画）の色差成分を示す色差ブロックＣｂ，Ｃｒとがある。これらのブロックは、ＤＣＴ処理された後にランレングス符号化されたものである。また、各々のブロックの終わりは、ＥＯＢ (end of block)コードが付加されている。
【００３３】
〈プレパーサー部の内部構成〉
図１に示したプレサーバー部の内部構成を図５に示す。プレパーサー部１０２は、ＥＯＢサーチ部１０２０と、ブロック情報出力部１０２３と、ブロック制御部１０２２と、スイッチ１０２１とを含む。ＥＯＢサーチ部１０２０とブロック制御部１０２２とは、ＥＯＢ信号によって通信しながら動作する。さらに、ブロック情報出力部１０２３とブロック制御部１０２２とは、ＧＥＴ＿ＤＡＴＡ信号によって通信しながら動作する。ＥＯＢサーチ部１０２０は、ヘッダ情報解析部１０１より出力されたマクロブロックヘッダ以降のランレングス符号化されたブロックデータを入力し、ブロックの終了を示すＥＯＢコードを検出するとＥＯＢ信号をブロック制御部１０２２へ出力する。ブロック制御部１０２２は、ＥＯＢサーチ部によってＥＯＢ信号が入力されると、ＧＥＴ＿ＤＡＴＡ信号をブロック情報出力部１０２３に出力する。ブロック情報出力部１０２３は、ヘッダ解析部１０１で処理されるマクロブロックヘッダに含まれるＣＢＰに基づき、可変長復号部１０３ａ，１０３ｂのうちいずれか一方を示すブロック選択情報を生成する。また、ブロック情報出力部１０２３は、ブロック制御部１０２２によってＧＥＴ＿ＤＡＴＡ信号が入力されるとブロック選択情報を出力する。また、ブロック制御部１０２２は、ブロック情報出力部１０２３より出力されたブロック選択情報に基づき、ＥＯＢサーチ部から出力されるブロックデータを可変長復号部１０３ａおよび可変長復号部１０３ｂのうちいずれに入力するために、スイッチ１０２１を切り替える。
【００３４】
〈算術演算部の内部構成〉
図１に示した算術演算部１０４の内部構成を図２に示す。算術演算部１０４は、ブロックバッファ１０Ａ，１１Ａ，１０Ｂ，１１Ｂと、周波数変換部１０４０と、マクロブロックバッファ１２ＭＡ，１２ＭＢと、動き補償部１０４１とを含む。ブロックバッファ１０Ａ，１１Ａの各々は、ブロック１つ分のデータサイズを有し、可変長復号部１０３ａから出力された復号データＤ１０３Ａを格納する。ブロックバッファ１０Ｂ，１１Ｂの各々は、ブロック１つ分のデータサイズを有し、可変長復号部１０３ｂから出力された復号データＤ１０３Ｂを格納する。周波数変換部１０４０は、ブロックバッファ１０Ａ，１１Ａ，１０Ｂ，１１Ｂの各々に格納された復号データＤ１０３ＡおよびＤ１０３Ｂに対してヘッダ情報解析部１０１によって取得された情報SignalCを用いて逆離散コサイン変換を行うことによって差分データを生成する。マクロブロックバッファ１２ＭＡ，１２ＭＢの各々は、マクロブロック２つ分のデータサイズを有し、周波数変換部１０４０によって生成された差分データを格納する。動き補償部１０４１は、マクロブロックバッファ１２ＭＡ，１２ＭＢの各々に格納された差分データに対してフレームメモリからの予測データを用いて動き予測を行い再生データを生成する。
【００３５】
また、本実施形態において、周波数変換部１０４０および動き補償部１０４１は、可変長復号部１０３ａ，ｂの処理速度の倍の処理性能を持つものとする。
【００３６】
〈動作〉
次に、図１に示した信号処理装置による動作について図６を参照しつつ説明する。
【００３７】
〔ステップＳＴ１０１〕
ヘッダ情報解析部１０１は、ＭＰＥＧ２圧縮されたビットストリーム（マクロブロックヘッダおよびブロックデータを含む信号）を先頭から順に入力する。
【００３８】
〔ステップＳＴ１０２〕
次に、ヘッダ情報解析部１０１は、入力したデータがマクロブロックヘッダであるか否かを判断する。マクロブロックヘッダである場合にはステップＳＴ１０３へ進む。そうでない場合にはステップＳＴ１０４へ進む。
【００３９】
〔ステップＳＴ１０３〕
次に、ヘッダ情報解析部１０１は、入力したマクロブロックヘッダを解析し、マクロブロックヘッダに格納された動き補償に使用する情報SignalA，ブロックに関する情報SignalB，および逆離散コサイン変換に関する情報SignalCを取得する。例えば、情報SignalAは動きベクトルおよび符号化モードなどであり、情報SignalBはＣＢＰなどであり、情報SignalCは量子化ステップ値である。また、ヘッダ情報解析部１０１は、情報SignalA，SignalCを算術演算部１０４に出力するとともに情報SignalBをプレパーサー部１０２に出力する。次に、ステップＳＴ１０１へ進む。
【００４０】
〔ステップＳＴ１０４〕
一方、ステップＳＴ１０２において入力したデータがマクロブロックヘッダでないと判断した場合（ブロックデータであると判断した場合）、ヘッダ情報解析部１０１は、入力信号（ブロックデータ）をプレパーサー部１０２に出力する。
【００４１】
〔ステップＳＴ１０５〕
次に、プレパーサー部１０２は、ヘッダ情報解析部１０１から出力された情報SignalBを参照して可変長復号部１０３ａ，１０３ｂのうちいずれか一方を選択し、ヘッダ情報解析部１０１から出力されたブロックデータを選択した可変長復号部に出力する。
【００４２】
〔ステップＳＴ１０６〕
次に、可変長復号部１０３ａは、プレパーサー部１０２から出力されたブロックデータを可変長復号化することによって復号データＤ１０３Ａを生成する。一方、可変長復号部１０３ｂは、プレパーサー部１０２から出力されたブロックデータを可変長復号化することによって復号データＤ１０３Ｂを生成する。
【００４３】
〔ステップＳＴ１０７〕
次に、可変長復号部１０３ａは、生成した復号データＤ１０３Ａを算術演算部１０４のブロックバッファ１０Ａ，１１Ａのうちいずれか一方に格納する。このとき、可変長復号部１０３ａは、ブロックバッファ１０Ａ，１１Ａ……の順に格納していく。一方、可変長復号部１０３ｂは、生成した復号データＤ１０３Ｂを算術演算部１０４のブロックバッファ１０Ｂ，１１Ｂのうちいずれか一方に格納する。このとき、可変長復号部１０３ｂは、ブロックバッファ１０Ｂ，１１Ｂ……の順に格納していく。
【００４４】
〔ステップＳＴ１０８〕
次に、算術演算部１０４の周波数変換部１０４０は、ブロックバッファ１０Ａ，１１Ａ，Ｂ，１１Ｂのうちいずれか１つを選択し、選択したブロックバッファに格納されている復号データ（復号データＤ１０３ＡまたはＢ）に対して逆離散コサイン変換を行うことによって差分データを生成する。このとき、周波数変換部１０４０は、ブロックバッファ１０Ａ、１０Ｂ、１１Ａ、１１Ｂ、１０Ａ、１０Ｂ……の順でデータを処理していく。
【００４５】
〔ステップＳＴ１０９〕
次に、周波数変換部１０４０は、生成した差分データをマクロブロックバッファ１２ＭＡ，１２ＭＢのうちいずれか一方に格納する。このとき、周波数変換部１０４０は、マクロブロックバッファ１２ＭＡ，１２ＭＢ，１２ＭＡ，１２ＭＢ……の順で格納していく。
【００４６】
〔ステップＳＴ１１０〕
次に、動き補償部１０４１は、マクロブロックバッファ１２ＭＡ，１２ＭＢのうち少なくとも一方にマクロブロック１つ分の差分データが格納されているか否かを判断する。マクロブロック１つ分の差分データが格納されていると判断するとステップＳＴ１１１に進む。
【００４７】
〔ステップＳＴ１１１〕
次に、動き補償部１０４１は、マクロブロックバッファ１２ＭＡ，１２ＭＢのうちいずれか一方を選択し、選択したバッファに格納されている差分データに対してフレームメモリ１０５に格納されている画像データの中から取得した予測データを用いて動き補償を行う。このとき、動き補償部１０４１は、マクロブロックバッファ１２ＭＡ，１２ＭＢ，１２ＭＡ，１２ＭＢ……の順で処理していく。次に、動き補償部１０４１は、動き補償によって生成された再生データをフレームメモリ１０５に格納する。
【００４８】
〔ステップＳＴ１１２〕
次に、処理すべきデータが残っている場合にはステップＳＴ１０１へ進む。そうでな場合には処理を終了する。
【００４９】
＜プレパーサー部の動作＞
次に、プレパーサー部１０２による動作（ステップＳＴ１０４）について図７を用いて詳しく説明する。
【００５０】
〔ステップＳＴ２０１〕
まず、ＥＯＢサーチ部１０２０は、ヘッダ情報解析部１０１から出力された入力信号よりＥＯＢコードを検出するまで、ヘッダ情報解析部１０１から出力される入力信号を順次格納していく。
【００５１】
〔ステップＳＴ２０２〕
一方、ブロック情報出力部１０２３は、ヘッダ情報解析部１０１から出力された情報SignalB（ＣＢＰ）を参照して、可変長復号部１０３ａ，１０３ｂのうちいずれか一方を示すブロック選択情報を生成する。
【００５２】
〔ステップＳＴ２０３〕
次に、ブロック制御部１０２２は、ＥＯＢサーチ部によってＥＯＢコードが検出されると、ブロック情報出力部１０２３からブロック選択情報を取得する。
【００５３】
〔ステップＳＴ２０４〕
次に、ブロック制御部１０２２は、ブロック情報出力部１０２３から取得したブロック選択情報に従って、スイッチ１０２１に対して可変長復号部１０３ａ，１０３ｂのうちどちらを選択するのかを指示する。
【００５４】
〔ステップＳＴ２０５〕
次に、スイッチ１０２１は、ブロック制御部１０２２からの指示に従って、可変長復号部１０３ａ，１０３ｂのうちいずれか一方を選択し、ＥＯＢサーチ部１０２０に格納されているブロックデータを選択した可変長復号部へ出力する。
【００５５】
《ＥＯＢサーチ部１０２０による動作》
次に、ＥＯＢサーチ部１０２０による動作（ステップＳＴ２０１）について図８を参照しつつ詳しく説明する。
【００５６】
〔ステップＳＴ３０１〕
まず、ＥＯＢサーチ部１０２０は、自己からブロック制御部へＥＯＢ信号を出力しているか否かを判断する。ＥＯＢ信号の出力値が「０」になるとステップＳＴ３０２へ進む。
【００５７】
〔ステップＳＴ３０２〕
次に、ＥＯＢサーチ部１０２０は、ヘッダ情報解析部より出力された入力信号（ブロックデータ）を格納する。
【００５８】
〔ステップＳＴ３０３〕
次に、ＥＯＢサーチ部１０２０は、そのブロックデータに含まれるＥＯＢコードを検出すると、ブロック制御部１０２２へのＥＯＢ信号の出力値を「１」にする。次に、ステップＳＴ３０１へ進む。
【００５９】
《ブロック情報出力部による動作》
次に、ブロック情報出力部１０２３による動作（ステップＳＴ２０２）について図９を参照しつつ詳しく説明する。
【００６０】
〔ステップＳＴ４０１〕
ブロック情報出力部１０２３は、ヘッダ情報解析部１０１より出力された情報SignalB（ＣＢＰ）を入力する。
【００６１】
〔ステップＳＴ４０２〕
次に、ブロック情報出力部１０２３は、入力した情報SignalB（ＣＢＰ）を参照して、マクロブロックに含まれるブロックデータのうち有効なデータを含むブロックデータの総数Ｋを算出する。
【００６２】
〔ステップＳＴ４０３〕
次に、ブロック情報出力部１０２３は、ブロック選択情報を生成するために、ブロックＩＤを「０」に設定する。ブロックＩＤは、１つのマクロブロックにおいて、先頭から何番目のブロックであるかを示す番号である。例えば、ブロックＩＤが「２」であるならば、そのブロックＩＤは先頭から２番目のブロックを示す。
【００６３】
〔ステップＳＴ４０４〕
次に、ブロック情報出力部１０２３は、入力したＣＢＰを参照し、ブロックＩＤが示すブロックデータが有効なデータを含んでいるか否かを判断する。例えば、先頭から２番目のブロックには有効なデータが含まれていないとＣＢＰに示されているとする。このとき、ブロックＩＤが「２」であるならば、ブロック情報出力部１０２３は、そのブロックＩＤに対応するブロックデータが有効なデータを含んでいないと判断する。ブロックＩＤが示すブロックデータが有効なデータを含んでいる場合にはステップＳＴ４０５へ進む。そうでない場合にはステップＳＴ４１１へ進む。
【００６４】
〔ステップＳＴ４０５〕
次に、ブロック情報出力部１０２３は、ブロックＩＤが偶数であるか否かを判断する。偶数である場合にはステップＳＴ４０６ヘ進む。奇数である場合にはステップＳＴ４１３へ進む。
【００６５】
〔ステップＳＴ４０６〕
次に、ブロック情報出力部１０２３は、可変長復号部１０３ａを示すブロック選択情報（ＳＷ１）を生成する。
【００６６】
〔ステップＳＴ４０７〕
次に、ブロック情報出力部１０２３は、ブロック制御部１０２２から出力されるＧＥＴ＿ＤＡＴＡ信号の出力値が「１」であるか否かを判断する。ＧＥＴ＿ＤＡＴＡ信号の出力値が「１」になるとステップＳＴ４０８へ進む。
【００６７】
〔ステップＳＴ４０８〕
次に、ブロック情報出力部１０２３は、生成したブロック選択情報をブロック制御部１０２２に書き込む。
【００６８】
〔ステップＳＴ４０９〕
次に、ブロック情報出力部１０２３は、ブロック制御部１０２２へのブロック選択情報の書き込みが完了したか否かを判断する。ブロック選択情報の書き込みが終了するとステップＳＴ４１０へ進む。そうでない場合にはステップＳＴ４０８へ進む。
【００６９】
〔ステップＳＴ４１０〕
次に、ブロック情報出力部１０２３は、ブロック制御部１０２２から出力されているＧＥＴ＿ＤＡＴＡ信号の出力値を「０」にする。
【００７０】
〔ステップＳＴ４１１〕
次に、ブロック情報出力部１０２３は、ブロックＩＤに１を加算する。また、ブロック情報出力部１０２３は、有効ブロックの総数Ｋより１を減算する。
【００７１】
〔ステップＳＴ４１２〕
次に、ブロック情報出力部１０２３は、有効ブロックの総数Ｋが「０」であるか否かを判断する。有効ブロックの総数Ｋが「０」であると判断するとステップ４０１へ進む。そうでない場合にはステップＳＴ４０４へ進む。
【００７２】
〔ステップＳＴ４１３〕
一方、ステップＳＴ４０５においてブロックＩＤが奇数であると判断した場合、ブロック情報出力部１０２３は、可変長復号部１０３ｂを示すブロック選択情報（ＳＷ２）を生成する。次に、ステップＳＴ４０７へ進む。
【００７３】
《ブロック制御部による動作》
次に、ブロック制御部１０２２による動作（ステップＳＴ２０３，ＳＴ２０４）について図１０を参照しつつ詳しく説明する。
【００７４】
〔ステップ５０１〕
まず、ブロック制御部１０２２は、ＥＯＢサーチ部１０２０より出力されるＥＯＢ信号の出力値が「１」であるか否かを判断する。ＥＯＢ信号の出力値が「１」になると、ステップＳＴ５０２へ進む。
【００７５】
〔ステップＳＴ５０２〕
次に、ブロック制御部１０２２は、ブロック情報出力部１０２３に出力するＧＥＴ＿ＤＡＴＡ信号の出力値を「１」にする。ＧＥＴ＿ＤＡＴＡ信号の出力値が「１」になると、ブロック情報出力部１０２３によって生成されたブロック選択情報がブロック制御部１０２２に書き込まれる。
【００７６】
〔ステップＳＴ５０３〕
次に、ブロック制御部１０２２は、自己がブロック情報出力部１０２３に出力するＧＥＴ＿ＤＡＴＡ信号の出力値が「０」であるか否かを判断する。ＧＥＴ＿ＤＡＴＡ信号の出力値が「０」になると、ステップＳＴ５０４へ進む。
【００７７】
〔ステップＳＴ５０４〕
次に、ブロック制御部１０２２は、ブロック情報出力部１０２３によって書き込まれたブロック選択情報を読み出す。
【００７８】
〔ステップＳＴ５０５〕
次に、ブロック制御部１０２２は、読み出したブロック選択情報が「ＳＷ１」を示すか否かを判断する。読み出したブロック選択情報が「ＳＷ１」を示す場合にはステップＳＴ５０６へ進む。読み出したブロック選択情報が「ＳＷ２」を示す場合にはステップＳＴ５０８へ進む。
【００７９】
〔ステップＳＴ５０６〕
次に、ブロック制御部１０２２は、スイッチ１０２１に対して可変長復号部１０３ａを選択するように指示する。
【００８０】
〔ステップＳＴ５０７〕
次に、ブロック制御部１０２２は、ＥＯＢサーチ部１０２０から出力されているＥＯＢ信号の出力値を「０」にする。次に、ステップＳＴ５０１へ進む。
【００８１】
〔ステップＳＴ５０８〕
一方、ステップＳＴ５０４において読み出したブロック選択情報が「奇数」を示す場合、ブロック制御部１０２２は、スイッチ１０２１に対して可変長復号部１０３ｂを選択するように指示する。次に、ステップＳＴ５０７へ進む。
【００８２】
〈データフロー〉
図１１に、算術演算部１０４におけるデータフローを示す。
【００８３】
まず、マクロブロックデータ１つに含まれるブロックデータのうちブロックＩＤが偶数であるブロックデータＹ０，Ｙ２，Ｃｂが先頭から順番に可変長復号部１０３ａから出力される。一方、マクロブロックデータ１つに含まれるブロックデータのうちブロックＩＤが奇数であるブロックデータＹ１，Ｙ３，Ｃｒが先頭から順番に可変長復号部１０３ｂから出力される。
【００８４】
ここで、可変長復号部１０３ａからブロックバッファ１０Ａへのブロックデータの出力が完了すると、周波数演算部１０４０は、ブロックバッファ１０Ａに格納されたブロックデータＹ０に対して逆離散コサイン変換を行うことによって差分データＹ０を生成し、生成した差分データＹ０をマクロブロックバッファ１２ＭＡに出力する。これと並行して、ブロックバッファ１０Ｂは、可変長復号部１０３ｂからのブロックデータＹ１を格納する。
【００８５】
次に、ブロックデータＹ０に対する逆離散コサイン変換が完了すると、周波数変換部１０４０は、ブロックバッファ１０Ｂに格納されたブロックデータＹ１に対して逆離散コサイン変換を行う。
【００８６】
このようにして、周波数変換部１０４０は、ブロックデータＹ０，Ｙ１，Ｙ２，Ｙ３，Ｃｂ、Ｃｒの順番に逆離散コサイン変換を行う。
【００８７】
マクロブロックバッファ１２ＭＡにマクロブロック１つ分の輝度データ（差分データＹ０，Ｙ１，Ｙ２，Ｙ３）が格納されると、動き補償部１０４１は、マクロブロックバッファ１２ＭＡに格納されたマクロブロック１つ分の輝度データに対して動き補償を行う。また、マクロブロックバッファ１２ＭＡにマクロブロック１つ分の色差データ（差分データＣｂ，Ｃｒ）が格納されると、動き補償部１０４１は、マクロブロックバッファ１２ＭＡに格納されたマクロブロック１つ分の色差データに対して動き補償を行う。
【００８８】
このようにして、動き補償部１０４１は、マクロブロックデータ１つ分の輝度データおよび色差データに対して動き補償を行う。
【００８９】
図２に示すように、周波数変換部１０４０は、可変長復号部１０３ａ，１０３ｂとの間に、ブロックバッファ１０Ａ，１１Ａ，１０Ｂ，１１Ｂを持っているため、周波数変換部１０４０の処理の遅延により、可変長復号部１０３ａ，１０３ｂを遅延させることはない。
【００９０】
また、周波数変換部１０４０は、動き補償部１０４１との間に、マクロブロックバッファ１２ＭＡ，１２ＭＢを持っているため、動き補償部１０４１の処理の遅延により、影響を受けることはない。
【００９１】
〈効果〉
以上のように、本実施形態による信号処理装置は、複数の可変長復号部によってブロック単位の復号化信号を並列に処理するので、符号化信号の復号化を高速に行うことができる。また、周波数演算部および動き補償部を１つずつ用いそれらの動作周波数を高くすることによって、複数の可変長復号部の各々によって生成された復号データに対する算術演算を高速に行うことができる。ここで、周波数演算部は、単純に入力されたデータに対して演算を行うだけなので、比較的動作周波数を上げやすい。また、動き補償部が複数存在してもフレームメモリにアクセスできるのは１つだけなので、動き補償部が１つしか存在しなくとも動き補償部が複数存在する場合と同様の性能を得ることができる。このように、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、装置全体の動作周波数を上げずに算術演算部の動作周波数のみを上げれば高速の処理性能を得ることができる。
【００９２】
なお、本実施の形態の周波数変換部１０４０は、１つの構成で示したが、２つ持つ構成にしても良い。
【００９３】
なお、本実施形態では、入力信号をＭＰＥＧ２圧縮されたビデオ信号を入力した例を示したが、これに限るものではない。算術演算を行い、可変長符号化処理されたものであれば、同様の効果が得られる。
【００９４】
（第２の実施形態）
〈全体構成〉
この発明の第２の実施形態による信号処理装置の全体構成を図１２に示す。この装置は、図１に示したヘッダ情報解析部１０１に代えて、プレパーサー部２０１と、ヘッダ情報解析部２０２ａ，２０２ｂと、算術演算部２０４とを備える。その他の構成は図１と同様である。プレパーサー部２０１は、入力信号を所定単位に分割し、複数の信号を出力する。ヘッダ解析部２０２ａ，２０２ｂの各々は、プレパーサー部２０１から出力された入力信号を入力し、入力信号の中から所定の位置に記録されたヘッダ情報を解析することによって情報SignalA，SignalB，SignalCを取得する。算術演算部２０４は、ヘッダ情報解析部２０２ａまたは２０２ｂからの情報SignalA，SignalB，SignalCを参照して、可変長復号部１０３ａ，１０３ｂの各々からの復号データＤ１０３Ａ（または復号データＤ１０３Ｂ）を算術処理することによって再生データＤ２０４Ａ，Ｄ２０４Ｂを生成する。フレームメモリ１０５は、算術演算部２０４からの再生データＤ２０４Ａ，Ｄ２０４Ｂを格納する。
【００９５】
＜算術演算部の内部構成＞
図１２に示した算術演算部２０４の内部構成を図１３に示す。算術演算部２０４は、図２に示した周波数変換部１０４０，動き補償部１０４１，およびブロックバッファ１０Ａ，１１Ａ，１０Ｂ，１１Ｂに代えて、周波数変換部２０４０と動き補償部２０４１ａ，２０４１ｂとマクロブロックバッファ１３ＭＡ，１４ＭＡ，１３ＭＢ，１４ＭＢを備える。その他の構成は図２と同様である。マクロブロックバッファ１３ＭＡ，１４ＭＡの各々は、マクロブロック１つ分のデータサイズを有し、可変長復号部１０３ａからの復号データＤ１０３Ａを格納する，マクロブロックデータ１３ＭＢ，１４ＭＢの各々は、マクロブロックデータ１つ分のデータサイズを有し、可変長復号部１０３ｂからの復号データＤ１０３Ｂを格納する。周波数変換部２０４０は、ヘッダ情報解析部２０２ａからの情報SignalB，SignalCまたはヘッダ情報解析部２０２ｂからの情報SignalB，SignalCを参照して、マクロブロックバッファ１３ＭＡ，１４ＭＡ，１３ＭＢ，１４ＭＢの各々に格納されている復号データＤ１０３Ａまたは復号データＤ１０３Ｂに対して離散コサイン変換を行うことによって差分データを生成する。動き補償部２０４１ａは、ヘッダ情報解析部２０２ａからの情報SignalAを参照して、マクロブロックバッファ１２ＭＡに格納された差分データに対してフレームメモリ１０５からの予測データＤ１０５Ａを用いて動き補償を行い再生データＤ２０４Ａを生成する。動き補償部２０４１ｂは、ヘッダ情報解析部２０２ｂからの情報SignalAを参照して、バッファメモリ１２ＭＢに格納された差分データに対してフレームメモリ１０５からの予測データＤ１０５Ｂを用いて動き補償を行い再生データＤ２０４Ｂを生成する。
【００９６】
また、本実施形態では、周波数変換部２０４０は、可変長復号部１０３ａ，１０３ｂの処理速度の倍の処理性能を持つものとする。
【００９７】
＜プレパーサー部２０１の内部構成＞
図１２に示したプレパーサー部２０１の内部構成を図１４に示す。プレパーサー部２０１は、バッファメモリ２０１１と、ヘッダ検出部２０１２と、メモリ２０１３と、スライス制御部２０１４とを含む。バッファメモリ２０１１は、入力信号を一時的に格納する。ヘッダ検出部２０１２は、バッファメモリ２０１１に格納されている入力信号の中からスライスヘッダを検出し、スライスヘッダを検出するとスライス番号とそのスライスが格納されているバッファメモリ２０１１中のアドレスとをメモリ２０１３に格納する。スライス制御部２０１４は、メモリ２０１３に格納されたスライス番号とそのスライスが格納されるアドレスを順次読み出し、バッファメモリ２０１１に格納された入力信号の中から処理対象のスライスデータをヘッダ情報解析部２０２ａ，２０２ｂのうちいずれか一方に出力する。
【００９８】
〈動作〉
図１２に示した信号処理装置にＭＰＥＧ２圧縮されたビットストリーム（図３，４）が入力された場合の動作を、以下に説明する。
【００９９】
まず、プレパーサー部２０１に入力された信号は、一時的にバッファメモリ２０１１に格納される。
【０１００】
次に、ヘッダ検出部２０１２は、バッファメモリ２０１１に格納された入力信号を読み出し、入力信号の中からスライスヘッダを検出する。ヘッダ検出部２０１２は、スライスヘッダを検出すると、スライス番号とそのスライスが格納されているバッファメモリ２０１１中のアドレスをメモリ２０１３に記録する。
【０１０１】
次に、スライス制御部２０１４は、メモリ２０１３に記録されているスライス番号とそのスライスが格納されるアドレスとを順次読み出し、それらに従ってバッファメモリ２０１１に格納されている入力信号を読み出し、読み出した入力信号をヘッダ情報解析部２０２ａ，２０２ｂのうちいずれか一方に入力する。例えば、図１５で示す画像イメージを用いると、スライス制御部２０１４は、スライス０をヘッダ情報解析部２０２ａへ、そして、次のスライス１をヘッダ情報解析部２０２ｂへ、そして、スライス２をヘッダ情報解析部２０２ａへと入力するように、出力を制御する。
【０１０２】
ここでは、スライス０がヘッダ情報解析部２０２ａへ、スライス１がヘッダ情報解析部２０２ｂへ入力されたとして説明する。
【０１０３】
ヘッダ情報解析部２０２ａは、入力されたスライス０のマクロブロックヘッダまでのストリーム中のデータを解析することにより情報SignalA，SignalB，SignalCを取得する。一方、ヘッダ情報解析部２０２ｂは、入力されたスライス１は、マクロブロックヘッダまでのストリーム中のデータを解析することにより情報SignalA，SignalB，SignalCを取得する。
【０１０４】
次に、ヘッダ情報解析部２０２ａによって処理されたデータは、可変長復号部１０３ａに入力されて復号化処理される。さらに、可変長復号部１０３ａは、逆量子化処理して、復号データＤ１０３Ａを出力する。一方、第２のヘッダ情報解析部２０２ｂによって処理されたデータは、可変長復号部１０３ｂに入力されて復号化処理される。さらに、可変長復号部１０３ｂは、逆量子化処理して、復号データＤ１０３Ｂを出力する。
【０１０５】
次に、可変長復号部１０３ａは、マクロブロックバッファ１３ＭＡ，１４ＭＡの各々に対してマクロブロックバッファ１３ＭＡ，１４ＭＡ……の順番で復号データＤ１０３Ａを１マクロブロック分ずつ書き込む。一方、可変長復号部１０３ｂは、マクロブロックバッファ１３ＭＢ，１４ＭＢの各々に対してマクロブロックバッファ１３ＭＢ，１４ＭＢ……の順番で復号データＤ１０３Ｂを１マクロブロック分ずつ書き込む。
【０１０６】
次に、周波数変換部２０４０は、ヘッダ情報解析部２０２ａからの情報SignalB，SignalCまたはヘッダ情報解析部２０２ｂからの情報SignalB，SignalCを参照して、マクロブロックバッファ１３ＭＡ、１３ＭＢ、１４ＭＡ、１４ＭＢ、１３ＭＡ、１３ＭＢ……の順で復号データＤ１０３Ａまたは復号データＤ１０３Ｂに対して逆離散コサイン変換を行うことによって、差分データＡまたは差分データＢを生成する。
【０１０７】
次に、差分データＡをマクロブロックバッファ１２ＭＡに書き込む際に、周波数変換部２０４０は、ヘッダ情報解析部２０２ａからの情報SignalBを参照してブロック位置を確認し、生成した差分データＡをマクロブロックバッファ１２ＭＡの所定位置に書き込む。また、差分データＢをバッファ１２ＭＢに書き込む際に、周波数変換部２０４０は、ヘッダ情報解析部２０２ｂからの情報SignalBを参照してブロック位置を確認し、生成した差分データＢをバッファ１２ＭＢの所定位置に書き込む。また、情報SignalB (ＣＢＰ)より、ブロック内に有効なデータが存在しない場合、周波数変換２０４０は、バッファ１２ＭＡ，１２ＭＢの該当するブロック位置に、１ブロック分のゼロデータを出力する。
【０１０８】
次に、動き補償部２０４１ａは、マクロブロックバッファ１２ＭＡにマクロブロック１つ分の差分データＡが格納されると、動き補償を開始する。動き補償部２０４１は、ヘッダ情報解析部２０２ａによって取得されたSignalA (動きベクトル情報と符号化モード)を参照して、フレームメモリ１０５に格納されている参照フレームから予測データＤ１０５Ａを読み出す。そして、予測データＤ１０５Ａとマクロブロックバッファ１２ＭＡに格納された差分データＡとを加算して、再生データＤ２０４Ａを出力する。再生データＤ２０４Ａは、フレームメモリ１０５に格納される。一方、第２の動き補償部２０４１ｂは、マクロブロックバッファ１２ＭＢにマクロブロック１つ分の差分データＢが格納されると、動き補償を開始する。動き補償部２０４１ｂは、ヘッダ情報解析部２０２ｂによって取得されたSignalA (動きベクトル情報と符号化モード)を参照して、フレームメモリ１０５に格納されている参照フレームから予測データＤ１０５Ｂを読み出す。そして、予測データＤ１０５Ｂとマクロブロックバッファ１２ＭＢに格納された差分データＢとを加算して、再生データＤ２０４Ｂを出力する。再生データＤ２０４Ｂは、フレームメモリ１０５に格納される。
【０１０９】
〈効果〉
以上のように、本実施形態による信号処理装置は、複数の可変長復号部によってブロック単位の復号化信号を並列に処理するので、符号化信号の復号化を高速に行うことができる。また、周波数演算部を１つ用いそれの動作周波数を高くすることによって、複数の可変長復号部の各々によって生成された復号データに対する逆離散コサイン変換を高速に行うことができる。ここで、周波数演算部は、単純に入力されたデータに対して演算を行うだけなので、比較的動作周波数を上げやすい。このように、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、装置全体の動作周波数を上げずに周波数演算部の動作周波数のみを上げれば高速の処理性能を得ることができる。
【０１１０】
なお、本発明の第２の実施の形態では、入力信号をＭＰＥＧ２圧縮されたビデオ信号を入力した例を示したが、これに限るものではない。算術演算を行い、可変長符号化処理されたものであれば、同様の効果が得られる。
【０１１１】
なお、本実施形態では、２つの動き補償部（動き補償部２０４１ａ，２０４１ｂ）を持つ構成で説明した。この場合、２つの動き補償部の各々において同時に動き補償が実行され、同時にフレームメモリ１０５へのアクセスが生じることがある。
【０１１２】
図１６に、これを回避するための算術演算部３０４の一構成例を示す。
【０１１３】
図１６に示すように、算術演算部３０４は、図１３に示した周波数変換部２０４０および動き補償部２０４１ａ，２０４１ｂに代えて、周波数変換部３０４０と動き補償部３０４１とを含む。
【０１１４】
周波数変換部３０４０と可変長復号部１０３ａ，１０３ｂとのインターフェイス（IF）は、周波数変換部２０４０と同様である。動き補償部３０４１は、マクロブロックバッファ１２ＭＡから差分データを読み出す場合は、ヘッダ情報解析部２０２ａからの情報SignalAを参照し、また、マクロブロックバッファ１２ＭＢから差分データを読み出す場合は、ヘッダ情報解析部２０２ｂからの情報SignalAを参照して、予測データＤ１０５Ａまたは予測データＤ１０５Ｂをフレームメモリ１０５から読み出し、動き補償し、再生データＤ３０４Ａまたは再生データＤ３０４Ｂをフレームメモリ１０５に書き込む。
【０１１５】
なお、本構成では、周波数変換部３０４０および動き補償部３０４１は、可変長復号部１０３ａ，１０３ｂの処理速度の２倍の処理性能を持つものとする。
【０１１６】
以上のように、適切に情報SignalAを参照することができるので、算術演算部２０４と同様の処理を行うことができる。
【０１１７】
（第３の実施形態）
＜全体構成＞
この発明の第３の実施形態による信号処理装置の全体構成を図１７に示す。この装置は、図１２に示したプレパーサー部を省略した構成である。その他の構成は図１２と同様である。ヘッダ解析部２０２ａは、入力信号Ｓ１を入力とし、入力信号Ｓ１の中から所定の位置に記録されたヘッダ情報を解析することによって情報SignalA，SignalB，SignalCを取得する。可変長復号部１０３ａは、複数ある可変長符号化テーブルの中から入力信号Ｓ１と一致する符号を検出し、可変長符号化テーブルに一致するシンボルを復号データＤ１０３Ａとして出力する。ヘッダ解析部２０２ｂは、入力信号Ｓ２を入力とし、入力信号Ｓ２の中から所定の位置に記録されたヘッダ情報を解析すことによって情報SignalA，SignalB，SignalCを取得するる。可変長復号部１０３ｂは、複数ある可変長符号化テーブルの中から入力信号Ｓ２と一致する符号を検出し、可変長符号化テーブルに一致するシンボルを復号データＤ１０３Ｂとして出力する。
【０１１８】
〈動作〉
図１７に示した信号処理装置の動作について説明する。
【０１１９】
入力信号Ｓ１は、ヘッダ情報解析部２０２ａに入力される。一方、入力信号Ｓ２は、ヘッダ情報解析部２０２ｂに入力される。
【０１２０】
ヘッダ情報解析部２０２ａでは、入力信号Ｓ１中のマクロブロックヘッダまでのストリーム中のデータを解析する。一方、ヘッダ情報解析部２０２ｂでは、入力信号Ｓ２中のマクロブロックヘッダまでのストリーム中のデータを解析する。
【０１２１】
次に、入力信号Ｓ１は、可変長復号部１０３ａへ入力され、ランレングス復号化処理され、逆量子化処理され、出力される。一方、入力信号Ｓ２は、可変長復号部１０３ｂへ入力され、ランレングス復号化処理され、逆量子化処理され、出力される。
【０１２２】
次に、可変長復号部１０３ａ，１０３ｂの各々が出力する復号データＤ１０３Ａ，Ｄ１０３Ｂは、算術演算部２０４に入力される。周波数変換部２０４０は、復号データＤ１０３Ａ，Ｄ１０３Ｂの各々に対して逆離散コサイン変換が行うことによって差分データＡ，Ｂを生成し、それぞれを動き補償部２０４１へ出力する。
【０１２３】
次に、動き補償部２０４１は、ヘッダ情報解析部２０２ａまたは２０２ｂからの情報SignalB (ＣＢＰ情報)を用いて、差分データＡ，Ｂに対して動き補償を行うことによって再生データＤ２０４Ａ，Ｄ２０４Ｂを生成し、それぞれをフレームメモリへ格納する。
【０１２４】
〈効果〉
以上のように、本実施形態による信号処理装置は、複数の可変長復号部によってブロック単位の復号化信号を並列に処理するので、符号化信号の復号化を高速に行うことができる。また、周波数演算部を１つ用いそれの動作周波数を高くすることによって、複数の可変長復号部の各々によって生成された復号データに対する逆離散コサイン変換を高速に行うことができる。ここで、周波数演算部は、単純に入力されたデータに対して演算を行うだけなので、比較的動作周波数を上げやすい。このように、デコード処理系統の並列化に伴う回路規模の増加を抑えることができ、かつ、装置全体の動作周波数を上げずに周波数演算部の動作周波数のみを上げれば高速の処理性能を得ることができる。したがって、複数の入力信号をリアルタイムに再生することができる。
【０１２５】
なお、本実施形態では、入力信号を２つとしたが、これに限るものではない。
【０１２６】
しかしながら、本実施形態では、動き補償部を２つ持つ構成にしたため、動き補償の処理において、メモリアクセスの競合が発生する。
【０１２７】
その場合、図１６に示すブロック構成をとった場合、このメモリ競合は防ぐことができる。
【０１２８】
なお、入力信号をＭＰＥＧ２圧縮されたビデオ信号を入力した例を示したが、これに限るものではない。算術演算を行い、可変長符号化処理されたものであれば、同様の効果が得られる。
【産業上の利用可能性】
【０１２９】
以上のように、本発明は、算術演算を施した後、可変長符号化処理を施した入力信号を復号処理する信号処理装置等として有効である。
【図面の簡単な説明】
【０１３０】
【図１】この発明の第１の実施形態による信号処理装置の全体構成を示すブロック図である。
【図２】図１に示した算術演算部の内部構成を示すブロック図である。
【図３】入力信号の一例を示す図である。
【図４】マクロブロックに含まれるブロックを示す図である。
【図５】図１に示したプレパーサー部の内部構成を示すブロック図である。
【図６】図１に示した信号処理装置による動作を示すフローチャートである。
【図７】図１に示したプレパーサー部による動作を示すフローチャートである。
【図８】図５に示したＥＯＢ検出部による動作を示すフローチャートである。
【図９】図５に示したブロック情報出力部による動作を示すフローチャートである。
【図１０】図５に示したブロック制御部による動作を示すフローチャートである。
【図１１】図１に示した算術演算部による動作を示すタイミングチャートである。
【図１２】この発明の第２の実施形態による信号処理装置の全体構成をを示すブロック図である。
【図１３】図１２に示した算術演算部の内部構成を示すブロック図である。
【図１４】図１２に示したプレパーサー部の内部構成を示すブロック図である。
【図１５】画像イメージの一例を示す図である。
【図１６】図１２に示した算術演算部の内部構造の変形例を示すブロック図である。
【図１７】この発明の第３の実施形態による信号処理装置の全体構成を示すブロック図である。
【図１８】従来の信号処理装置の全体構成を示すブロック図である。
【図１９】図１８に示した算術演算部の内部構成を示すブロック図である。
【符号の説明】
【０１３１】
１０１    ヘッダ情報解析部
１０２    プレパーサー部
１０３ａ，１０３ｂ    可変長復号部
１０４    算術演算部
１０５    フレームメモリ
１０Ａ，１１Ａ，１０Ｂ，１１Ｂ    ブロックバッファ
１０４０    周波数変換部
１２ＭＡ，１２ＭＢ    マクロブロックバッファ
１０４１    動き補償部
１０２０    ＥＯＢサーチ部
１０２１    スイッチ
１０２２    ブロック制御部
１０２３    ブロック情報出力部
【図１】
2005260639.tif 000003
【図２】
2005260639.tif 000004
【図３】
2005260639.tif 000005
【図４】
2005260639.tif 000006
【図５】
2005260639.tif 000007
【図６】
2005260639.tif 000008
【図７】
2005260639.tif 000009
【図８】
2005260639.tif 000010
【図９】
2005260639.tif 000011
【図１０】
2005260639.tif 000012
【図１１】
2005260639.tif 000013
【図１２】
2005260639.tif 000014
【図１３】
2005260639.tif 000015
【図１４】
2005260639.tif 000016
【図１５】
2005260639.tif 000017
【図１６】
2005260639.tif 000018
【図１７】
2005260639.tif 000019
【図１８】
2005260639.tif 000020
【図１９】
2005260639.tif 000021