(57)【特許請求の範囲】
【請求項１】
符号化されたビデオストリームを復号化し、復号画像を出力する画像復号化装置において、
入力されたビデオストリームをフレーム単位に分割し複数のフレーム列として分配するストリーム分配部と、
上記ストリーム分配部から分配された各フレーム列を復号化し復号画像を生成する複数のデコーダと、
上記複数のデコーダが生成した復号画像のうち、後続のフレームを復号化する際に参照する参照画像を格納する参照画像フレームメモリと、
上記複数のデコーダが生成した復号画像を蓄積する表示画像フレームメモリと、
上記表示画像フレームメモリから復号画像を表示順に出力する画像表示出力部と、を備え、
上記ストリーム分配部は、他のフレームの参照画像とならないフレームを復号化できるタイミングであっても、他のフレームの参照画像となるフレームの復号化を先行させるように、分割したフレームの順序を入れ替え、上記複数のデコーダに分配することを特徴とする画像復号化装置。
【請求項２】
請求項１に記載の画像復号化装置であって、
前記ストリーム分配部により復号化するフレームの順序を入れ替える場合、前記参照画像フレームメモリには、前記先行して復号化させたフレームの復号画像を格納する領域を増設することを特徴とする画像復号化装置。
【請求項３】
請求項１または２に記載の画像復号化装置であって、
前記ストリーム分配部からストリームの分配に関する情報を受け取り、前記各デコーダに対し分配されたフレームの復号化のタイミングを制御するタイミング制御部を備え、
該タイミング制御部は、分配されたフレームの参照画像が前記参照画像フレームメモリに全て格納された時点で当該フレームの復号化を開始するように制御することを特徴とする画像復号化装置。
【請求項４】
請求項１または２に記載の画像復号化装置であって、
前記ストリーム分配部からストリームの分配に関する情報を受け取り、前記各デコーダに対し分配されたフレームの復号化のタイミングを制御するタイミング制御部を備え、
該タイミング制御部は、分配されたフレームの参照画像のうち、参照する領域の部分が前記参照画像フレームメモリに格納された時点で当該フレームの復号化を開始するように制御することを特徴とする画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像信号を復号化する画像復号化装置に関するものである。
【背景技術】
【０００２】
近年、映像音声信号をＭＰＥＧ圧縮技術などを用いてデジタル符号化（エンコード）し、ハードディスク（ＨＤＤ）や光ディスク（ＤＶＤ）などの記録メディアに記録するデジタルレコーダやビデオカメラが製品化されている。これらの記録機器では、たとえばＨＤＤやＤＶＤなどの複数の記録メディアを装着し、これらのメディアへの記録機能（エンコード処理）とこれらのメディアからの再生機能（デコード処理）を有する。さらに、一度記録したデータをバックアップあるいは長期保管するために、記録したデータを２つのメディア間でダビングする機能を有する。このダビングの際には、圧縮レートを変更することを目的とするため、又はメディア間で圧縮符号化規格が異なるために、元の圧縮映像音声信号の符号化方式を変換して再符号化するトランスコード処理を行うことが多い。
【０００３】
上記画像の記録、再生技術においては、高速動作を必要とされる場面がある。例えば、復号した画像を再符号化してトランスコードを行うような場合、双方の処理をリアルタイム処理する場合よりも早く処理を行うことで、トランスコードに必要とされる時間を減らすことができ、ユーザの待ち時間を減らし使い勝手を向上させることができる。一般に、ＩＳＯ／ＩＥＣ１３８１８−２（通称ＭＰＥＧ２Ｖｉｄｅｏ）の規格で代表されるように、動画の符号化圧縮では、フレーム間予測に基づく圧縮符号化技術を用いるため、各フレーム間の処理データの参照関係が保たれるように処理する必要がある。
【０００４】
例えば特許文献１，２には、複数のデコードチップを用いて、高速にデコード処理を行う装置が開示されている。これらの特許文献１，２では、入力されたＭＰＥＧストリームを、スライス単位など各フレーム内において処理を行う部分に分割し、使用するデコードチップごとにストリームを分配し、デコード処理を行う。また各チップ間において、他のチップにおいて生成された参照画像を使用できるように、相互に参照画像の転送を行うものである。これにより、処理時間を短縮し、高速なデコード処理を行うことができると述べられている。
【０００５】
【特許文献１】特開２００７−８６４８７号公報
【特許文献２】特開２００７−８６４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記特許文献１，２では、ストリームを分割するストリーム分割手段は、事前に、ストリームをスライスなどのフレーム内のさらに細かいレイヤーまでシンタックス解析せねばならず、デコード前の処理が複雑になるという課題がある。また、Ｈ．２６４／ＡＶＣ（ＩＳＯ／ＩＥＣ１４４９６−１０）に代表される別の規格においては、スライスがＭＢ（マクロブロック）ラインごとに入る事は必須事項とされていないため、デコード処理に都合のよい分割境界を簡単に見出すことができなくなる。また、これらの規格においては、同じフレーム内の別のＭＢのデータを参照して予測処理を行うフレーム内予測処理を行う場合がある。この場合、上下のＭＢにおいてデータを参照するため、別のデコーダチップに、参照画像のデータだけでなく現在デコード中のフレームデータも送受信する必要があり、回路構成が複雑になるという課題があった。
【０００７】
本発明の目的は、画像の符号化、復号化およびトランスコードの高速化処理を、低コストでかつ簡単な構成で実現するために必要な高速の画像復号化装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明の画像復号化装置は、入力されたビデオストリームをフレーム単位に分割し複数のフレーム列として分配するストリーム分配部と、ストリーム分配部から分配された各フレーム列を復号化し復号画像を生成する複数のデコーダと、複数のデコーダが生成した復号画像のうち、後続のフレームを復号化する際に参照する参照画像を格納する参照画像フレームメモリと、複数のデコーダが生成した復号画像を蓄積する表示画像フレームメモリと、表示画像フレームメモリから復号画像を表示順に出力する画像表示出力部と、を備える。
【０００９】
また、ストリーム分配部からストリームの分配に関する情報を受け取り、各デコーダに対し分配されたフレームの復号化のタイミングを制御するタイミング制御部を備え、タイミング制御部は、分配されたフレームの参照画像のうち、参照する領域の部分が参照画像フレームメモリに格納された時点で当該フレームの復号化を開始するように制御する。
【００１０】
あるいはストリーム分配部は、分割したフレームの順序を入れ替え、参照画像となるフレームを参照画像とならないフレームよりも先行させて前記複数のデコーダに分配する。
【発明の効果】
【００１１】
本発明によれば、画像の高速復号化処理を、低コストでかつ簡単な構成で実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を用いて説明する。
【実施例１】
【００１３】
図１は、本発明による画像復号化装置１００の一実施例を示すブロック構成図である。本実施例は、ビデオストリームをリアルタイム以上のスピードで高速に復号化（デコード）して出力する装置である。
【００１４】
端子１からは、例えばＭＰＥＧ２Ｖｉｄｅｏ規格で圧縮されたビデオのエレメンタリストリームが入力する。ストリーム分配部２は、入力したビデオストリームをフレーム単位（ピクチャ単位）で２系統に分割し、それぞれストリームバッファ３，４に一時格納する。第１のデコーダ５と第２のデコーダ６は、それぞれストリームバッファ３，４から分割されたビデオストリーム（フレーム列）を読み出し、デコード処理を行う。すなわち、ＶＬＤ処理、逆量子化、逆ＤＣＴ処理、および動き補償（ＭＣ）処理といった一連の処理を行いデコード画像を得る。
【００１５】
参照画像フレームメモリ７には、デコード処理の際に参照するフレームの画像データを格納しておく。ここに格納する画像データは、第１及び第２のデコーダ５，６にてデコードした画像のうち、次のデコードに必要とされるものである。参照フレームメモリ７は複数の格納領域を有し、複数フレームの画像を適宜更新しながら、参照される可能性のある期間だけ保持する。
【００１６】
タイミング制御部８は、ストリーム分配部２から次のフレームがいずれのデコーダで処理されるかの通知を受け、また、デコーダ５，６から生成中の参照画像の完成状況の通知を受ける。そして、次のフレームの参照する画像が参照フレームメモリ７内に確保できた時点で、デコーダ５，６にそのフレームのデコード開始を指示する。
【００１７】
デコーダ５，６にてデコードされた画像データは、表示画像フレームメモリ９に蓄積される。画像表示出力部１０は、出力先の外部機器（例えば画像表示装置）が必要とする順に画像データを並び替えて、端子１１を介して外部機器に出力する。
【００１８】
このように本実施例の画像復号化装置１００では、ストリーム分配部２により入力したビデオストリームをフレーム単位で２系統に分割し、第１及び第２のデコーダ５，６にて並列にデコードすることで、デコード処理の高速化を図るものである。その際フレーム単位で分割するので、境界が明確であり分割処理が容易である。また、デコード処理のために参照する画像データの管理もフレーム単位なので容易であり、Ｈ．２６４／ＡＶＣ方式のようにフレーム内上下領域でデータを参照する場合にも適用が容易となる。
【００１９】
以下、第１及び第２のデコーダ５，６によるデコード処理を具体的に説明する。
図２は、入力するストリームとデコード後に出力する画像データ列を示す図である。
（ａ）は、端子１に入力するエレメンタリストリーム内のフレーム（ピクチャ）の並び順を示す。フレームの種類として、「Ｉ」はＩピクチャ（フレーム内符号化画像）、「Ｐ」はＰピクチャ（フレーム間順方向予測符号化画像）、「Ｂ」はＢピクチャ（双方向予測符号化画像）であり、数字は処理順を表わす。
【００２０】
（ｂ）は、デコード処理を行い、端子１１から出力する画像データ列の並びを示す。Ｉピクチャは単独でデコードするのに対し、Ｐピクチャはその直前に処理されたＩもしくはＰピクチャを参照画像としてリードし、動き補償を行ってデコードする。このときの参照関係を矢印（破線）で示す。また、Ｂピクチャはその直前に処理された２個のＩもしくはＰピクチャを参照画像としてリードし、動き補償を行ってデコードする。この２個の参照画像は、デコード後の画像の並び順では、そのＢピクチャの前後に位置するものである。このときの参照関係を矢印（実線）で示す。例えばＢ２ピクチャについては、ストリーム内順序で直前のＩ０ピクチャとＰ１ピクチャを参照し、Ｉ０から前方予測、Ｐ１から後方予測を行ってデコードする。各ピクチャをデコード後、表示出力部１０は画像データを並び替えて出力する。
【００２１】
図３は、第１及び第２のデコーダ５，６による並列デコード処理の動作を示す図である。（ａ）は、ストリーム分配部２によりデコーダ５，６に供給されるストリーム（フレーム列）と、これらをデコードするタイミング（時間位置）を示す。（ｂ）は、参照フレームメモリ７の２つの領域に格納される参照画像を示す。
【００２２】
ストリーム分配部２は、入力されたストリーム（図２（ａ））をフレーム単位で分割してデコーダ５，６に供給する。分割する際、ストリーム内の各ピクチャの切れ目に挿入されている固有のビット列（ピクチャヘッダコード）をサーチすることで、ピクチャの切れ目を特定する。そして本実施例では、各ピクチャを交互にデコーダ５，６に供給する。
【００２３】
その結果（ａ）のように、デコーダ５には偶数番目のフレーム列（Ｉ０，Ｂ２，Ｐ４，・・・）が、デコーダ６には奇数番目のフレーム列（Ｐ１，Ｂ３，Ｂ５，・・・）が供給され、デコーダ５，６はこの順にデコードする。ただし、図２（ｂ）で示したように、ＰピクチャとＢピクチャについてはデコードのために参照画像を必要とするので、タイミング制御部８は、該当する参照画像のデコードが完了するのを待って、ストリームバッファ３，４からデコーダ５，６へ供給を行う。すなわち、供給するフレーム列にはデコードを待機する待機期間Ｕ０，Ｕ１，Ｕ２・・・を設けている。
【００２４】
（ｂ）は参照画像の格納状態であり、例えば、領域１に格納されるＩ０は、後続のＰ１，Ｂ２，Ｂ３のデコードの際参照されるもので、これらのデコードが完了するまで保持される。また、領域２に格納されるＰ１は、後続のＢ２，Ｂ３，Ｐ４，Ｂ５，Ｂ６のデコードの際参照されるもので、これらのデコードが完了するまで保持される。参照動作が完了した画像は、次の参照画像に更新される。
【００２５】
タイミング制御部８は、各フレームのデコードに必要な参照画像が格納された時点で、デコーダ５，６に処理開始を指示する。このうちＩ０ピクチャについては、単独でデコード可能なので、デコーダが処理可能であれば直ちに処理開始の指示を出す。Ｐ１については、Ｉ０を参照画像として用いるため、領域１にデコードしたＩ０の格納が完了した時点で開始の指示を出す。更に、Ｂ２，Ｂ３については、両方とも、Ｉ０，Ｐ１の参照画像が完成し格納された時点で処理開始の指示を出す。すなわち、Ｉ０のデコードが完了した時点でＰ１のデコードを開始させ、Ｐ１のデコードが完了した時点でＢ２とＢ３のデコードを開始させるようにタイミングを制御する。
【００２６】
このように制御することで、必要とする画像の参照関係に破綻をきたすことなくデコード処理を継続することができる。また、デコーダ５，６間ではデコード中の画像の参照関係がないので、同時にデコード処理を行うことが可能である。これによりスループットを向上させ、全体のデコード時間を短縮することができる。本実施例の場合には、Ｂ２とＢ３、Ｂ５とＢ６のように、連続する２個のＢピクチャのデコードを並列に実行することで、１個のフレームずつ順次処理する場合に比べ、デコード時間を３／４に短縮（４／３倍の高速化）して処理することができる。
【実施例２】
【００２７】
次に、図１の画像復号化装置１００によるデコード処理の第２の実施例について説明する。
図４は、第１及び第２のデコーダ５，６による並列デコード処理の動作を示す図である。（ａ）はデコーダ５，６によるデコードのタイミングを、（ｂ）は参照画像の格納状態を示す。
【００２８】
本実施例では、ストリーム分配部２からストリームバッファ３，４を介してデコーダ５，６に供給するフレームの順序を入れ替える。すなわち、入力ストリームのピクチャ順序を解析し、参照画像となるピクチャを先行してデコードし、これが生成されるまでデコードを開始できなかった待機期間Ｕを削減するように、ピクチャの供給順序を変更する。
【００２９】
前記実施例１では図３（ａ）のように、ピクチャＢ５，Ｂ６のデコードのためＰ１，Ｐ４の参照画像を必要とするので、Ｐ４のデコードが完了するまで、第２のデコーダ６におけるデコード処理を待機していた（待機期間Ｕ２）。
【００３０】
これに対し本実施例では、図４（ａ）のようにＢ３とＰ４の供給順序を入れ替え、Ｐ４を先行してデコードするようにする。すなわち、参照画像となるＰ４を参照画像とならないＢ３よりも先行させてデコードする。そして、デコードしたＰ４の参照画像をＰ１と同時に保持するようにする。そのために参照フレームメモリ７では、（ｂ）のように格納領域を３個に増設する。これにより、Ｂ５のデコードは待機することなく実行でき、参照画像Ｐ４が完成されるまでの待機期間Ｕ２を解消する。同様に図３（ａ）における待機期間Ｕ３，Ｕ４，Ｕ５も解消し、定常状態では待機期間は全て解消できる。
【００３１】
これによりデコーダの処理効率は、１個のフレームずつ順次処理するデコード処理に対してスループットは２倍になる。また前記実施例１（図３）と比較しても、ほぼ同じ回路構成において処理効率を３／２倍に向上できる。
【実施例３】
【００３２】
さらに、図１の画像復号化装置１００によるデコード処理の第３の実施例について説明する。
図５は、第１及び第２のデコーダ５，６による並列デコード処理の動作を示す図である。（ａ）はデコーダ５，６によるデコードのタイミングを、（ｂ）は参照画像の格納状態を示す。
【００３３】
本実施例では、ストリーム分配部２からストリームバッファ３，４を介してデコーダ５，６に供給するフレームの供給タイミングをずらし、デコード開始をずらしたものである。すなわち、入力ストリームのピクチャ順序を解析し、参照画像が生成されるまでデコードを開始できないために生じていたデコードの待機期間Ｕを削減するように、ストリームの供給タイミング（デコード開始タイミング）をＴだけ早める。なお、ストリームの供給順序は実施例１（図３）と同様に交互に供給する。
【００３４】
前記実施例１では図３（ａ）のように、ピクチャＰ１のデコードのためＩ０の参照画像を必要とするので、Ｉ０のデコードが完了するまで、第２のデコーダ６におけるデコード処理を待機していた。このときの待機期間Ｕ０は、デコード対象の各ピクチャの各ＭＢ（マクロブロック）が参照画像の全領域のデータを参照する場合を想定し、参照画像Ｉ０全体が完成するまでデコード処理を待機していたからである。
【００３５】
しかしながら、通常は、各ＭＢが参照する参照画像内のＭＢ領域は、各ＭＢを中心として上下左右に数１０画素程度の動き補償領域に制限されていることが多い。これは、エンコード時の処理法に依存することであるが、動き検出回路の規模（コスト）を削減するために、実用上問題ない程度に、エンコード時の動きベクトルの範囲を小さく制限しているからである。従って、各ＭＢのデコード開始タイミングにおいて、参照画像の同ＭＢ付近の動き補償に用いる領域についてデコードが完了していればよい。予めこの動き検出範囲の制限が分かっている場合には、参照画像となるＩ０の全てがデコード完了していなくても、これを参照してＰ１のデコードを支障なく行うことができる。これにより、Ｉ０のデコードとＰ１のデコードとを一部期間重複して実行することが許される。この重複期間、すなわちＰ１のデコード開始タイミングのずらし量Ｔ１は、動き検出範囲の制限に応じて設定し、制限範囲が狭いほどずらし量Ｔ１を大きくできる。ずらし量Ｔ１を設けることで、待機期間はＵ０−Ｔ１となり、大幅に削減することができる。
【００３６】
同様に、Ｂ２のデコードにおいても、参照するＰ１の全てがデコード完了していないタイミングで、これを参照してＢ２のデコードを開始する。この場合のずらし量Ｔ２についても同様に設定する。ただしＩ０とＢ２のデコードを重複することはできないので、Ｔ２の大きさはＴ１の大きさと調整して設定する。もしずらし量Ｔ１、Ｔ２が１個のピクチャのデコード時間Ｔ０の１／２以上であれば、（ａ）のように各ピクチャのデコードを、全く待機期間なしに連続的に実行することができる。
【００３７】
これによりデコーダの処理効率は、１フレームずつ処理するデコード処理に対して、スループットは２倍になる。また前記実施例１（図３）と比較しても、ほぼ同じ回路構成において処理効率を３／２倍に向上する。さらに、前記実施例２（図４）のようにストリームのフレームの順序を入れ替えることがなく、また参照画面数も２系統で済むので、回路構成が簡単である。
【００３８】
さらに本実施例では、Ｐ１ピクチャのデコード完了タイミングは、前記実施例１、実施例２よりも早くできる。よって、デコード処理による遅延時間を短縮できるので、デコードした画像を通常のリアルタイムの画像レートよりも高いレートで出力する場合などに好適である。
【００３９】
上記各実施例では、入力ストリームを２系統に分割して２個のデコーダで処理する場合を述べたが、さらに３系統以上に分割して３個以上のデコーダで処理するように拡張することも可能である。例えば３系統の場合、分割後の各フレームを巡回的に３個のデコーダに供給する。そして各デコーダ間で画像の参照関係がないフレームについては同時に処理を行うことにより、デコード時間をさらに短縮することが可能となる。
【００４０】
上記各実施例において使用するデコーダは、通常のデコーダ機能で対応できる。よって、既存の量産可能なデコーダＬＳＩを適用することで、安価で高速処理可能な画像復号装置を構築できる。あるいは、デコーダの回路として、ソフトウェア処理を行うプロセッサとＤＲＡＭメモリなどを共通バスを介して接続することで、ＰＣ上での実現も容易である。
【００４１】
上記各実施例では、ストリームバッファを複数個設けたが、１個のストリームバッファに順次格納してもよい。その場合、ストリーム分配部から各々のデコーダへ、ストリームバッファ内の格納位置を示すリードポインタを指定し、各デコーダはそれに従って読み出す構成とすればよい。
【図面の簡単な説明】
【００４２】
【図１】本発明による画像復号化装置の一実施例を示すブロック構成図。
【図２】入力するストリームとデコード後に出力する画像データ列を示す図。
【図３】並列デコード処理の動作を示す図（実施例１）。
【図４】並列デコード処理の動作を示す図（実施例２）。
【図５】並列デコード処理の動作を示す図（実施例３）。
【符号の説明】
【００４３】
２…ストリーム分配部
３，４…ストリームバッファ
５，６…デコーダ
７…参照画像フレームメモリ
８…タイミング制御部
９…表示画像フレームメモリ
１０…画像表示出力部
１００…画像復号化装置。
【図１】
0005011017.tif 000002
【図２】
0005011017.tif 000003
【図３】
0005011017.tif 000004
【図４】
0005011017.tif 000005
【図５】
0005011017.tif 000006