(57)【要約】【課題】一連の処理に前後関係が存在する場合でも、ペナルティを隠蔽することによって、効率的な信号処理が行えるような信号処理装置を提供する。【解決手段】信号処理装置は、信号Ａを信号Ｂに変換する第１の処理がプログラムされた第１の命令流と、信号Ｂを信号Ｃに変換する第２の処理がプログラムされた第２の命令流とを格納する命令メモリ１００と、第１の命令流と第２の命令流とを処理するプロセッサ１０１と、少なくとも信号Ｂを格納するためのデータメモリ１０２、第１の命令流と第２の命令流とをＴサイクル毎に切り替えてプロセッサ１０１に処理させるように制御する制御部１０３とを備える。プロセッサ１０１がデータメモリ１０２から信号を取り出すための命令を発行してから当該信号がデータメモリ１０２からプロセッサ１０１に入力されるまでに必要な処理サイクル数（Ｌｏａｄペナルティ）をＬとしたとき、Ｔは、Ｔ＜Ｌであることを特徴とする。【選択図】図１
2008146471.tif 000002
【特許請求の範囲】
【請求項１】
信号Ａを信号Ｂに変換する第１の処理がプログラムされた第１の命令流と、信号Ｂを信号Ｃに変換する第２の処理がプログラムされた第２の命令流とを格納する命令メモリと、
前記第１の命令流と前記第２の命令流とを処理するプロセッサと、
少なくとも前記信号Ｂを格納するためのデータメモリと、
前記第１の命令流と前記第２の命令流とをＴサイクル毎に切り替えて前記プロセッサに処理させるように制御する制御手段とを備え、
前記プロセッサが前記データメモリから信号を取り出すための命令を発行してから当該信号が前記データメモリから前記プロセッサに入力されるまでに必要な処理サイクル数（Ｌｏａｄペナルティ）をＬとしたとき、前記Ｔは、Ｔ＜Ｌである
ことを特徴とする信号処理装置。
【請求項２】
前記データメモリに前記第２の処理の入力となる有効な信号Ｂが格納されていない場合、前記プロセッサは、前記第２の命令流を処理しない
ことを特徴とする請求項１記載の信号処理装置。
【請求項３】
前記データメモリは少なくとも２つの排他な領域１および領域２を有し、
前記第１の命令流が、前記領域１に信号Ｂを出力している時、前記第２の命令流は、前記領域２から信号Ｂを入力するようにプログラムされており、前記領域２には、前記第１の命令流が過去に出力した信号Ｂが格納されている
ことを特徴とする請求項１記載の信号処理装置。
【請求項４】
前記命令メモリは、Ｎ個（Ｎは２以上の自然数）の命令流を格納し、
前記プロセッサは、前記Ｎ個の命令流を処理し、
前記制御手段は、前記Ｎ個の命令流をＴサイクル毎に切り替えて前記プロセッサに処理させるように制御し、
前記Ｌが前記Ｎに対して大である場合、取り得る値の範囲で前記Ｔを大とし、
前記Ｌが前記Ｎに対して小である場合、取り得る値の範囲で前記Ｔを小とする
ことを特徴とする請求項１〜３のいずれか１項に記載の信号処理装置。
【請求項５】
前記第１の処理と前記第２の処理とを実行するために必要な演算量の総量をＲ、前記プロセッサの演算容量をＣとしたとき、
前記Ｃが前記Ｒに対して大である場合、取り得る値の範囲で前記Ｔを大とし、
前記Ｃが前記Ｒに対して小である場合、取り得る値の範囲で前記Ｔを小とする
ことを特徴とする請求項１〜３のいずれか１項に記載の信号処理装置。
【請求項６】
前記信号Ａは、圧縮符号化信号であり、
前記信号Ｂは、前記圧縮符号化信号を復号化する過程における周波数軸信号であり、
前記信号Ｃは、前記圧縮符号化信号の復号化信号である
ことを特徴とする請求項１〜５のいずれか１項に記載の信号処理装置。
【請求項７】
前記信号Ａは、圧縮符号化信号であり、
前記信号Ｂは、前記圧縮符号化信号を復号化した狭帯域の信号であり、
前記信号Ｃは、前記圧縮符号化信号を復号化した広帯域の信号である
ことを特徴とする請求項１〜６のいずれか１項に記載の信号処理装置。
【請求項８】
前記信号Ａは、圧縮符号化信号であり、
前記信号Ｂは、前記圧縮符号化信号を復号化したＳチャネルの信号であり、
前記信号Ｃは、前記圧縮符号化信号を復号化したＭチャネルの信号であり、
前記Ｓは前記Ｍより小さい
ことを特徴とする請求項１〜５のいずれか１項に記載の信号処理装置。
【請求項９】
前記信号Ａは、時間軸信号であり、
前記信号Ｂは、前記時間軸を符号化する過程における周波数軸信号であり、
前記信号Ｃは、前記時間軸の圧縮符号化信号である
ことを特徴とする請求項１〜５のいずれか１項に記載の信号処理装置。
【請求項１０】
前記信号Ｂは、前記信号Ａのサンプリング周波数の１／２の周波数より低い周波数帯域の信号である
ことを特徴とする請求項９記載の信号処理装置。
【請求項１１】
前記信号Ａは圧縮符号化信号であり、
前記信号Ｂは前記圧縮符号化信号を復号化した信号であり、前記復号化した信号に対しユーザの指示に基づいた音響的信号処理を施した信号である
ことを特徴とする請求項１〜５のいずれか１項に記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチスレッドプロセッサを用いたＡＶ信号処理技術に関する。特に、オーディオ信号の効率的な処理技術に関する。
【背景技術】
【０００２】
近年、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）や、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）を記録媒体としたＡＶ（Ａｕｄｉｏ−Ｖｉｓｕａｌ）信号の記録、再生装置、さらに放送や通信の受信も同時に行うような機器が開発されている。ここで用いられる、ビデオコーデック、オーディオコーデック、通信処理などには、多大の演算量が必要となっている。
【０００３】
これらの信号処理を同時に行うために、マルチスレッドプロセッサを用いた処理が行われている。図１２を用いて、その一般的な動作を説明する。
【０００４】
図１２は、例えば４００ＭＨｚで動作するプロセッサ上で、映像処理、音響処理、通信処理を、それぞれ、プロセッサ資源を時分割で使用しながら、同時に実行している様子を示している。
【０００５】
この図１２に示される例では、「ある所定の時間長、映像処理のプログラムが動作し、コンテキスト（プログラム実行時の各種演算資源の状態を保持する変数）を音響処理プログラム用に入れ替え（Ｓｗｉｔｃｈし）、ある所定の時間長、音響処理のプログラムが動作し、コンテキストを通信処理プログラム用に入れ替え、ある所定の時間長、通信処理のプログラムが動作する」という処理を繰り返すことで、見かけ上、複数の処理を同時に実行している。
【０００６】
ところが近年では、上記それぞれの処理が大規模化し、従来のプロセッサの動作周波数では処理が間に合わなくなってきている。そこで、プロセッサの動作周波数を大幅に向上するような取り組みが行われている。しかしながら、このようにプロセッサの動作周波数を向上させても、例えば、プロセッサにデータを供給するメモリの周波数が、プロセッサの動作周波数に追従できない場合、ペナルティとよばれる、プログラムが動作する上で発生するペナルティ（Ｌｏａｄペナルティ）が増加する。
【０００７】
図１３は、Ｌｏａｄペナルティとよばれる、プロセッサ、メモリ間で発生するペナルティを説明するものである。図１３（ａ）はプロセッサが４００ＭＨｚで動作する場合のＬｏａｄペナルティを示している。例えばこの場合、プロセッサがメモリに対してＬｏａｄ命令を発行してから、実際にメモリからプロセッサにデータが供給され演算に用いられるようになるまでに、この例では２サイクルかかっている、ということを示している。図１３（ｂ）はプロセッサが例えば１２００ＭＨｚで動作する場合のＬｏａｄペナルティを示している。この場合、プロセッサがメモリに対してＬｏａｄ命令を発行してから、実際にメモリからプロセッサにデータが供給され演算に用いられるようになるまでに、この例では５サイクルかかっている、ということを示している。一般的に、プロセッサの動作周波数が向上すると、Ｌｏａｄペナルティが増加するが、これは、メモリの動作周波数が、プロセッサの動作周波数に追従できないからである。
【０００８】
さて、このように、プロセッサの動作周波数が向上しても、Ｌｏａｄペナルティに代表される各種ペナルティが増加するので、図１２で示したマルチスレッドプロセッサを用いた処理と同じ方法の処理を、動作周波数が向上したプロセッサに対して行った場合、図１４に示すように、十分な性能がでないことになる。
【０００９】
図１４は、動作周波数が向上したプロセッサに対して従来のマルチスレッドの信号処理を実施した場合の問題点を示している。
【００１０】
図１４で、白抜きの四角形は、プログラムが有効な演算を実行していないことを示す。図に示すように、「ある所定の時間長、映像処理のプログラムが動作し、コンテキストを音響処理プログラム用に入れ替え、ある所定の時間長、音響処理のプログラムが動作し、コンテキストを通信処理プログラム用に入れ替え、ある所定の時間長、通信処理のプログラムが動作する」という処理を繰り返しているが、プロセッサの動作周波数が向上したため、Ｌｏａｄペナルティに代表される各種ペナルティが発生し、有効な演算を実行していない時間が存在している。図１４においては、説明の簡単化のために、最も極端な状態を示しているが、傾向としては、図１４に示すように、従来のマルチスレッドの処理では、プロセッサの性能を十分に引き出せない場合が多い。
【００１１】
そこで、近年、マルチスレッデドパイプラインという技術が実用化されつつある（非特許文献１参照）。
【００１２】
図１５は、マルチスレッデドパイプラインの技術を用いた処理の流れを示している。マルチスレッデドパイプラインは、非常に短いサイクル毎（典型的には１サイクル毎）にコンテキストを切り替える、即ち、命令流を切り替えることで、同一スレッド内で発生していたペナルティを、他のスレッドが有効な命令を発行することによって隠蔽し、複数のスレッドが並列に実行されるという前提において命令効率を向上させる技術である。このようにすることによって、プロセッサの動作周波数が向上したことによって本来得られるはずの演算能力の余力が得られることとなる。
【非特許文献１】“Ａ  ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｗｉｔｈ  ｓｉｍｕｌｔａｎｅｏｕｓ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｉｓｓｕｉｎｇ，”Ｉｎ  Ｐｒｏｃ．ｏｆ  ＩＳＳ’９１：  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｓｕｐｅｒｃｏｍｐｕｔｉｎｇ，  Ｆｕｋｕｏｋａ，  Ｊａｐａｎ，  ｐｐ  ．８７  −９６，  Ｎｏｖｅｍｂｅｒ  １９９１．
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、マルチスレッデドパイプラインの技術を用いるには、図１５に示すように、各命令流が、相互に独立である、という前提が必要である。図１５では、命令流１が映像処理、命令流２が音響処理、命令流３が通信処理であり、全ての命令サイクルで、各命令流間には依存関係がなく、従って、サイクル毎に、コンテキストの入れ替えが可能である。
【００１４】
しかしながら、例えば、オーディオの処理単独で考えた場合、一連の処理には前後関係が必要で、例えば図１６に示すように、「細い斜線付の四角形で示した処理が終了しないと、太い斜線付の四角形で示した処理が開始できない」、「太い斜線付の四角形で示した処理が終了しないと、縦縞で示した処理が開始できない」、というような命令流には、前後関係（依存関係）が存在することがむしろ一般的である。
【００１５】
このような処理を単独で処理させると、Ｌｏａｄペナルティに代表される各種ペナルティが発生し、結果として、図１７に示すように、本来のプロセッサの能力を引き出しきれない、という課題があった。
【００１６】
また、マルチスレッデドパイプラインの技術では、１サイクル毎に命令流を入れ替えることでペナルティを隠蔽するが、そのように高速に命令流を入れ替えることは多大の電力を消費する、という課題があった。
【００１７】
本発明は、このような従来の問題点に鑑みてなされたものであって、一連の処理に前後関係が存在する場合でも、命令間で発生するペナルティを隠蔽することによって、効率的な信号処理が行えるような信号処理装置を提供することを第１の目的とする。
【００１８】
また、命令流の切り替えにおいて、できるだけ消費電力を少なくするような信号処理装置を提供することを第２の目的とする。
【課題を解決するための手段】
【００１９】
上記第１の目的を達成するために、本発明に係る信号処理装置においては、信号Ａを信号Ｂに変換する第１の処理がプログラムされた第１の命令流と、信号Ｂを信号Ｃに変換する第２の処理がプログラムされた第２の命令流とを格納する命令メモリと、前記第１の命令流と前記第２の命令流とを処理するプロセッサと、少なくとも前記信号Ｂを格納するためのデータメモリと、前記第１の命令流と前記第２の命令流とをＴサイクル毎に切り替えて前記プロセッサに処理させるように制御する制御手段とを備え、前記プロセッサが前記データメモリから信号を取り出すための命令を発行してから当該信号が前記データメモリから前記プロセッサに入力されるまでに必要な処理サイクル数（Ｌｏａｄペナルティ）をＬとしたとき、前記Ｔは、Ｔ＜Ｌであることを特徴とする。
【００２０】
これにより、プロセッサの動作周波数が向上することによって、メモリのＬｏａｄペナルティが上昇（悪化）した場合でも、Ｌｏａｄペナルティを隠蔽することができる。
【００２１】
また、本発明に係る信号処理装置においては、前記データメモリに前記第２の処理の入力となる有効な信号Ｂが格納されていない場合、前記プロセッサは、前記第２の命令流を処理しないことを特徴とすることができる。
【００２２】
これにより、プログラムの実行に前後関係があり、従って命令流の切り替えを常に行えるとは限らない場合でも、適切に命令流を切り替えることによってＬｏａｄペナルティを隠蔽することができる。
【００２３】
また、本発明に係る信号処理装置においては、前記データメモリは少なくとも２つの排他な領域１および領域２を有し、前記第１の命令流が、前記領域１に信号Ｂを出力している時、前記第２の命令流は、前記領域２から信号Ｂを入力するようにプログラムされており、前記領域２には、前記第１の命令流が過去に出力した信号Ｂが格納されていることを特徴とすることができる。
【００２４】
これにより、簡単な制御によって、プログラムの実行の前後関係を維持することができ、従って、簡単な制御によって、Ｌｏａｄペナルティを隠蔽することができる。
【００２５】
また、上記第２の目的を達成するために、本発明に係る信号処理装置においては、前記命令メモリは、Ｎ個（Ｎは２以上の自然数）の命令流を格納し、前記プロセッサは、前記Ｎ個の命令流を処理し、前記制御手段は、前記Ｎ個の命令流をＴサイクル毎に切り替えて前記プロセッサに処理させるように制御し、前記Ｌが前記Ｎに対して大である場合、取り得る値の範囲で前記Ｔを大とし、前記Ｌが前記Ｎに対して小である場合、取り得る値の範囲で前記Ｔを小とすることを特徴とすることができる。
【００２６】
これにより、Ｌｏａｄペナルティが大きい場合や、処理する命令流の数が少ない場合は、Ｔを大きな値とすることで、電力消費を少なくすることができる。
【００２７】
また、本発明に係る信号処理装置においては、前記第１の処理と前記第２の処理とを実行するために必要な演算量の総量をＲ、前記プロセッサの演算容量をＣとしたとき、前記Ｃが前記Ｒに対して大である場合、取り得る値の範囲で前記Ｔを大とし、前記Ｃが前記Ｒに対して小である場合、取り得る値の範囲で前記Ｔを小とすることを特徴とすることができる。
【００２８】
これにより、プロセッサの能力が処理に必要な能力に対し余裕がある場合は、Ｔを大きな値とすることで、電力消費を少なくすることができる。
【００２９】
また、本発明に係る信号処理装置においては、前記信号Ａは、圧縮符号化信号であり、前記信号Ｂは、前記圧縮符号化信号を復号化する過程における周波数軸信号であり、前記信号Ｃは、前記圧縮符号化信号の復号化信号であることを特徴とすることもできる。
【００３０】
これにより、圧縮符号化信号の復号化処理においてメモリのＬｏａｄペナルティが上昇（悪化）した場合でも、Ｌｏａｄペナルティを隠蔽することができる。
【００３１】
また、本発明に係る信号処理装置においては、前記信号Ａは、圧縮符号化信号であり、前記信号Ｂは、前記圧縮符号化信号を復号化した狭帯域の信号であり、前記信号Ｃは、前記圧縮符号化信号を復号化した広帯域の信号であることを特徴としてもよい。
【００３２】
これにより、圧縮符号化信号の復号化処理において、復号化過程における狭帯域の信号を前記信号Ｂとすることで、信号Ｂを格納する領域を二重に持たなくてはならないコスト上のデメリットを緩和することができる。
【００３３】
また、本発明に係る信号処理装置においては、前記信号Ａは、圧縮符号化信号であり、前記信号Ｂは、前記圧縮符号化信号を復号化したＳチャネルの信号であり、前記信号Ｃは、前記圧縮符号化信号を復号化したＭチャネルの信号であり、前記Ｓは前記Ｍより小さいことを特徴とすることもできる。
【００３４】
これにより、圧縮符号化信号の復号化処理において、復号化過程における、チャネル数の少ない段階での信号を前記信号Ｂとすることで、信号Ｂを格納する領域を二重に持たなくてはならないコスト上のデメリットを緩和することができる。
【００３５】
また、本発明に係る信号処理装置においては、前記信号Ａは、時間軸信号であり、前記信号Ｂは、前記時間軸を符号化する過程における周波数軸信号であり、前記信号Ｃは、前記時間軸の圧縮符号化信号であることを特徴とすることもできる。
【００３６】
これにより、時間軸信号の圧縮符号化処理においてメモリのＬｏａｄペナルティが上昇（悪化）した場合でも、Ｌｏａｄペナルティを隠蔽することができる。
【００３７】
また、本発明に係る信号処理装置においては、前記信号Ｂは、前記信号Ａのサンプリング周波数の１／２の周波数より低い周波数帯域の信号であることを特徴とすることもできる。
【００３８】
これにより、時間軸信号の圧縮符号化処理において、符号化過程における狭帯域の信号を前記信号Ｂとすることで、信号Ｂを格納する領域を二重に持たなくてはならないコスト上のデメリットを緩和することができる。
【００３９】
また、本発明に係る信号処理装置においては、前記信号Ａは圧縮符号化信号であり、前記信号Ｂは前記圧縮符号化信号を復号化した信号であり、前記復号化した信号に対しユーザの指示に基づいた音響的信号処理を施した信号であることを特徴としてもよい。
【００４０】
これにより、圧縮符号化信号の復号化処理とその復号化信号に対する音響処理においてメモリのＬｏａｄペナルティが上昇（悪化）した場合でも、Ｌｏａｄペナルティを隠蔽することができる。
【００４１】
なお、本発明は、このような信号処理装置として実現することができるだけでなく、このような信号処理装置が備える特徴的な手段をステップとする信号処理方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００４２】
以上の説明から明らかなように、プロセッサの動作周波数が向上することによって、メモリのＬｏａｄペナルティが上昇（悪化）した場合でも、Ｌｏａｄペナルティを隠蔽することができる。また、Ｌｏａｄペナルティが大きい場合や、処理する命令流の数が少ない場合は、Ｔを大きな値とすることで、電力消費を少なくすることができる。
【００４３】
よって、本発明により、処理速度が向上され、携帯電話機等の携帯情報端末が普及し、当該携帯情報端末においてオーディオ信号等をエンコードしたり、デコードしたりする利用が盛んに行われる今日における本願発明の実用的価値は極めて高い。
【発明を実施するための最良の形態】
【００４４】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００４５】
（実施の形態１）
図１は、本実施の形態１における信号処理装置の構成を示す図である。
【００４６】
本信号処理装置は、信号Ａを信号Ｂに変換する第１の処理がプログラムされた第１の命令流と、信号Ｂを信号Ｃに変換する第２の処理がプログラムされた第２の命令流とを処理する装置である。本実施の形態１では、第１の処理は、圧縮符号化信号をデコードして復号化信号を生成する復号化処理である。より具体的には、例えば、ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）＋ＳＢＲ（Ｓｐｅｃｔｒａｌ  Ｂａｎｄ  Ｒｅｐｌｉｃａｔｉｏｎ）方式におけるＡＡＣ部の処理である。また、第２の処理は、当該復号化信号を加工するための処理である。より具体的には、上記ＡＡＣ＋ＳＢＲ方式におけるＳＢＲ部の処理である。勿論これに限定される必要はなく、例えば、第１の処理は、ＭＰ３や、ＤｏｂｌｙＤｉｇｉｔａｌ方式や、ＤＴＳ方式などの復号化処理であってもよく、第２の処理は、例えば、ユーザの指示に応じて復号化信号の周波数特性を変形する処理（所謂周波数イコライザの処理）などであってもよいし、空間的な広がり感や定位感を与える空間処理のフィルタであってもよいし、音の再生速度を変更する、所謂速聴き、遅聴きの可変速再生の処理であってもよい。
【００４７】
このような信号処理装置は、図１に示されるように、命令メモリ１００と、プロセッサ１０１と、データメモリ１０２と、制御部１０３とを備える。
【００４８】
命令メモリ１００は、信号Ａを信号Ｂに変換する第１の処理がプログラムされた第１の命令流１０８と、信号Ｂを信号Ｃに変換する第２の処理がプログラムされた第２の命令流１０９とを格納する。プロセッサ１０１は、第１の命令流１０８と第２の命令流１０９とを処理する。データメモリ１０２は、信号Ａ、信号Ｂ、信号Ｃを格納するために、その内部に信号Ａを格納するための信号Ａ格納領域１０４と、信号Ｂを格納するための信号Ｂ格納領域１（１０５）および信号Ｂ格納領域２（１０６）と、信号Ｃを格納するための信号Ｃ格納領域１０７とを有する。制御部１０３は、第１の命令流１０８と第２の命令流１０９とをＴサイクル毎に切り替えてプロセッサに処理させるように制御する。
【００４９】
ここで、Ｔは、プロセッサがデータメモリから信号を取り出すための命令を発行してから当該信号がデータメモリからプロセッサに入力されるまでに必要な処理サイクル数（ペナルティ）をＬとしたとき、Ｌより小さい値（Ｔ＜Ｌ）であるが、本実施の形態１では、Ｔ＝１でよい。
【００５０】
図２は、第１の命令流と第２の命令流とが本来実行されるべき順序を示す図である。
本実施の形態１では、上記したように「第１の命令流は、ＡＡＣ＋ＳＢＲの圧縮符号化信号のＡＡＣ部をデコードして時間軸信号を生成するためのプログラムであり、第２の命令流は、当該時間軸信号に対して、再生帯域を拡大するＳＢＲ部のデコード処理である」としているので、図２に示すように、第１の命令流１０８を実行しおわった後で、第２の命令流１０９を実行する必要がある。
【００５１】
図３は、第１の命令流１０８と第２の命令流１０９とが、制御部１０３によって、どのようにプロセッサに流し込まれるかを示す図である。また、図４は、各命令流に対する信号の入出力の流れを示した図である。
【００５２】
次いで、以上のように構成されたオーディオデコーダの動作について、以下説明する。
まず、命令メモリ１００には、信号Ａを信号Ｂに変換する第１の処理がプログラムされた第１の命令流１０８、即ちＡＡＣデコードのプログラムと、信号Ｂを信号Ｃに変換する第２の処理がプログラムされた第２の命令流１０９、即ちＡＡＣ＋ＳＢＲデコードにおけるＳＢＲ部のプログラムが格納されている。
【００５３】
図２に示すように、第２の命令流１０９に先立って、まず第１の命令流１０８が処理されなければならないので、制御部１０３は、第１の命令流１０８をプロセッサ１０１に投入する。Ｔサイクル間第１の命令流１０８を実行した後、第２の命令流１０９をプロセッサ１０１に投入するが、図３に示した、第１の処理（１巡目）の処理が終了するまでは、第２の命令流１０９が処理する入力信号Ｂが生成されていないので、第２の命令流１０９は実行されないで、再度第１の命令流１０８がプロセッサ１０１に投入される。
【００５４】
図３では、第１の処理（１巡目）の処理で等間隔に空白が存在しているが、第２の命令流１０９によって何も処理することがないと判断された段階で、直ぐに、第１の命令流１０８を投入すればよいので、第１の処理（１巡目）の処理で記載されている等間隔の空白は必ずしも特定の意味を持っていない。
【００５５】
図３において、第１の処理（１巡目）が終了した後は、制御部１０３が、命令流を第２の命令流１０９に切り替えた場合、第２の命令流１０９の入力となる信号Ｂが生成されているので、プロセッサ１０１は、第２の命令流１０９を実行することができる。
【００５６】
制御部１０３は、上記のように第２の命令流１０９をプロセッサ１０１に投入し、プロセッサ１０１がＴサイクルの間、第２の命令流１０９を実行した後、第１の命令流１０８をプロセッサ１０１に投入する。以降、同様の手順で、第１の命令流１０８と第２の命令流１０９とが、Ｔサイクルの間隔毎に切り替えられながら第１の処理と第２の処理とが実行される。このように実行することによって、図３に示すように、同一スレッド内のペナルティは、もう１方のスレッドの有効な命令によって隠蔽されるので、演算効率を向上させることができる。
【００５７】
ここでは勿論、上記ＴはＬより小さいことが必要である。前述したように、Ｌは高速なプロセッサが被る最も典型的なペナルティであるところのＬｏａｄペナルティであるが、ＴがＬより大きい場合は、当該ペナルティが隠蔽されないので、スレッドを切り替えることによる演算効率の向上に寄与しないからである。従って、典型的にはＴ＝１であることが望ましいが、一方で、仮にＬが非常に大きい場合、１サイクル毎に命令流を切り替えても、２サイクル毎に命令流を切り替えても、演算効率の向上に差がない場合もある。１サイクル毎に命令流を切り替えることは、プロセッサの消費電力の上昇を招くので、Ｌが大きい値の場合には、Ｔを１でない値、つまり２以上の自然数にすることで、消費電力の上昇を防ぐ制御をすることが望ましい。
【００５８】
さて、上記の処理過程における信号の流れを以下説明する。
まず、図１の信号Ａ格納領域１０４に、当該信号処理装置の外部から信号Ａ、即ち本実施の形態１においては圧縮符号化信号の１フレーム分の信号が入力される。図４に示すように、第１の処理（１巡目）では、信号Ａ格納領域１０４に格納された信号Ａをデコード処理して、復号化信号を、信号Ｂ格納領域１に格納する。
【００５９】
その間に、図１の信号Ａ格納領域１０４には、次の処理単位の圧縮符号化信号が１フレーム分格納される。図４に示すように、第１の処理（２巡目）では、信号Ａ格納領域１０４に格納された信号Ａをデコード処理して、復号化信号を、信号Ｂ格納領域２に格納する。
【００６０】
以下同様に、第１の処理の出力信号は、１処理単位毎に、別のメモリ領域に書き出される。
【００６１】
図４に示す第２の処理（１巡目）では、信号Ｂ格納領域１に格納された信号Ｂに対して、ＳＢＲ処理を実行し、図１に示す信号Ｃ格納領域１０７に出力信号Ｃを書き出す。
【００６２】
図４に示す第２の処理（２巡目）では、信号Ｂ格納領域２に格納された信号Ｂに対して、ＳＢＲ処理を実行し、図１に示す信号Ｃ格納領域１０７に出力信号Ｃを書き出す。このように、第２の処理の入力信号は、１フレーム単位毎に、別のメモリ領域から読み出される。
【００６３】
このようにすることによって、第１の処理と第２の処理とのデータの依存関係、即ち、第１の処理の出力信号が第２の処理の入力信号でなければならない、という関係を維持したまま、第１の処理と第２の処理とを並列に実行できるようになるので、非常に短い時間間隔で第１の命令流１０８と第２の命令流１０９とを切り替えることが可能になり、Ｌｏａｄペナルティに代表される、プロセッサが被るペナルティを隠蔽することが可能となる。
【００６４】
ここで、信号Ｂを格納する領域を２つ（信号Ｂ格納領域１（１０５），信号Ｂ格納領域２（１０６））排他に設けているので、信号Ｂのデータ量は、できるだけ小さい方がよい。本実施の形態１では、信号Ｂは、ＡＡＣ部をデコードして得られる狭帯域の時間軸信号である。ＡＡＣ＋ＳＢＲ方式のデコードで得られる最終的な信号は、ＡＡＣ部をデコードして得られる信号の２倍の周波数帯域を有し、従って２倍のデータ量を有するものなので、信号Ｂを、ＡＡＣ部をデコードして得られる時間軸信号としているのは、信号Ｂのデータ量をできるだけ小さくする、という視点からも都合がよい。
【００６５】
上記のように、本実施の形態によれば、第１の命令流１０８と第２の命令流１０９とを格納する命令メモリ１００と、第１の命令流１０８と第２の命令流１０９とを処理するプロセッサ１０１と、データメモリ１０２と、第１の命令流１０８と第２の命令流１０９とを非常に短いサイクルＴ毎に切り替えてプロセッサ１０１に処理させるように制御する制御部１０３とを備えることによって、切り替えサイクルをプロセッサが被るペナルティ（例えばＬｏａｄペナルティ）より小さくすることで、ペナルティが隠蔽されるので、プロセッサ本来の性能を引き出すことができる。
【００６６】
なお、本実施の形態１では、信号Ｂを格納する領域を２つ排他に設けたが、ＡＡＣ＋ＳＢＲ方式のデコード過程に関しては、現実的な機器の設計においては、必ずしも明示的に２つ排他な領域を設ける必要がない場合もある。例えば、本実施の形態１では、第２の処理をＳＢＲ部の処理としたが、その場合、入力となるＰＣＭ信号は、ＳＢＲ部の処理の冒頭で、ＱＭＦ  Ａｎａｌｙｓｉｓ  Ｆｉｌｔｅｒ  Ｂａｎｋといわれる処理で、周波数帯域信号に変換され当該信号は別のメモリ領域に格納されるので、本実施の形態における信号Ｂ格納領域は、１フレーム分の信号Ｂを格納するための領域を、必ずしも２面持つ必要はない。それは、ＱＭＦ  Ａｎａｌｙｓｉｓ  Ｆｉｌｔｅｒ  Ｂａｎｋの処理が終了した時点で信号Ｂ格納領域を開放し、第１の処理が書き込み用として利用可能な状態にすればよいからである。
【００６７】
また、本実施の形態１では、第１の処理は、圧縮符号化信号をデコードして復号化信号を生成する復号化処理とし、第２の処理は、当該復号化信号を加工する処理としたが、必ずしもそれに限定されない。例えば、第１の処理は、圧縮符号化信号を復号化する過程の途中段階までの処理で、復号過程で生成される周波数軸の信号を生成するところまでの処理であり、第２の処理は、当該周波数軸の信号を時間軸信号に変換する処理であってもよい。また逆に、第１の処理は、時間軸信号を符号化する過程の途中段階までの処理で、符号化過程で生成される周波数軸の信号を生成するところまでの処理であり、第２の処理は、当該周波数軸の信号を圧縮符号化ビットストリームに変換する処理であってもよい。ここで、周波数軸の信号をできるだけ狭帯域な信号とすれば、信号Ｂを格納するためのメモリサイズが小さくてすむので信号Ｂを二重に持たなくてはならないコスト上のデメリットをできるだけ小さくできる。
【００６８】
例えば、以下のようなことである。時間軸信号を符号化する過程の途中段階で生成される周波数信号は、例えばＡＡＣ方式であれば、１０２４点のスペクトル信号であるが、必ずしも全部のスペクトル信号を最終的に符号化するわけではなく、高域のスペクトル信号は、圧縮符号化の際に捨てられる場合が多い。例えば、サンプリング周波数が４４．１ｋＨｚの２ｃｈ信号を１２８ｋｂｐｓのビットレートで圧縮符号化する場合、実質的な再生帯域を１７ｋＨｚ〜１８ｋＨｚ程度にすることが多い。即ち、１０２４点のスペクトル信号の全部を信号Ｂとする必要はなく、上記の例で言えば２０％程度は削減できることとなる。
【００６９】
また近年では、ＭＰＥＧオーディオにおけるパラメトリックステレオ方式のように、モノラル信号をステレオ信号に拡大する方式や、ＭＰＥＧサラウンド方式のように、モノラル、或いはステレオの信号を５．１ｃｈに拡大する方式などがあるが、これらの処理を本願に当てはめる場合、上記信号Ｂとして、チャネル数が拡大される前のモノラル信号（パラメトリックステレオ方式の場合）や、チャネル数が拡大される前のモノラル、或いはステレオ信号（ＭＰＥＧサラウンド方式の場合）とすれば、信号Ｂのデータ量が小さくてすむので、信号Ｂを二重に持たなくてはならないコスト上のデメリットをできるだけ小さくできる。
【００７０】
なお、本実施の形態１では、命令流は２本であったが、必ずしもそれに限定されない。例えば、図５に示されるように、連続する３つの命令流、即ち、第１の命令流５００、第２の命令流５０１、第３の命令流５０２であってもよい。図５は、第２の命令流５０１は、第１の命令流５００より処理が大きく、第３の命令流５０２は、第１の命令流５００より処理が小さいことを示している。そのような場合の、各命令流の流れについて図６を用いて説明する。
【００７１】
図６における第１の処理（１巡目）が終了後、第２の処理が実行可能なので、第１の処理と第２の処理とがＴサイクル毎に切り替えられながら処理される。その時、第２の処理が終了していないので、第３の処理は起動できず、従って、第１の処理（２巡目）が、第２の処理（１巡目）より早く終了しても、第２の処理（１巡目）が終了するまでは、第３の処理（１巡目）を起動できない。
【００７２】
第２の処理（１巡目）が終了すると、第３の処理（１巡目）か、第１の処理（３巡目）かが、第２の処理（２巡目）と並列に動作させられるので、そのいずれかを第２の処理（２巡目）とＴサイクル毎に切り替えながら処理する。図６では、第３の処理（１巡目）を第１の処理（３巡目）より先に処理しているが、第１の処理（３巡目）を第３の処理（１巡目）より先に処理してもよいことは言うまでもない。
【００７３】
このように命令流が２つ以上の複数であっても、本願技術によって、プロセッサが被るペナルティを適切に隠蔽できる。
【００７４】
なお、図７は、命令流を切り替える際に行われるコンテキストの入れ替え（ｃｏｎｔｅｘｔ  ｓｗｉｔｃｈ）を効率的に行うためのレジスタの使い方を示している。図７では一例として（且つ、説明の簡単化のために）２０個のレジスタが、処理のコンテキストを保持するために使われるとしている。
【００７５】
その中で、第１のレジスタ群７００は、第１の命令流１０８の処理におけるコンテキストを保持するために使われ、第２のレジスタ群７０１は、第２の命令流１０９の処理におけるコンテキストを保持するために使われるとする。この場合、コンテキストのスイッチの対象となるレジスタは、第１のレジスタ群７００と第２のレジスタ群７０１の重なりの部分（Ｃｏｎｔｅｘｔ  Ｓｗｉｔｃｈの対象レジスタ７０２）だけでよいこととなる。勿論、重なり合わないように即ち排他にレジスタを割り当てれば、コンテキストのスイッチにかかる処理量を少なくすることができる。
【００７６】
（実施の形態２）
以下本発明の実施の形態２における信号処理装置について図面を参照しながら説明する。
【００７７】
図８は、メモリのＬｏａｄペナルティに代表される、プロセッサが被るペナルティの様子を示している。図８（ａ）は、前述の実施の形態１におけるペナルティを示している。黒の四角形が有効な命令を示し、白の四角形がペナルティによって有効な命令が発行されていない命令サイクルを示している。図８（ａ）では、有効な命令の後で、所定のペナルティが生じている。図８（ｂ）は、図８（ａ）よりも大きなペナルティが生じる場合の様子を示している。実施の形態２では、図８（ｂ）のようなペナルティが生じる場合における、命令流の切り替えの頻度、即ちＴの値の最適な決定方法に関して述べる。
【００７８】
図９は、２つの命令流を、Ｔ＝１で切り替えている様子を示している。図から明らかなように、Ｔ＝１で切り替えても、そもそもペナルティＬが大きいので、ペナルティが隠蔽されていない。
【００７９】
一方、図１０は、２つの命令流を、Ｔ＝２で切り替えている様子を示している。Ｔ＝２であるが、有効な命令が発行される頻度は、Ｔ＝１の場合と変わらない。しかも、命令流の切り替えの頻度が少ないので、それに伴うコンテキストの切り替えの頻度が少なくてすむので、電力消費量の削減が期待できる。
【００８０】
図１１は、３つの命令流を、Ｔ＝１で切り替えている様子を示している。命令流が３つの場合、Ｔ＝１であっても、ペナルティが適切に隠蔽されている。上記のように、本実施の形態によれば、Ｎ個の命令流をＴサイクル毎に切り替えてプロセッサに処理させる場合、ペナルティＬがＮに対して大である場合、取り得る値の範囲でＴを大とし、ペナルティＬがＮに対して小である場合、取り得る値の範囲でＴを小とすることで、Ｔの値を適切に設定できるので、電力消費量を削減できることとなる。また、プロセッサの処理能力が、処理に必要な演算量より大きい場合、Ｔの値を大きくすることで、ペナルティを大きく受けるが、プロセッサの処理能力に納まる限りにおいては、Ｔの値を大きくして電力消費量を削減することができる。
【産業上の利用可能性】
【００８１】
本発明に係る信号処理装置は、オーディオ信号処理のような、処理順序に制約があるような処理であっても、並列演算化によって、プロセッサが被るペナルティを隠蔽でき、演算効率を高められるので、高速な信号処理が必要なＡＶ機器、例えばＤＶＤレコーダ、ＢＤレコーダ、テレビ受信機、高速エンコーダなどに応用できる。
【図面の簡単な説明】
【００８２】
【図１】本実施の形態１における信号処理装置の構成を示す図である。
【図２】第１の命令流１０８と第２の命令流１０９とが実行される順序を示す図である。
【図３】制御部によって第１の命令流１０８と第２の命令流１０９とがプロセッサに流し込まれる様子を示す図である。
【図４】各命令流に対する信号の入出力の流れを示す図である。
【図５】連続する３つの命令流が実行される順序を示す図である。
【図６】連続する３つの命令流がプロセッサに流し込まれる様子を示す図である。
【図７】コンテキストの入れ替えを効率的に行うためのレジスタの使い方を示す図である。
【図８】プロセッサが被るペナルティの様子を示す図である。
【図９】２つの命令流を、Ｔ＝１で切り替えている様子を示す図である。
【図１０】２つの命令流を、Ｔ＝２で切り替えている様子を示す図である。
【図１１】３つの命令流を、Ｔ＝１で切り替えている様子を示す図である。
【図１２】マルチスレッドプロセッサの動作を説明する図である。
【図１３】Ｌｏａｄペナルティを説明する図である。
【図１４】動作周波数が向上したプロセッサを用いて従来のマルチスレッドの信号処理を実施した場合の問題点を示す図である。
【図１５】マルチスレッデドパイプラインの技術を説明する図である。
【図１６】処理の前後関係のあるプログラムをペナルティのないプロセッサで処理している様子を示す図である。
【図１７】処理の前後関係のあるプログラムをペナルティのあるプロセッサで処理している様子を示す図である。
【符号の説明】
【００８３】
１００  命令メモリ
１０１  プロセッサ
１０２  データメモリ
１０３  制御部
１０４  信号Ａ格納領域
１０５  信号Ｂ格納領域１
１０６  信号Ｂ格納領域２
１０７  信号Ｃ格納領域
１０８、５００  第１の命令流
１０９、５０１  第２の命令流
５０２  第３の命令流
７００  第１のレジスタ群
７０１  第２のレジスタ群
７０２  Ｃｏｎｔｅｘｔ  Ｓｗｉｔｃｈの対象レジスタ
【図１】
2008146471.tif 000003
【図２】
2008146471.tif 000004
【図３】
2008146471.tif 000005
【図４】
2008146471.tif 000006
【図５】
2008146471.tif 000007
【図６】
2008146471.tif 000008
【図７】
2008146471.tif 000009
【図８】
2008146471.tif 000010
【図９】
2008146471.tif 000011
【図１０】
2008146471.tif 000012
【図１１】
2008146471.tif 000013
【図１２】
2008146471.tif 000014
【図１３】
2008146471.tif 000015
【図１４】
2008146471.tif 000016
【図１５】
2008146471.tif 000017
【図１６】
2008146471.tif 000018
【図１７】
2008146471.tif 000019