(57)【要約】【課題】複数のプロセッサを並列動作させて復号処理を行う画像復号装置において、プロセッサのアイドル時間を低減し、より高速に圧縮画像を復号可能な画像復号装置を提供する。【解決手段】  画像復号装置は、入力信号を所定データ単位（例えば、１フレーム）毎に復号する複数の復号手段（１０８、１０９）と、入力信号の復号処理を、処理順序の依存関係を有する複数の処理ステップに分割し、復号手段で処理するデータ単位を処理ステップ毎に割り当てる、タスク制御手段（１０５）とを備える。タスク制御手段（１０５）は、復号手段（１０８、１０９）の処理状況を検出し、その処理状況と、処理ステップ間の依存関係とに応じて、処理されるデータ単位及び処理ステップを復号手段（１０８、１０９）に割り当てる。【選択図】図１
2010041352.tif 000002
【特許請求の範囲】
【請求項１】
圧縮された画像ストリームを入力信号とし、前記入力信号を復号する画像復号装置であって、
前記入力信号を所定のデータ単位毎に復号する、複数の復号手段と、
前記入力信号の復号処理を、処理順序の依存関係を有する複数の処理ステップに分割し、前記復号手段で処理すべきデータ単位を処理ステップ毎に割り当てる、タスク制御手段とを備え、
前記タスク制御手段は、前記復号手段の処理状況を検出し、その処理状況と、処理ステップ間の依存関係とに応じて、処理されるデータ単位及び処理ステップを前記復号手段に割り当てる、
ことを特徴とする画像復号装置。
【請求項２】
前記タスク制御手段は、さらに前記画像ストリームに含まれるフレーム間の依存関係を考慮して、処理されるデータ単位及び処理ステップを前記復号手段に割り当てる、
ことを特徴とする請求項１記載の画像復号装置。
【請求項３】
前記フレーム間の依存関係とは、他のフレームを参照するか否か、また、他のフレームから参照され得るか否かの関係である、請求項１記載の画像復号装置。
【請求項４】
フレーム間の依存関係及び処理ステップ間の依存関係を考慮し、優先的に処理すべきデータ単位の順序を規定した優先度情報をさらに備え、
前記タスク制御手段は前記優先度情報を参照して、処理されるデータ単位及び処理ステップを前記復号手段に割り当てる、ことを特徴とする請求項２記載の画像復号装置。
【請求項５】
前記複数の処理ステップは、入力されたバイトストリームから差分画像を作成するのに必要な係数データと、予測画像を作成するのに必要な予測モードや動きベクトルなどの予測データを復号する算術復号ステップと、
係数データに対して逆量子化や逆離散コサイン変換などを施すことによって差分画像を作成する処理差分画像作成ステップと、
予測データと参照に必要な復号画像から予測画像を作成し、予測画像と差分画像を合わせて復号画像を作成する復号画像作成ステップとを含む、請求項１記載の画像復号装置。
【請求項６】
前記所定のデータ単位はフレームまたはスライスであることを特徴とする請求項１記載の画像復号装置。
【請求項７】
前記画像ストリームの符号化方式がＨ．２６４である、請求項１記載の画像復号装置。
【請求項８】
圧縮された画像ストリームを入力信号として入力するステップと、
前記入力した入力信号の復号処理を、処理順序の依存関係を有する複数の処理ステップに分割するステップと、
複数の復号手段において、前記入力信号を所定のデータ単位毎に前記処理ステップ単位で復号処理を実行させるステップと、
前記復号手段の処理状況を検出し、検出した処理状況と処理ステップ間の依存関係とに応じて、前記復号手段において処理される、データ単位及び処理ステップを決定するステップと
を含む、ことを特徴とする画像復号方法。
【請求項９】
圧縮された画像ストリームを入力信号とし、前記入力信号を復号する画像復号装置の制御プログラムであって、
圧縮された画像ストリームを入力信号として入力する手順と、
前記入力した入力信号の復号処理を、処理順序の依存関係を有する複数の処理ステップに分割する手順と、
複数の復号手段において、前記入力信号を所定のデータ単位毎に前記処理ステップ単位で復号処理を実行させる手順と、
前記復号手段の処理状況を検出し、検出した処理状況と処理ステップ間の依存関係とに応じて、前記復号手段において処理される、データ単位及び処理ステップを決定する手順とを画像復号装置の制御手段に実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像圧縮ストリームを高速に復号する画像復号装置及び方法に関する。
【背景技術】
【０００２】
従来、MPEG２やH.264/AVCなどを用いて圧縮された画像ストリームを高速に復号化する手法として、複数のプロセッサを用いて復号する際に、復号処理をスライス毎に分割して各プロセッサに割り当て、並列に処理する手法が一般的に知られている。しかし、この手法は１フレームが複数のスライスに分割されていなければ適用できず、１フレームが複数のスライスに分割されていない場合は、フレーム毎に復号処理を分割し、各プロセッサで並列に処理する手法が用いられる。
【０００３】
一方、圧縮されたフレーム間には依存関係が存在する場合がある。例えば、MPEG2規格において、Ｉフレームは他のフレームに依存せず単独で復号可能であるが、ＰフレームはＩフレームを参照して復号され、ＢフレームはＩフレームやＰフレームを参照して復号される。すなわち、圧縮されたフレームは、復号処理時での他のフレームとの依存関係にしたがいグループ分けすることができる。
【０００４】
例えば、グループＡ、グループＢ、グループＣの３グループに分類できる。グループＡには、例えば、Ｉフレームのような、他のフレームを参照しないフレームが属する。グループＢには、例えば、Ｐフレームのような、他のフレームを参照し、また、他のフレームから参照され得るフレームが属する。グループＣには、例えば、Ｂフレームのような、他のフレームを参照するが、他のフレームからは参照されることがないフレームが属する。
【０００５】
つまり、グループＡに属するフレームは、どのグループのフレームの復号結果にも依存しないが、グループＢに属するフレームは、グループＡに属するフレームの復号結果に依存し、参照するフレームが復号されていない限り復号することが出来ない。また、グループＣに属するフレームも、グループＡやグループＢに属するフレームの復号結果に依存し、参照するフレームが復号されていない限り復号することが出来ない。
【０００６】
よって、グループＣに属するフレーム同士では依存関係が無いため、それぞれのフレームの復号処理は並列して行える。しかし、グループＡに属するフレームの復号処理と、そのフレームに依存するフレームの復号処理とは並列して行うことができない。このため、１つのプロセッサが、そのような並列化できない処理を行っている間は、他のプロセッサは、処理待ちの状態であるアイドル状態になってしまう。
【０００７】
依存関係のあるフレームを復号するために、各フレームの依存関係に応じて各プロセッサが行う並列処理の分担を決定する画像復号方法（特許文献１参照）が提案されている。また、双方向予測符号化されたフレームを復号する際には、１フレームを複数のスライスに分けて並列処理し、それ以外の方式で符号化されたフレームはフレーム毎に並列処理を行うという画像復号方法（特許文献２参照）なども提案されている。このような方法で、プロセッサのアイドル時間を低減している。
【０００８】
【特許文献１】特開２０００−２９５６１６号公報
【特許文献２】特開２００５−１７５９９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記のような従来の画像復号方法を用いた場合でも、プロセッサが長い時間アイドル状態になる場合がある。以下、図８を参照しこのような例を説明する。
【００１０】
図８の例では４つのプロセッサを並列に用いて復号処理を行う場合を考える。復号するフレームはフレーム０からフレーム５までの計６フレームとし、１フレームは１スライスで構成されている。フレーム０は、他のフレームの復号結果に依存しないフレームが属するグループＡに属する。フレーム３は、他のフレームを参照し、また、他のフレームから参照され得るフレームが属するグループＢに属し、フレーム０を参照する。フレーム１、２、４、５は、他のフレームを参照するが、他のフレームからは参照されることがないフレームが属するグループＣに属し、フレーム０とフレーム３を参照する。各フレームの復号処理に掛かる時間は等しいとする。
【００１１】
フレーム１からフレーム５はフレーム０を参照するため、フレーム０の復号処理が完了するまではそれらのフレームの復号処理を開始することが出来ない。その結果、フレーム０を復号している間は、４つのプロセッサの内の３つがアイドル状態になる。フレーム０の復号処理が終了後、フレーム３の復号が可能となる。ここで、フレーム１、２、４、５は、フレーム３を参照するため、フレーム３の復号処理が完了するまでは、それらのフレームに対する復号処理を開始することが出来ない。そのため、フレーム３を復号している間、４つのプロセッサの内の３つがアイドル状態になる。フレーム３の復号処理が完了した後は、フレーム１、２、４、５の並列処理が可能となる。このように、処理全体に要する時間の５０％はアイドル時間となる。つまり、プロセッサの能力を５０％しか活用できていないという問題がある。
【００１２】
本発明は、上記問題を解決すべくなされたものであり、その目的とするところは、複数のプロセッサを並列動作させる復号処理において、プロセッサがアイドル状態になっている時間を低減し、より高速に圧縮画像を復号できる画像復号装置を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の第１の態様において、圧縮された画像ストリームを入力信号とし、前記入力信号を復号する画像復号装置が提供される。
画像復号装置は、入力信号を所定のデータ単位で復号する、複数の復号手段と、入力信号の復号処理を、処理順序の依存関係を有する複数の処理ステップに分割し、復号手段で処理すべきデータ単位を処理ステップ毎に割り当てる、タスク制御手段とを備える。タスク制御手段は、復号手段の処理状況を検出し、その処理状況と、処理ステップ間の依存関係とに応じて、処理されるデータ単位及び処理ステップを復号手段に割り当てる。
【００１４】
本発明の第２の態様において、圧縮された画像ストリームを入力信号として入力するステップと、入力した入力信号の復号処理を、処理順序の依存関係を有する複数の処理ステップに分割するステップと、複数の復号手段において、入力信号を所定のデータ単位毎に前記処理ステップ単位で復号処理を実行させるステップと、復号手段の処理状況を検出し、検出した処理状況と処理ステップ間の依存関係とに応じて、復号手段において処理される、データ単位及び処理ステップを決定するステップとを含む、画像復号方法が提供される。
【００１５】
本発明の第３の態様において、圧縮された画像ストリームを入力信号とし、入力信号を復号する画像復号装置の制御プログラムが提供される。制御プログラムは、圧縮された画像ストリームを入力信号として入力する手順と、入力した入力信号の復号処理を、処理順序の依存関係を有する複数の処理ステップに分割する手順と、複数の復号手段において、入力信号を所定のデータ単位毎に処理ステップ単位で復号処理を実行させる手順と、復号手段の処理状況を検出し、検出した処理状況と処理ステップ間の依存関係とに応じて、復号手段において処理される、データ単位及び処理ステップを決定する手順とを画像復号装置の制御手段に実行させる。
【発明の効果】
【００１６】
本発明によれば、複数のプロセッサを使って画像復号処理を並列して行う際のアイドル時間を低減でき、圧縮画像の復号処理の高速化が図れる。
【発明を実施するための最良の形態】
【００１７】
以下、添付の図面を参照し、本発明の実施形態を説明する。
【００１８】
（実施の形態１）
本実施の形態における画像復号装置は、例えばH.264のような符号化方式で圧縮された映像のバイトストリームを入力し、デジタル画像を復号して出力する。
【００１９】
１  画像復号装置の構成
図１に本実施の形態における画像復号装置の構成を示す。画像復号装置１０１は、入力端子１０２を介してバイトストリームを入力し、復号して得られたデジタル画像を出力端子１０３を介して出力する。
【００２０】
画像復号装置１０１において、ストリームバッファ１０４は、入力されたバイトストリームをバッファリングする。第１及び第２の復号部（以下単に「復号部」と称す。）１０８、１０９は、スライス単位で画像復号処理を行う。第１の復号部１０８と第２の復号部１０９により並列処理が可能となっている。タスク制御部１０５は復号部１０８、１０９で実行され復号処理を、復号処理のステップ（後述）とスライスの種類に基づき制御する。中間バッファ１０６は、復号処理中において生成される係数データと予測データと差分画像とを保持する。フレームバッファ１０７は、最終的に得られる復号画像を保持する。なお、タスク制御部１０５と復号部１０８、１０９の詳細については後述する。
【００２１】
１．１  画像復号処理のステップとスライスタイプ
本実施形態における画像復号装置では、１フレームに対する復号処理を、算術復号処理、差分画像作成処理及び復号画像作成処理の３つのステップ（段階）に分割する。
【００２２】
算術復号処理は、入力されたバイトストリームから差分画像を作成するのに必要な係数データと、予測画像を作成するのに必要な予測モードや動きベクトルなどの予測データを復号する処理とする。この処理は、フレーム間やステップ間での依存関係が無い。
【００２３】
差分画像作成処理は、係数データに対して逆量子化や逆離散コサイン変換などを施すことによって差分画像を作成する処理である。この処理にはフレーム間の依存関係は無いが、算術復号処理によって必要な係数データが復号されている必要があるため、ステップ間の依存関係がある。
【００２４】
復号画像作成処理は、予測データと参照に必要な復号画像から予測画像を作成し、予測画像と差分画像を合わせて復号画像を作成する。この処理は、算術復号処理によって必要な予測データが復号されていること、差分画像作成処理によって必要な差分画像が作成されていること、参照が必要な場合には必要となる復号画像が作成されていることが必要となる。従って、フレーム間にもステップ間にも依存関係がある。
【００２５】
さらに、スライスをフレーム間の依存関係に基づき３種類に分類する。前述したように、他のフレームを参照しないフレームが属するグループＡに属しているフレームを構成するスライスの種類を「スライスＡ」と称す。他のフレームを参照し、また、他のフレームから参照され得るフレームが属するグループＢに属しているフレームを構成するスライスの種類を「スライスＢ」と称す。他のフレームを参照するが、他のフレームからは参照されることがないグループＣに属しているフレームを構成するスライスの種類を「スライスＣ」と称す。
【００２６】
１．２  タスク制御部
タスク制御部１０５には復号部１０８、１０９が接続されている。復号部１０８、１０９はそれぞれ待機状態と処理状態の２つの状態をとり得る。また、タスク制御部１０５は、復号部１０８、１０９で実行される復号処理されるタスクを管理するためのタスクリスト１５を内部に保持する。タスクリスト１５は、復号パラメータセットを１つの要素として管理する。復号パラメータセットは復号処理に必要なパラメータの組であって、具体的には以下の情報を含む。
・スライスタイプ（スライスの種類を示す情報）
・タスク（復号部で実行する復号処理のステップの種類を示す情報）
・スライスデータポインタ
（ストリームバッファ１０４上のスライスデータの格納位置を示す情報）
・係数データポインタ
（中間バッファ１０６上の係数データの格納位置を示す情報）
・予測データポインタ
（中間バッファ１０６上の予測データの格納位置を示す情報）
・差分画像ポインタ
（中間バッファ１０６上の差分画像の格納位置を示す情報）
【００２７】
図２（ａ）にタスクリスト１５の例を示す。タスクリスト１５は、パラメータセットに加えて、そのパラメータセット特定する要素番号と、そのパラメータセットの処理に対する優先度とを関連づけて管理する。
【００２８】
また、タスク制御部１０５は優先度テーブル１６を有する。図２（ｂ）に優先度テーブル１６の例を示す。優先度テーブル１６は、復号処理における各ステップの優先度をスライスタイプに応じて規定するものである。前述のように、ステップ間の依存関係により、算術復号処理、差分画像作成処理、復号画像作成処理の順で優先的に処理される必要がある。また、フレーム間の依存関係から、スライスタイプＡ、スライスタイプＢ、スライスタイプＣの順に優先的に処理される必要がある。優先度テーブル１６は、このようなステップ間及びフレーム間の依存関係を考慮して、各ステップの優先度をスライスタイプに応じて規定している。
【００２９】
タスク制御部１０５は複数の状態をとり得る。図３にタスク制御部１０５の状態遷移を示す。同図に示すように、タスク制御部１０５は、初期状態、ストリーム解析状態、タスク割当状態、タスク完了待ち状態、及びタスク追加状態の５状態を有する。以下、タスク制御部１０５の各状態について説明する。
【００３０】
初期状態では、タスクリスト１５の要素数は０に設定されている。ストリームバッファ１０４から必要なバイトストリームが読み出せるようになると、初期状態からストリーム解析状態に遷移する。
【００３１】
ストリーム解析状態では、タスク制御部１０５はストリームバッファ１０４から読み出したバイトストリームを先頭から探索し、バイトストリームに含まれる全てのスライスを検出する。スライスを検出する毎に、新しい復号パラメータセットをタスクリスト１５に追加する。新しい復号パラメータセットにおいては、スライスタイプは、検出したスライスの種類に、タスクは算術復号処理に、スライスデータポインタは、検出したスライスのデータの開始位置にそれぞれ設定される。読み出したバイトストリームを全て探索し、全ての復号パラメータセットをタスクリスト１５に追加すると、タスク割当状態に遷移する。
【００３２】
タスク割当状態において、タスクリスト１５の要素数が０の場合は、初期状態に遷移する。そうでない場合、まず、図２に示す優先度テーブル１６を参照して、タスクリスト１５に含まれる各復号パラメータセットの優先度を決定する。そして、タスク制御部１０５は、復号部１０８、１０９が双方とも待機状態である場合、優先度の最も高い復号パラメータセットを第１の復号部１０８に出力し、優先度が２番目に高い復号パラメータセットを第２の復号部１０９に出力し、その後、タスク完了待ち状態に遷移する。また、復号部１０８、１０９のいずれか一方が待機状態である場合、タスク制御部１０５は、優先度の最も高い復号パラメータセットを、待機状態にある復号部に出力し、タスク完了待ち状態に遷移する。
【００３３】
但し、タスクリスト１５内に優先度が同じ復号パラメータセットが複数存在する場合は、タスクリストに追加された順番がより早いものを優先する。また、スライスタイプがスライスＢであり、かつタスクが復号画像作成処理である復号パラメータセットは、スライスＡの復号画像作成処理が完了していない場合には、復号部１０８、１０９に出力されない。またスライスタイプがスライスＣであり、かつタスクが復号画像作成処理である復号パラメータセットは、スライスＢの復号画像作成処理が完了していない場合には、復号部１０８、１０９に出力されない。これらの場合には、次に優先度が高い復号パラメータセットが復号部１０８、１０９に出力される。
【００３４】
タスク完了待ち状態では、第１の復号部１０８または第２の復号部１０９から復号パラメータセットが入力されるまで待機する。第１の復号部１０８または第２の復号部１０９から復号パラメータセットが入力されると、タスク追加状態に遷移する。タスク完了待ち状態以外の状態において、入力されたタスクリストの復号パラメータセットは、待ち行列に入り、次にタスク制御部１０５がタスク完了待ち状態に遷移した際に処理される。
【００３５】
タスク追加状態では、タスク制御部１０５は、入力された復号パラメータセットに含まれる”タスク”が復号画像作成処理の場合は、何もせずにタスク割当状態に遷移する。それ以外の場合には、タスク制御部１０５は、タスクリストに新しい復号パラメータセットを要素として追加し、タスク割当状態に遷移する。入力された復号パラメータセットに含まれる”タスク”が算術復号処理の場合には、新しい復号パラメータセットにおいて、”タスク”を、差分画像作成処理に設定し、差分画像作成処理の場合には、”タスク”を、復号画像作成処理に設定する。新しい復号パラメータセットに含まれる”タスク”以外の情報は、入力された復号パラメータセットのものと同じにする。
【００３６】
１．３  復号部
復号部１０８、１０９は、待機状態と処理状態の２つの状態を有する。初期状態は待機状態である。待機状態は、復号パラメータセットが入力されるのを待っている状態である。復号パラメータセットが入力されると、復号部１０８、１０９は待機状態から処理状態に遷移する。処理状態では、入力された復号パラメータセットに含まれるタスクによって、復号部１０、１０９の動作が変わる。以下、タスクにより異なる、処理状態での動作を説明する。
【００３７】
タスクが算術復号処理の場合、復号部１０８、１０９は、入力された復号パラメータセットに含まれるスライスデータポインタが示すストリームバッファ１０４上のアドレスからバイトストリームを読み出して、係数データと予測データを復号し、中間バッファ１０６に書き込む。続いて、復号部１０８、１０９は、新しい復号パラメータセットを出力し、待機状態に遷移する。新しい復号パラメータセットにおいて、係数データポインタと予測データポインタは、それぞれ中間バッファ１０６に書き込んだ係数データと予測データへのポインタに設定し、係数データポインタと予測データポインタ以外の情報は、入力された復号パラメータセット内のものと同じに設定する。
【００３８】
タスクが差分画像作成処理の場合、復号部１０８、１０９は、入力された復号パラメータセットに含まれる係数データポインタが示す中間バッファ１０６上のアドレスから係数データを読み出して、差分画像を作成し、中間バッファ１０６に書き込む。続いて、復号部１０８、１０９は、新しい復号パラメータセットを出力し、待機状態に遷移する。新しい復号パラメータセットにおいて、差分画像ポインタは中間バッファ１０６に書き込んだ差分画像へのポインタに設定し、差分画像ポインタ以外の情報は、入力された復号パラメータセット内のものと同じに設定する。
【００３９】
タスクが復号画像作成処理の場合、復号部１０８、１０９は、入力された復号パラメータセットに含まれる予測データポインタが示す中間バッファ１０６上のアドレスから予測データを読み出す。次に、復号部１０８、１０９は、読み出した予測データを基にフレームバッファ１０７から予測画像作成に必要で既に復号されている復号画像を読み出し、この復号画像に、中間バッファ１０６から読み出した差分画像を合わせて復号画像を作成する。作成された復号画像は、フレームバッファ１０７に書き込まれる。続いて、復号部１０８、１０９は、入力された復号パラメータセットをそのまま出力し、待機状態に遷移する。
【００４０】
２  並列復号動作
以上のように構成された本実施形態の画像復号装置１０１の復号動作を説明する。なお、以下の説明では、次の点を前提としている。画像復号装置１０１は、図４に示すような、Ｉフレーム、Ｂフレーム、Ｂフレーム、Ｐフレーム、Ｂフレーム、Ｂフレームの順に６個のフレームを含む１つのＧＯＰ（Group of Pictures）からなるバイトストリームを入力し、全てのフレームを復号する。また、各フレームは１スライスで構成されている。図４のＧＯＰには、スライスＡが１個、スライスＢが１個、スライスＣが４個含まれている。また、全ての被参照画像は同じＧＯＰに含まれている。
【００４１】
画像復号装置１０１において、入力端子１０２を介して入力されたバイトストリームは、ストリームバッファ１０４に書き込まれる。これにより復号するバイトストリームがストリームバッファ１０４から読み出せるようになり、タスク制御部１０５は初期状態からストリーム解析状態に遷移する。
【００４２】
ストリーム解析状態では、タスク制御部１０５は、ストリームバッファ１０４からバイトストリームを読み出して解析し、タスクリスト１５に新しい復号パラメータセットを追加し、タスク割当状態に遷移する。この状態での、タスクリスト１５の状態を図５Ａに示す。なお、図５Ａでは、説明の便宜上、復号パラメータセットの順番を示す要素番号と、各復号パラメータセットに含まれるスライスタイプとタスク、及び各復号パラメータセットの優先度のみが示されている（以下の図５Ｂ〜図５Ｇにおいても同様）。各復号パラメータセットのスライスデータポインタを、各スライスのデータ開始位置とする。
【００４３】
タスク割当状態では、タスク制御部１０５は、タスクリスト１５内で優先度が最も高い復号パラメータセット（本例では、Ｅ１）を第１の復号部１０８に出力し、優先度が２番目に高いパラメータセット（本例では、Ｅ４）を第２の復号部１０９に出力する。次に、タスク制御部１０５は、出力した２つの復号パラメータセットをタスクリスト１５から削除し、タスク完了待ち状態に遷移する。
【００４４】
第１の復号部１０８及び第２の復号部１０９には、復号パラメータセットが入力され、待機状態から処理状態に遷移する。
【００４５】
処理状態において、復号部１０８、１０９は、入力された復号パラメータセットを参照して算術復号処理を行い、その後、タスク制御部１０５に復号パラメータセットを出力して待機状態に遷移する。出力する復号パラメータセットにおいて、係数データポインタと予測データポインタは、それぞれ算術復号処理で得られた係数データと予測データへのポインタとなる。ここでは第１の復号部１０８が先に処理を完了して復号パラメータセットを出力し、第２の復号部１０９はその直後に復号パラメータセットを出力したとする。
【００４６】
タスク制御部１０５には、まず第１の復号部１０８から復号パラメータセットが入力され、タスク追加状態に遷移する。入力された復号パラメータセットの”タスク”は、算術復号処理であるため、”タスク”以外の情報は、入力された復号パラメータセット内のものと同じである。よって、”タスク”に差分画像作成処理を設定した新しい復号パラメータセットをタスクリスト１５に追加し、タスク割当状態に遷移する。この時点でのタスクリスト１５を図５Ｂに示す。図５Ｂに示すように、タスク割当状態において、最も優先度が高い復号パラメータセットはＥ７であるため、第１の復号部１０８にＥ７を出力し、タスクリストからＥ７を削除する。その後、タスク制御部１０５は、タスク完了待ち状態に遷移する。
【００４７】
次に、第２の復号部１０９から復号パラメータセットが入力されると、タスク制御部１０５は、再びタスク追加状態に遷移する。タスク追加状態では、同様にして新しい復号パラメータセットをタスクリスト１５に追加し、再びタスク割当状態に遷移する。この時のタスクリスト１５を図５Ｃに示す。最も優先度が高いＥ８を第２の復号部１０９に出力し、タスクリスト１５からＥ８を削除する。その後、タスク完了待ち状態に遷移する。
【００４８】
第１及び第２の復号部１０８、１０９はそれぞれ、タスク制御部１０５から復号パラメータセットを入力すると、再び処理状態になる。入力された復号パラメータセットを参照し、差分画像作成処理を行い、その後、タスク制御部１０５に新しい復号パラメータセットを出力して待機状態に遷移する。新しい復号パラメータセットにおける、差分画像ポインタは差分画像作成処理で得られた差分画像へのポインタとなる。ここでは第１の復号部１０８が先に処理を完了して新しい復号パラメータセットを出力し、第２の復号部１０９はその直後に新しい復号パラメータセットを出力したとする。
【００４９】
タスク制御部１０５は、まず第１の復号部１０８から復号パラメータセットを入力し、タスク追加状態に遷移する。入力された復号パラメータセットの”タスク”は差分画像作成処理を示すため、タスク以外の情報は、入力された復号パラメータセット内のものと同じである。”タスク”に復号画像作成処理を設定した新しい復号パラメータセットをタスクリストに追加し、タスク割当状態に遷移する。この時のタスクリストを図５Ｄに示す。図５Ｄに示すように、タスク割当状態において、最も優先度が高い復号パラメータセットはＥ９であるため、第１の復号部１０８にＥ９を出力し、タスクリストからＥ９を削除する。その後タスク完了待ち状態に遷移する。
【００５０】
次に、第２の復号部１０９から復号パラメータセットが入力されると、タスク制御部１０５は、再びタスク追加状態に遷移する。同様にして新しい復号パラメータセットをタスクリスト１５に追加し、タスク割当状態に遷移する。この時のタスクリストは図５Ｅに示すようになっている。最も優先度が高い復号パラメータセットはＥ１０である。一方、スライスＢの復号画像作成処理はスライスＡの復号画像作成処理が完了していないと実行できない。このため、次に優先度が高く、タスクリストに追加された順番が早いE２を第２の復号部１０９に出力し、タスクリストからＥ２を削除する。その後タスク完了待ち状態に遷移する。
【００５１】
ここで、第１の復号部１０８は、復号パラメータセットが入力されると、再び処理状態になる。第１の復号部１０８は、入力された復号パラメータセットを参照して復号画像作成処理を行い、その後、タスク制御部１０５に対して、入力された復号パラメータセットをそのまま出力し、待機状態に遷移する。
【００５２】
第２の復号部１０９にも、復号パラメータセットが入力され、再び処理状態になる。入力された復号パラメータセットを参照して算術復号処理を行い、その後、タスク制御部１０５にタスクリスト１５に、新しい復号パラメータセットを出力して待機状態に遷移する。新しい復号パラメータセットの係数データポインタと予測データポインタは、算術復号処理の結果を格納したデータへのポインタとなる。新しい復号パラメータセットは、第１の復号部１０８が復号パラメータセットを出力した後に出力されたとする。
【００５３】
タスク制御部１０５に、まず第１の復号部１０８から復号パラメータセットが入力されると、タスク制御部１０５はタスク追加状態に遷移する。入力した復号パラメータセットの”タスク”は”復号画像作成処理”であるため、何もせずにタスク割当状態に遷移する。この時のタスクリスト１５は図５Ｆに示すようになる。このときのタスク割当状態において、最も優先度が高い復号パラメータセットはＥ１０であり、スライスＡの復号画像作成処理は既に完了しているため、タスク制御部１０５は、第１の復号部１０８にＥ１０を出力し、タスクリスト１５からＥ１０を削除する。その後、タスク完了待ち状態に遷移する。
【００５４】
次に、タスク制御部１０５は、第２の復号部１０９から復号パラメータセットが入力され、再びタスク追加状態に遷移する。同様にして新しい復号パラメータセットをタスクリストに追加し、タスク割当状態に遷移する。この時のタスクリスト１５は図５Ｇに示すようになる。最も優先度が高い復号パラメータセットはＥ３、Ｅ５、Ｅ６の３個存在する。かかる場合は、タスク制御部１０５は、タスクリスト１５に最も先に登録されたＥ３を第２の復号部１０９に出力し、タスクリスト１５からＥ３を削除する。その後、タスク完了待ち状態に遷移する。
【００５５】
以降同様にしてスライスＣの復号処理を繰り返し、１ＧＯＰの復号を完了し、出力端子１０３から出力する。
【００５６】
以上の方法により、グループＡに属するフレームの復号処理が完了する前にでも、グループＢに属するフレームやグループＣに属するフレームの復号処理を開始することができ、復号部（プロセッサ）のアイドル時間を低減することが出来る。
【００５７】
なお、本実施の形態では復号部の数を２として説明したが、３以上でも構わない。また、本実施の形態では、１フレームに含まれるスライスの数を１として説明したが、２以上でも構わない。
【００５８】
また、本実施の形態では１ＧＯＰ全部を復号する例を挙げているが、ストリームバッファ１０４が必要バイトストリームしかバッファリングしない、またはタスク制御部１０５が必要の無い復号パラメータセットを出力しないようにしてもよい。これにより、任意の１フレームを復号することも出来る。また、複数のＧＯＰをまとめて復号することも可能となる。
【００５９】
（実施の形態２）
本実施の形態にかかる画像復号装置は、例えばH.264のような符号化方式で圧縮された映像のバイトストリームを入力とし、復号されたデジタル画像を出力する。図６に、本実施の形態における画像復号装置の構成を示す。また、本実施の形態においても、実施の形態１と同様に、１フレームの復号処理を算術復号処理、差分画像作成処理、復号画像作成処理の３ステップに分割する。
【００６０】
画像復号装置２０１は、実施の形態１に記載の画像復号装置１０１と同様の機能を持っており、入力端子２０２からバイトストリームを入力し、出力端子２０３からデジタル画像を出力する。ストリームバッファ２０４、タスク制御部２０５、中間バッファ２０６、フレームバッファは、それぞれ実施の形態１で説明した、ストリームバッファ１０４、タスク制御部１０５、中間バッファ１０６及びストリームバッファ１０４と同様に動作する。また、第１の復号部２０８から第４の復号部２１１は、実施の形態１に記載の第１の復号部１０８及び第２の復号部１０９と同様に動作する。
【００６１】
図７に、本実施の形態において、第１から第４の各復号部２０８〜２１１が処理するフレーム及びステップを示す。同図におけるカッコ内の数字に関して、カッコ内の前の数字は、処理対象のフレームのフレーム番号を示しており、後ろの数字は、復号処理におけるステップを示している。復号処理におけるステップは、算術復号処理を「０」、差分画像作成処理を「１」、復号画像作成処理を「２」としている。例えば、第１の復号部２０８が最初に行う処理について、図中、(0,0)と示しており、これは、”フレーム０”の”算術復号処理”であることを示している。図８の従来の場合と比較してみると、復号部がアイドル状態にある時間が大幅に低減されており、処理全体に要する時間も低減されていることが理解できる。
【００６２】
なお、実施の形態１、２で説明した画像復号装置の機能は、電子回路等のハードウェアで実現してもよいし、ＣＰＵのようなコンピュータと制御プログラム（ソフトウェア）の組み合わせで実現してもよい。
【産業上の利用可能性】
【００６３】
本発明の画像復号装置によれば、フレーム間に依存関係がある場合でも、プロセッサのアイドル時間を短くすることができ、復号処理を高速に行うことができるため、マルチプロセッサ上で動作するソフトデコーダ等において有効である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態１における画像復号装置のブロック図
【図２】（ａ）タスクリストの構成を示す図、及び（ｂ）スライスタイプ毎のタスクの優先度を管理する優先度テーブルを示す図
【図３】タスク制御部の状態遷移図
【図４】画像復号装置に入力されるバイトストリームの一例を示した図
【図５Ａ】タスクリストの変化を説明するための図（その１）
【図５Ｂ】タスクリストの変化を説明するための図（その２）
【図５Ｃ】タスクリストの変化を説明するための図（その３）
【図５Ｄ】タスクリストの変化を説明するための図（その４）
【図５Ｅ】タスクリストの変化を説明するための図（その５）
【図５Ｆ】タスクリストの変化を説明するための図（その６）
【図５Ｇ】タスクリストの変化を説明するための図（その７）
【図６】本発明の実施の形態２における画像復号装置のブロック図
【図７】実施の形態２において、各復号部が処理するフレーム及びステップを説明した図
【図８】従来の並列復号処理において各プロセッサが復号処理するフレームを説明した図
【符号の説明】
【００６５】
１５  タスクリスト
１６  優先度テーブル
１０１、２０１  画像復号装置
１０２、２０２  入力端子
１０３、２０３  出力端子
１０４、２０４  ストリームバッファ
１０５、２０５  タスク制御部
１０６、２０６  中間バッファ
１０７、２０７  フレームバッファ
１０８、１０９、２０８〜２１１  復号部
【図１】
2010041352.tif 000003
【図２】
2010041352.tif 000004
【図３】
2010041352.tif 000005
【図４】
2010041352.tif 000006
【図５Ａ】
2010041352.tif 000007
【図５Ｂ】
2010041352.tif 000008
【図５Ｃ】
2010041352.tif 000009
【図５Ｄ】
2010041352.tif 000010
【図５Ｅ】
2010041352.tif 000011
【図５Ｆ】
2010041352.tif 000012
【図５Ｇ】
2010041352.tif 000013
【図６】
2010041352.tif 000014
【図７】
2010041352.tif 000015
【図８】
2010041352.tif 000016