(57)【特許請求の範囲】
【請求項１】
動画像圧縮データを復号するデコード方法であって、
該動画像圧縮データを復号して空間予測のみの矩形領域で構成される第１の画像フレームの係数データと、動き予測処理を含む矩形領域で構成される第２の画像フレームの復号化データを出力する符号データ復号工程と、
該第２の画像フレームの復号化データを復号化データ記憶部に格納する復号化データ記憶工程と、
該第１の画像フレームの係数データと、該復号化データ記憶部から読み出した該第２の画像フレームの係数データの一方を出力する係数データ選択工程と、
該係数データ選択工程により出力された係数データ及び該復号化データ記憶部に格納された該復号化データに基づいて復号画像データを生成する復号画像生成処理を行う復号画像生成工程と、
該第１の画像フレームの係数データが準備され次第該復号画像生成処理を開始すると共に、該復号画像生成処理において該第１の画像フレームの係数データの一部の処理と該第２の画像フレームの係数データの処理とが混在する期間を許容するように該符号データ復号工程、該復号化データ記憶工程及び該復号画像生成工程の処理タイミングと該係数データ選択工程に入力される該係数データ選択信号を制御する制御工程と
を含むデコード方法。
【請求項２】
該復号画像生成工程は、
該係数データ選択工程で選択出力された係数データに基づき、逆量子化処理及び逆周波数変換処理を行い矩形の残差画像を生成する係数データ処理工程と、
該復号化データ記憶部から読み出した該第２の画像フレームの動きベクトルに基づいて画像データ記憶部から参照画像を読み出して矩形の動き予測画像を生成する動きベクトルデータ処理工程と、
該残差画像と該予測画像を加算して復号画像を生成し、該画像データ記憶部に格納する予測補償工程とを含み、
該制御工程は、該符号データ復号工程の該第１の画像フレームの処理に応じて該係数データ選択信号を生成する、請求項１記載のデコード方法。
【請求項３】
該制御工程は、該符号データ復号工程で１つの矩形領域の第１の画像フレームの係数データが準備されたことに応答して選択出力される係数データを該第１の画像フレームの係数データに切り替える係数データ選択信号を生成する、請求項1又は２記載のデコード方法。
【請求項４】
該制御工程は、該符号データ復号工程で所定個数の矩形領域分の第１の画像フレームの係数データが準備されたことに応答して選択出力される係数データを該第１の画像フレームの係数データに切り替える係数データ選択信号を生成する、請求項1又は２記載のデコード方法。
【請求項５】
動画像圧縮データを復号するデコーダであって、
該動画像圧縮データを復号して空間予測のみの矩形領域で構成される第１の画像フレームの係数データと、動き予測処理を含む矩形領域で構成される第２の画像フレームの復号化データを出力する符号データ復号部と、
該第１の画像フレームの係数データと、該第２の画像フレームの復号化データを格納する復号化データ記憶部から読み出した該第２の画像フレームの係数データの一方を出力する係数データ選択部と、
該係数データ選択部により出力された係数データ及び該復号化データ記憶部に格納された該復号化データに基づいて復号画像データを生成する復号画像生成処理を行う復号画像生成部と、
該第１の画像フレームの係数データが準備され次第該復号画像生成処理を開始すると共に、該復号画像生成処理において該第１の画像フレームの係数データの一部の処理と該第２の画像フレームの係数データの処理とが混在する期間を許容するように該符号データ復号部及び該復号画像生成部の処理タイミングを制御する制御信号と該係数データ選択部に入力される該係数データ選択信号を生成して出力する制御部と
を有するデコーダ。
【請求項６】
該復号画像生成部は、
該係数データ選択部で選択出力された係数データに基づき、逆量子化処理及び逆周波数変換処理を行い矩形の残差画像を生成する係数データ処理部と、
該復号化データ記憶部から読み出した該第２の画像フレームの動きベクトルに基づいて画像データ記憶部から参照画像を読み出して矩形の動き予測画像を生成する動きベクトルデータ処理部と、
該残差画像と該予測画像を加算して復号画像を生成し、該画像データ記憶部に格納する予測補償部とを含み、
該制御部は、該符号データ復号部の該第１の画像フレームの処理に応じて該係数データ選択信号を生成する、請求項５記載のデコーダ。
【請求項７】
該制御部は、該符号データ復号部で１つの矩形領域の第１の画像フレームの係数データが準備されたことに応答して選択出力される係数データを該第１の画像フレームの係数データに切り替える係数データ選択信号を生成する、請求項５又は６記載のデコーダ。
【請求項８】
該制御部は、該符号データ復号部で所定個数の矩形領域分の第１の画像フレームの係数データが準備されたことに応答して選択出力される係数データを該第１の画像フレームの係数データに切り替える係数データ選択信号を生成する、請求項５又は６記載のデコーダ。
【請求項９】
請求項５乃至８のいずれか１項記載のデコーダと、
圧縮されたデジタルオーディオビジュアルデータを復号化に適した形式の符号化ビデオデータと符号化オーディオデータに変換し、該符号化ビデオデータを該動画像圧縮データとして該デコーダに入力する手段とを有する、
デコード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デコード方法、デコーダ及びデコード装置に係り、特にデジタル放送の受信時やDVD（Digital Versatile Disk）等の記憶媒体に記録されたビデオデータの再生時等に圧縮符号化された動画像データを復号するデコード方法、デコーダ及びデコード装置に関する。
【背景技術】
【０００２】
デジタル放送やDVDビデオ等で視聴される動画像は、１秒間当たり３０枚程度のデジタル画像で構成されている。このため、動画像データを何ら加工することなく放送波で搬送したり、DVD等の記憶媒体に格納したりすることは、限られた周波数帯域や記憶媒体の容量の観点から困難であり、現実のアプリケーションでは動画像データに何らかの圧縮処理が施されている。一般に、これらの圧縮処理はアプリケーションの公共性や市場での普及を考慮して、標準化団体で規定された規約に沿って行われている。圧縮方式としては、ISO/IEC（International Organization for Standardization / International Electrotechnical Commission）で規定されているMPEG-2（Moving Picture Experts Group-2）と呼ばれる圧縮方式が広く普及しているが、近年ではH.264/AVC（Advanced Video Coding）と呼ばれる新たな圧縮方式がMPEG-2の２倍以上の圧縮率を実現することから、モバイル機器向けの地上デジタル放送、HD-DVD（High Definition-DVD）、ブルーレイプレーヤ等の再生装置で採用される次世代の圧縮方式として期待されている。
【０００３】
MPEG-2やH.264/AVCの動画像圧縮処理では、動画像を構成する画像間で相関の強い、即ち、絵柄の似ている領域を検出して、その冗長情報を排除するという考え方が基本になっている。各画像は、圧縮の処理単位である１６×１６画素のマクロブロックと呼ばれる矩形領域に分割され、各マクロブロックに対し、参照画像と呼ばれる時間的に近接した画像から絵柄の似た矩形領域を探し出す。マクロブロックと探し出した矩形領域の空間的な位置の差分が動きベクトルデータとして圧縮符号化され、又、マクロブロックと探し出した矩形領域の画像の残差データが係数データとして圧縮符号化される。
【０００４】
デジタル放送を受信して動画像を表示したり、DVDのビデオデータを再生する装置には、圧縮符号化されたデータを復号展開する動画像デコード装置が搭載されている。動画像デコード装置では、動きベクトルデータに基づいて類似している絵柄の画像を参照して予測画像を生成し、予測画像に残差画像を加算する動き補償処理が必要となる。MPEG-2やH.264/AVC等の圧縮規格では、この残差画像に周波数変換と量子化を施して係数データの値を小さくした後、係数データの並びの発生頻度に従って割り当て符号長を決定する可変長符号化方式が採用されている。特にH.264/AVC規格の場合、MPEG-2より高い圧縮性能を発揮するCABAC（Context-based Adaptive Binary Arithmetic Coding）と呼ばれる算術符号化方式が規格化されている（例えば、非特許文献１参照）。
【０００５】
CABAC方式は高圧縮率を実現できるものの、１ビット単位の複雑な処理が必要であり、圧縮データ量に依存して処理負荷が大きく変動する。従って、H.264/AVC規格に準拠したデコーダ（以下、H.264/AVCデコーダと言う）において、マクロブロックに対して一定の処理時間内にCABAC復号化処理完了を保証するのは困難であり、CABAC復号化処理を、MPEG-2規格に準拠したデコーダ（以下、MPEG-2デコーダと言う）等を含むマクロブロックパイプラインに組み込むことができない。そこで、従来のデコーダでは、CABAC復号処理とそれ以降の処理とを独立に扱い、CABAC復号化の結果を例えばDRAM等の外部ワークメモリにバッファリングし、バッファリングした復号データに対して後段の処理をマクロブロックパイプラインで処理するのが一般的である。
【０００６】
図１は、従来のH.264/AVCデコーダの一例を示すブロック図である。図１に示すデコーダは、符号データ復号部１、係数データ処理部２、動きベクトルデータ処理部３、予測補償部４、空間予測画生成部５、ループフィルタ部６、制御部７及びワークメモリ８を有する。符号データ復号部１は、Ｉピクチャの復号においてはマクロブロックの係数データをワークメモリ８内の復号化データ記憶部８１に格納し、非Ｉピクチャの復号においては係数データや動きベクトルデータ等の復号化データをワークメモリ８内の復号化データ記憶部８１に格納する。係数データ処理部２は、逆量子化部２１及び逆周波数変換部２２を有する。係数データ処理部２は、復号化データ記憶部８１から復号化された係数データを読み出す。係数データは圧縮時に量子化処理が施されているため、逆量子化部２１にて逆量子化処理を施される。又、動画像圧縮データは、圧縮規約に従って空間・周波数変換が施されているため、逆量子化処理に続いて逆周波数変換部２２で逆周波数変換処理を施され、原画像から予測画像を差し引いた残差画像が出力される。尚、残差画像には量子化、空間・周波数変換等の圧縮処理に伴う誤差成分が含まれており、これが復号画像の歪となって現れる。
【０００７】
一方、動きベクトルデータ処理部３は、動きベクトルデータ解釈部３１及び動き予測画生成部３２及び動き予測画重み付け部３３を有する。動きベクトルデータ解釈部３１は、復号化データ記憶部８１から読み出した動きベクトルデータを圧縮規約に従って参照画像を指し示す動きベクトルに変換し、動き予測画生成部３２は、変換された動きベクトルを用いてワークメモリ８内の画像データ記憶部８２から参照画像を読み出し、圧縮規約に基づいて動き予測画像を生成して出力する。動き予測画重み付け部３３は、圧縮規約に従って動き予測画像に重み付け係数を乗じる処理を行う。空間予測画生成部５は、動き予測を行わないイントラマクロブロックに対して空間予測画像を生成する。空間予測画像の生成時には、圧縮規約に従い、マクロブロックの上部又は左部の画素データから予測画像を生成するため、必要に応じて画像データ記憶部８２から上隣接画素を読み込む。予測補償部４は、逆周波数変換部２２の結果の残差画像と空間予測画像又は動き予測画像を加算して（或いは、足し合わせて）復号画像を生成する。予測補償部４の入力予測画像として上記空間予測画像又は動き予測画像を選択する処理は、セレクタ４１により行われる。セレクタ４１により、イントラマクロブロック処理では空間予測画像が選択され、インターマクロブロック処理では動き予測画像が選択される。
【０００８】
ループフィルタ部６は、例えばH.264/AVC規約では周波数変換の最小単位である４×４画素ブロックのブロック間の境界をフィルタリングしてぼかし、ブロックノイズを軽減する処理を行う。ループフィルタ部６は、このフィルタリングのために、マクロブロック上部の複数ライン分の画素データを画像データ記憶部８２から読み出す。ループフィルタ部６によりフィルタリングされた復号画像は、画像データ記憶部８２に記憶される。制御部７は、各動作ブロックからのスタース信号を参照しながらデコーダ全体の動作を制御する。
【０００９】
従来のデコーダでは、符号データ復号部１の復号化結果をワークメモリ８に格納していた。このため、圧縮率が低く、高ビットレートのデコード処理においては、復号化データ領域８１への書き込み及び復号化データ領域８１からの読み出しがワークメモリアクセスの帯域を圧迫し、処理遅延の要因となる問題があった。特に動き予測を行わないＩピクチャと呼ばれる基準画像の処理においては、係数データの値が大きくなるため、圧縮率と画像の特徴によっては、圧縮前の画像データ量に相当する大量のデータがワークメモリ８に書き込まれることになり、帯域を大きく圧迫してデコーダの性能を劣化させる場合がある。
【００１０】
従来のデコーダにおいて性能劣化が発生するタイミングの一例を、図２と共に説明する。図２は、１５枚の画像でGOP（Group Of Picture）を構成し、GOPの先頭のみＩピクチャで、ＩピクチャとＰピクチャ、又は、ＰピクチャとＰピクチャの間に２枚のＢピクチャが挿入されている動画像圧縮データを処理するタイミング例を示す。図２（ａ）は符号データ復号部１の処理タイミング例を示し、図２（ｂ）は復号画像生成処理と呼ぶ係数データ処理部２、動きベクトルデータ処理部３以降の処理タイミング例を示し、図２（ｃ）は復号画像生成処理の理想的なタイミング例を示す。図２において、Ｉ０、Ｂ１、Ｂ２、Ｐ３・・・は、Ｉピクチャ、Ｂピクチャ、又はＰピクチャの画像の種類と先頭から処理する順序の通し番号を示している。図２（ｂ）の復号画像生成処理のタイミングでは、符号データ復号部のＩピクチャＩ１５に対する処理と、復号画像生成処理のＢピクチャＢ１１及びＰピクチャＰ１２に対する処理が時間的に重なり、ＩピクチャＩ１５の符号データ復号処理の出力、即ち、復号化データのワークメモリ８への書き込みが帯域を圧迫している。このように、図２（ｂ）の復号画像生成処理のタイミングでは、ＢピクチャＢ１１、ＰピクチャＰ１２の処理が図２（ｃ）の理想的なタイミングより遅れていることがわかる。このような復号画像生成処理のタイミングが理想的なタイミングより遅れる遅延発生状態が頻繁に繰り返されると、最終的にはデコード処理をスキップして処理の遅れを取り戻すことが必要になり、表示画像がコマ落ちするという問題が発生することになる。
【００１１】
動画像の符号化処理の一例は、例えば特許文献１にて提案されている。
【非特許文献１】角野眞也、菊池義浩、鈴木輝彦、「改訂版H.264/AVC教科書」、株式会社インプレス発行、２００６年１月１日
【特許文献１】特開２００６−３４０１３９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来のデコーダでは、符号データ復号部１が高ビットレートのＩピクチャを処理した復号化データをワークメモリ８に書き込むことによって帯域を圧迫し、復号画像生成処理の性能に影響を与え、デコーダ全体の性能が劣化してしまうという問題があった。
【００１３】
そこで、本発明は、符号データ復号部が比較的多量の復号化データを出力しても、デコード性能の劣化を防止可能なデコード方式、デコーダ及びデコード装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一観点によれば、動画像圧縮データを復号するデコード方法であって、該動画像圧縮データを復号して空間予測のみの矩形領域で構成される第１の画像フレームの係数データと、動き予測処理を含む矩形領域で構成される第２の画像フレームの復号化データを出力する符号データ復号工程と、該第２の画像フレームの復号化データを復号化データ記憶部に格納する復号化データ記憶工程と、該第１の画像フレームの係数データと、該復号化データ記憶部から読み出した該第２の画像フレームの係数データの一方を出力する係数データ選択工程と、該係数データ選択工程により出力された係数データ及び該復号化データ記憶部に格納された該復号化データに基づいて復号画像データを生成する復号画像生成処理を行う復号画像生成工程と、該第１の画像フレームの係数データが準備され次第該復号画像生成処理を開始すると共に、該復号画像生成処理において該第１の画像フレームの係数データの一部の処理と該第２の画像フレームの係数データの処理とが混在する期間を許容するように該符号データ復号工程、該復号化データ記憶工程及び該復号画像生成工程の処理タイミングと該係数データ選択工程に入力される該係数データ選択信号を制御する制御工程とを含むデコード方法が提供される。
【００１５】
本発明の一観点によれば、動画像圧縮データを復号するデコーダであって、該動画像圧縮データを復号して空間予測のみの矩形領域で構成される第１の画像フレームの係数データと、動き予測処理を含む矩形領域で構成される第２の画像フレームの復号化データを出力する符号データ復号部と、該第１の画像フレームの係数データと、該第２の画像フレームの復号化データを格納する復号化データ記憶部から読み出した該第２の画像フレームの係数データの一方を出力する係数データ選択部と、該係数データ選択部により出力された係数データ及び該復号化データ記憶部に格納された該復号化データに基づいて復号画像データを生成する復号画像生成処理を行う復号画像生成部と、該第１の画像フレームの係数データが準備され次第該復号画像生成処理を開始すると共に、該復号画像生成処理において該第１の画像フレームの係数データの一部の処理と該第２の画像フレームの係数データの処理とが混在する期間を許容するように該符号データ復号部及び該復号画像生成部の処理タイミングを制御する制御信号と該係数データ選択部に入力される該係数データ選択信号を生成して出力する制御部とを有するデコーダが提供される。
【００１６】
本発明の一観点によれば、上記の如き構成を有するデコーダと、圧縮されたデジタルオーディオビジュアルデータを復号化に適した形式の符号化ビデオデータと符号化オーディオデータに変換し、該符号化ビデオデータを該動画像圧縮データとして該デコーダに入力する手段とを有するデコード装置が提供される。
【発明の効果】
【００１７】
開示のデコード方法、デコーダ及びデコード装置によれば、圧縮符号化された動画像データを復号する際に、比較的多量の復号化データが出力されてもデコード性能の劣化を防止することが可能となる。
【発明を実施するための最良の形態】
【００１８】
デコーダは、画像を矩形領域に分割し、動き予測に基づき動画像圧縮データを復号して画像に展開して画像データ記憶部に格納する。例えばMPEG-2デコーダの場合であれば、符号データ復号部は、Ｉピクチャの復号においては係数データを出力し、非Ｉピクチャの復号においては係数データや動きベクトルデータ等の復号化データを出力する。復号化データ記憶部は、符号データ復号部が処理した非Ｉピクチャの復号化データを格納する。係数データ選択部は、符号データ復号部のＩピクチャ処理出力の係数データと復号化データ記憶部から読み出した非Ｉピクチャの係数データを入力し、制御部の指示に従いどちらか一方の係数データを選択出力する。復号画像生成部は、係数データ選択部により選択出力された係数データ及び復号化データ記憶部に格納された復号化データに基づいて復号画像データを生成する復号画像生成処理を行う。制御部は、Ｉピクチャの係数データが準備され次第復号画像生成処理を開始すると共に、復号画像生成処理においてＩピクチャの係数データの一部の処理と非Ｉピクチャの係数データの処理とが混在する期間を許容するようにデコーダ各部の処理タイミングと係数データ選択部による選択出力を制御する。
【００１９】
以下に、本発明のデコード方法、デコーダ及びデコード装置の各実施例を図３以降と共に説明する。
【実施例１】
【００２０】
図３は、本発明の一実施例におけるデコード装置を示すブロック図である。デコード装置１０は、図３に示す如く接続されたフロントエンド処理部１１、デマルチプレクサ部１２、ビデオデコーダ１３、オーディオデコーダ１４、ビデオ出力系１５及びオーディオ出力系１６を有する。少なくともデマルチプレクサ部１２、ビデオデコーダ１３、オーディオデコーダ１４、ビデオ出力系１５及びオーディオ出力系１６を含む部分は、単一の半導体チップ又はＭＣＭ（Multi-Chip Module）等のモジュールで構成可能である。
【００２１】
圧縮されたデジタルオーディオビジュアル（ＡＶ：Audio Visual）データは、フロントエンド処理部１１及びデマルチプレクサ部１２により、後段のデコーダ１３，１４による復号化に適した形式の符号化ビデオデータと符号化オーディオデータに変換される。符号化ビデオデータ（動画像圧縮データ）は、ビデオデコーダ１３により復号化され、ビデオ出力系１５を介して表示部１７に表示される。一方、復号化オーディオデータは、オーディオデコーダ１４により復号化され、オーディオ出力系１６を介してスピーカ１８より出力される。
【００２２】
デコード装置１０は、例えばビデオプレーヤ／レコーダやビデオカメラ等のビデオ再生機能を備えた装置に搭載される。このようなデコード装置１０の基本構成自体は周知であるが、本実施例では、ビデオデコーダ１３が次のように構成されている。
【００２３】
ビデオデコーダ１３は、MPEG-2、MPEG-4、H.264等の規格に代表されるフレーム間予測を行う動画圧縮方式に準拠した動画像のビデオストリーム（又は、符号化ビデオデータ）を伸張（又は、復号）する。
【００２４】
図４は、本発明の第１実施例におけるデコーダを示すブロック図である。画像を圧縮単位である矩形領域に分割し、動き予測に基づき動画像圧縮データを復号して画像に展開するビデオデコーダ１３は、図４に示す如く接続された符号データ復号部６１、係数データ処理部６２、動きベクトルデータ処理部６３、予測補償部６４、制御部６７、ワークメモリ（以下、画像データメモリと言う）６８及び係数データ処理部６２への入力を選択する係数データ選択部６９を有する。
【００２５】
尚、図４及び後述する図１０及び図１１では、説明の便宜上、画像データメモリ６８がビデオデコーダ１３の一部として図示されているが、画像データメモリ６８はビデオデコーダ１３内に設けられている必要はなく、外部メモリで構成されていても良い。
【００２６】
圧縮単位である矩形領域は、例えば１６×１６画素の領域であり、マクロブロックとも呼ばれる。画像データメモリ６８は、非Ｉピクチャの復号化データを格納する復号化データ記憶部６８１及びデコードした画像データを格納する画像データ記憶部６８２を含む。尚、Ｉピクチャとは、空間予測のみのマクロブロックで構成される画像フレームを言い、非Ｉピクチャとは、動き予測処理を含むマクロブロックで構成される画像フレームを言う。
【００２７】
符号データ復号部６１は、Ｉピクチャの復号においてはマクロブロックの係数データを係数データ選択部６９に出力し、非Ｉピクチャの復号においては係数データや動きベクトルデータ等の復号化データを画像データメモリ６８に出力して復号化データ記憶部６８１に格納する。つまり、符号データ復号部６１は、動画像圧縮データを復号してＩピクチャの係数データと非Ｉピクチャの符号化データを分離して出力する。
【００２８】
係数データ処理部６２は、逆量子化部６２１及び逆周波数変換部６２２を有する。係数データ処理部６２に入力される係数テータは、圧縮時に量子化が施されているため、逆量子化部６２１にて逆量子化処理が施される。又、画像圧縮データは、圧縮規約に従って空間・周波数変換が施されているため、逆量子化処理に続いて逆周波数変換部６２２で逆周波数変換処理が施され、原画像から予測画像を差し引いた残差画像が出力される。尚、残差画像には量子化、空間・周波数変換等の圧縮処理に伴う誤差成分が含まれており、これが復号画像の歪となって現れる。
【００２９】
動きベクトルデータ処理部６３は、動きベクトルデータ解釈部６３１及び動き予測画生成部６３２を有する。動きベクトルデータ処理部６３は、復号化データ記憶部８１から動きベクトルデータを読み出して解釈し、解釈した動きベクトルが指し示す参照画像を画像データメモリ６８から読み出して予測画像を生成する。
【００３０】
予測補償部６４は、動きベクトルデータ処理部６３から出力される予測画像と、係数データ処理部６２から出力される残差画像とを加算し、加算した結果を復号画像データとして画像データ記憶部６８２に格納する。
【００３１】
係数データ選択部６９は、制御部６７からの係数データ選択信号に基づいて、符号データ復号部６１からのＩピクチャの係数データ、或いは、復号化データ記憶部６８１に記憶されている非Ｉピクチャの係数データを選択出力する。制御部６７は、ビデオデコーダ１３全体の動作タイミングを制御する制御信号を出力すると共に、ビデオデコーダ１３の各部からのステータス情報に基づいて、係数データ選択部６９がＩピクチャの係数データ或いは非Ｉピクチャの係数データを選択出力するように制御する係数データ選択信号を出力する。又、処理すべき係数データが存在しない場合、制御部６７はＮＯＰ（No Operation）状態をビデオデコーダ１３の各部に指示する制御信号を出力する。ＮＯＰ状態では、符号データ復号部６１がＩピクチャの係数データの出力状態になく、且つ、復号化データ記憶部６８１にも処理すべき非Ｉピクチャの係数データが準備できていない。このようにして、本実施例では、Ｉピクチャの復号化された係数データは画像データメモリ６８に出力されることがなく、画像データメモリ６８への帯域圧迫を軽減することができ、ビデオデコーダ１３全体の性能劣化を抑止することが可能である。
【００３２】
係数データ処理部６２、動きベクトルデータ処理部６３及び予測補償部６４は、制御部６７の制御下で、係数データ選択部６９から選択出力された係数データ及び復号化データ記憶部６８１に格納された復号化データに基づいて復号画像生成処理を行って復号画像データを生成する復号画像生成部を構成する。以下に説明するように、制御部６７は、Ｉピクチャの係数データが準備され次第復号画像生成処理を開始すると共に、復号画像生成処理においてＩピクチャの係数データの一部の処理と非Ｉピクチャの係数データの処理とが混在する期間を許容するようにビデオデコーダ１３の各部の処理タイミングを制御する制御信号と係数データ選択部６９に入力される係数データ選択信号を生成して出力する。
【００３３】
図５は、本実施例におけるビデオデコーダ１３の動作一例を説明するタイミングチャートである。図５（ａ）は符号データ復号部６１の処理タイミング例を示し、図５（ｂ）は復号画像生成処理と呼ぶ係数データ処理部６２、動きベクトルデータ処理部６３以降の処理タイミング例を示し、図５（ｃ）は復号画像生成処理の理想的なタイミング例を示す。図５において、Ｉ０、Ｂ１、Ｂ２、Ｐ３・・・は、Ｉピクチャ、Ｂピクチャ、又はＰピクチャの画像の種類と先頭から処理する順序の通し番号を示している。図５のタイミングでは、従来例のタイミングを示す図２の場合と同様に、ＩピクチャＩ１５の符号データ復号処理とＢピクチャＢ１１及びＰピクチャＰ１２の復号画像生成処理が時間的に重なっている。しかし、図５のタイミングでは、ＩピクチャＩ１５の符号データ復号処理で出力されるマクロブロック単位の係数データは、画像データメモリ６８に記憶されることなく係数データ選択部６９を通して係数データ処理部６２に入力され復号処理される。その結果、ＢピクチャＢ１１の復号画像生成処理及びＰピクチャＰ１２の復号画像生成処理は、ＩピクチャＩ１５の復号画像生成処理によって処理が分割されるものの、ＢピクチャＢ１１，ＰピクチャＰ１２の復号画像生成処理における画像データメモリ６８のアクセスに対して、ＩピクチャＩ１５の符号データ復号処理による係数データ出力の影響を受けない。つまり、図５（ｂ）に示すように、ＢピクチャＢ１１とＩピクチャＩ１５の復号画像生成処理が混在する期間と、ＢピクチャＢ１２とＩピクチャＩ１５の復号画像生成処理が混在する期間がある。このため、ＢピクチャＢ１１，ＰピクチャＰ１２の理想処理時間を分割したことに相当する処理が行われ、処理時間の合計はＢピクチャＢ１１，ＰピクチャＰ１２の理想処理時間に相当する。結果として局所的な遅延が発生するものの、図５の例ではＢピクチャＢ１６の復号画像生成処理の先頭において復号画像生成処理の理想的なタイミングに追随し、デコーダ性能の劣化を防止することができる。
【００３４】
次に、Ｉピクチャと非Ｉピクチャの係数データ処理を行う動作モジュールのマクロブロック毎の動作内容の切り替えを、図６乃至図９と共に説明する。図６は、本実施例の係数データ処理部６２の動作の一例を説明する図である。ここでは説明を簡単にするために、係数データ処理が、図６（ａ）のようなＵ０、Ｕ１，Ｕ２，の３つの処理ユニットを含み、各処理ユニットＵ０，Ｕ１，Ｕ２によってマクロブロックがパイプライン処理されるものとする。
【００３５】
図６（ｂ）はＰピクチャのマクロブロックが各ユニットで順次処理されている様子（即ち、Ｐピクチャのマクロブロックパイプライン処理）を示す。ＭＢＰ_ＸはＰピクチャのＸ番目のマクロブロック処理を意味する。図６（ｃ）はＰピクチャの処理中に、符号データ復号部によるＩピクチャのマクロブロック処理完了のステータスが制御部に伝達され、ＭＢＩ_Ｘで示されるＩピクチャマクロブロックの係数データ処理が開始される様子（即ち、ＰクチャとＩピクチャの切り替え例）を示す。
【００３６】
図７は、図６（ｃ）の制御を行う制御部６７の処理を示すフローチャートである。ステップＳ１は、Ｉピクチャのマクロブロックの係数データがレディであるか否かを判定する。ステップＳ１の判定結果がＮＯであると、ステップＳ２は、非Ｉピクチャのマクロブロックの係数データがあるか否かを判定する。ステップＳ２の判定結果がＮＯであると処理はステップＳ１へ戻り、判定結果がＹＥＳであると処理はステップＳ３へ進む。ステップＳ３は、係数データ選択部６９の入力係数データの選択を復号化データ記憶部６８１からの非Ｉピクチャの係数データに切り替える。一方、ステップＳ１の判定結果がＹＥＳであると、ステップＳ４は、係数データ選択部６９の入力係数データの選択を符号データ復号部６１からのＩピクチャの係数データに切り替え、処理はステップＳ５へ進む。ステップＳ５は、係数処理の各ユニットＵ０，Ｕ１，Ｕ１のコンテキストを必要に応じて切り替える。ステップＳ６は、各ユニットＵ０，Ｕ１，Ｕ２の処理を起動する。ステップＳ７は、各ユニットＵ０，Ｕ１，Ｕ１の処理のステージ完了を確認した上で処理をステップＳ１へ戻す。
【００３７】
ここでは説明の便宜上、処理対象となるＰピクチャの符号データ復号が時間的に十分前に完了しており、Ｐピクチャの係数データは復号化データ記憶部６８１に常に準備されているものとする。このような前提の下、図６（ｃ）のステージｎの終了時点では、Ｉピクチャのマクロブロック０の完了信号は発生しておらず、ステップＳ１の判定結果はＮＯ、ステップＳ２の判定結果がＹＥＳとなり、Ｐピクチャの次の係数データがあるので、ステップＳ３，Ｓ５後ステップＳ６のパイプラインステージｎ＋１が起動され、ステップＳ７のパイプラインステージｎ＋１が完了後、処理はステップＳ１に戻る。
【００３８】
図６（ｃ）では、パイプラインステージｎ＋１の処理中にＩピクチャのマクロブロック０の完了信号が発生しているため、ステップＳ１の判定結果はＹＥＳとなり、ステップＳ４で係数データ選択部６９の入力係数データの選択を符号データ復号部６１からのＩピクチャの係数データに切り替え、ステップＳ５でＵ０のコンテキストをこのＩピクチャのマクロブロック０のコンテキストに切り替えた上で、ステップＳ６でパイプラインステージｎ＋２を起動する。同様にしてパイプラインステージｎ＋３、ｎ＋４において、係数データの選択を符号データ復号部６１のＩピクチャの係数データに設定したまま、パイプラインステージを起動する。
【００３９】
符号データ復号部６１のマクロブロック符号データ復号化処理は、Ｕ０，Ｕ１，Ｕ２から構成される係数データ処理のマクロブロックパイプラインとは非同期なので、図６（ｃ）のステージｎ＋１に示すように係数データ処理の１ステージ中に２個以上のレディ信号が発生する可能性がある。従って、制御部では未処理のレディ信号の数をカウントして記憶しておく。又、図６(ｃ)ではステージｎ＋４の完了時において、該Ｉピクチャの次の係数データ、つまり、マクロブロック３の係数データが準備状態になっていないため、図７のステップＳ１の判定結果がＮＯ、ステップＳ２の判定結果がＹＥＳとなって、係数データ選択部の係数入力を復号化データ記憶部６８１からの読み出しに切り替えて、ステージｎ＋５を起動している。
【００４０】
本実施例では、このように、各処理ユニットＵ０，Ｕ１，Ｕ２で対象となるピクチャをＩピクチャと非Ｉピクチャに切り替えながらパイプラインステージを起動するが、各処理ユニットＵ０，Ｕ１，Ｕ２で処理対象に応じて必要なコンテキストを切り替える必要がある。コンテキストは一般には処理内容を規定する制御レジスタや結果を示す状態レジスタ、内部メモリ等を含む。これらのコンテキストを高速に切り替えるためには、上記のコンテキストをＩピクチャ用と非Ｉピクチャ用に二重化して持つことで実現可能である。しかし、この方法ではコンテキストを形成するハードウェア量が増えるので、ハードウェアを増やさないため、上記のレジスタや内部メモリ等コンテキストの内容を切り替えの度に外部の記憶手段、例えば、画像データメモリ６８にセーブ・リストアする方法が考えられる。ただし、この場合、セーブ・リストアの処理時間が必要となり図６（ｄ）に示すように遅延が発生する。図６（ｄ）は、コンテキストのセーブ・リストアによるオーバーヘッドを示す。図６（ｄ）では、ハッチングでコンテキスト切り替えの時間を示しており、右上がりのハッチングが非Ｉピクチャからのコンテキスト切り替えの時間、右下がりのハッチングがＩピクチャからのコンテキスト切り替えの時間を示す。
【００４１】
そこで、コンテキストの切り替え回数を削減するために、符号データ復号部６１に係数データ処理の結果をバッファリングする内部バッファを持たせ、Ｉピクチャの係数データ出力がマクロブロック複数個分蓄積されてから、係数データ処理の入力をＩピクチャ係数データに切り替えるように制御する。
【００４２】
図８は、符号データ復号部６１の構成を示すブロック図である。符号データ復号部６１は、符号データ復号処理部６１１と係数データバッファ６１２を有する。復号データ復号処理部６１１は、圧縮規格のシンタックスに従って動画像圧縮データのビット列を解釈して復号化し、マクロブロックの係数データや動きベクトルデータ等を出力する。係数データバッファ６１２は、不動データ復号処理部６１１が出力するＩピクチャの係数データをバッファリングし、制御部６７からの制御信号の指示に基づいてバッファリングされたＩピクチャの係数データを出力する。係数データバッファ６１２の容量は、ビデオデコーダ１３の構成に応じて設定される。係数データバッファ６１２は、図７に示す如き制御を行う場合には１マクロブロック以上のデータをバッファリングできる容量に設定され、後述する図９に示す如き制御を行う場合にはｍマクロブロック以上のデータをバッファリングできる容量に設定される。
【００４３】
ＭＢ（Macro Block）係数レディ信号は、Ｉピクチャの１マクロブロックの係数データを係数データバッファ６１２に出力したことを制御部６７へ通知する信号であり、係数データバッファ６１２に出力するべき係数データが少なくとも１マクロブロック分存在することを示す。図４及び後述する図１０のビデオデコーダ１３の場合、このＭＢ係数レディ信号はステータスの一部として制御部６７へ通知される。尚、後述する図１１のビデオデコーダ１３の場合、ＭＢ係数レディ信号は係数データ選択部６９へ通知される。
【００４４】
係数データバッファ６１２は、係数データバッファ６１２内の係数データを格納可能な容量が一定容量以下になった状態、或いは、使用可能な容量がなくなったフル状態になると、復号データ復号処理部６１１に停止指示を送り、係数データの復号処理の停止を指示する。
【００４５】
図６（ｅ）では、Ｉピクチャの係数データ処理が３個蓄積されたら、Ｉピクチャの係数処理を切り替える例を示している。図９は、この場合の制御部６７の処理を示すフローチャートである。図９中、図７と同一ステップには同一符号を付し、その説明は省略する。ステップＳ１１は、Ｉピクチャのｍ個のマクロブロックの係数データがレディであるか否かを判定する。ステップＳ１１の判定結果がＮＯであると、ステップＳ２の前にステップＳ１２が行われる。ステップＳ１２は、Ｉピクチャの符号データ復号処理が１画像フレーム分完了し、且つ、未処理のＩピクチャの係数データがあるか否かを判定し、判定結果がＮＯであると処理はステップＳ２へ進み、判定結果がＹＥＳであると処理はステップＳ４へ進む。ステップＳ１１の判定結果がＹＥＳであると、処理はステップＳ４へ進む。ステップＳ１３は、ステップＳ７の後に行われる。ステップＳ１３は、直前の入力係数データがＩピクチャのものであり、且つ、未処理のＩピクチャの係数データがあるか否かを判定する。ステップＳ１３の判定結果がＹＥＳであると処理はステップＳ４戻り、判定結果がＮＯであると処理はステップＳ１１へ戻る。
【００４６】
図６（ｅ）は、図９のステップＳ１１においてｍ＝３とした例である。図６（ｅ）において、図９のステップＳ１１の判定結果がＹＥＳとなるのはステージｎ＋３が完了後である。これにより、ｎ＋４〜ｎ＋６までの３ステージでＩピクチャの係数データを入力としてステージ処理が起動される。又、ステージｎ＋５の処理中にＩピクチャマクロブロック３のレディ状態が検出されるため、ステージｎ＋６の完了後、ステップＳ１３によって、ステージｎ＋７においてもＩピクチャの係数データを入力としてステージ処理が起動される。図６（ｅ）の例に示すように、Ｉピクチャの複数マクロブロックを連続して処理する制御によって、コンテキスト切り替えのオーバーヘッドを削減することが可能である。尚、図９のステップＳ１２は、Ｉピクチャの終端で上記所定個数未満のマクロブロックの係数データが未処理の場合、それらの未処理のマクロブロックの係数データの係数処理を完了するための判断を行う。
【００４７】
本実施例によれば、Ｉピクチャの符号データ復号処理において比較的多量の復号化データが出力されても、例えば外部メモリで構成される画像データメモリ６８を圧迫することなく、マクロブロック処理毎に発生し得る遅延を低減してデコード性能の劣化を防止可能なデコード方法、デコーダ及びデコード装置を実現することができる。これにより、デコード処理性能の安定した動画デコード処理が可能となる。
【実施例２】
【００４８】
図１０は、本発明の第２実施例におけるデコーダを示すブロック図である。図１０中、図４と同一部分には同一符号を付し、その説明は省略する。
【００４９】
本実施例のビデオデコーダ１３では、係数データ処理部が図１０に示すＩピクチャ用の係数データ処理部６１０２と非Ｉピクチャ用の係数データ処理部６１１２を有する。Ｉピクチャ用の係数データ処理部６１０２は、逆量子化部６２１−１と逆周波数変換部６２２−１を有する。一方非Ｉピクチャ用の係数データ処理部６１１２は、逆量子化部６２１−２と逆周波数変換部６２２−２を有する。逆量子化部６２１−１，６１１−２は、図４の逆量子化部６２１と同様の構成を有する。又、逆周波数変換部６２２−２，６２２−２は、図４の逆周波数変換部６２２と同様の構成を有する。これにより、制御部６７による係数データの選択やコンテキストの切り替え等の制御を省略することが可能となり、制御部６７への負荷が上記第１実施例と比較すると軽減される。又、Ｉピクチャと非Ｉピクチャの係数処理を並列して動作させることが可能となり、上記第１実施例よりも更に高速にデコード処理を行うことが可能となる。
【００５０】
本実施例によれば、Ｉピクチャの符号データ復号処理において比較的多量の復号化データが出力されても、例えば外部メモリで構成される画像データメモリ６８を圧迫することなく、マクロブロック処理毎に発生し得る遅延を低減してデコード性能の劣化を防止可能なデコード方法、デコーダ及びデコード装置を実現することができる。これにより、デコード処理性能の安定した動画デコード処理が可能となる。
【実施例３】
【００５１】
図１１は、本発明の第３実施例におけるデコーダを示すブロック図である。図１１中、図４と同一部分には同一符号を付し、その説明は省略する。
【００５２】
本実施例のビデオデコーダ１３では、図１１に示すように、符号データ復号部６１から出力されるＭＢ係数レディ信号が係数データ選択部６９へ通知される。係数データ選択部６９は、ＭＢレディ信号に基づいて、選択出力する係数データを符号データ復号部６１からのＩピクチャの係数データ或いは復号化データ記憶部６８１からの非Ｉピクチャの係数データから選択し、選択した結果を示す選択結果指示信号を制御部６７へ通知する。制御部６７は、選択結果指示信号に基づいて、次のマクロブロック処理のコンテキストを切り替えてマクロブロック処理を起動する。又、係数データ選択部６９は、マクロブロック処理の起動を受けて、必要な係数データを選択出力する。
【００５３】
図１２は、第３実施例における係数データ選択部６９の動作の一例を説明するフローチャートであり、図１３は、この場合の制御部６７の動作の一例を説明するフローチャートである。
【００５４】
図１２において、ステップＳ２１は、マクロブロック処理を起動可能なタイミングか否かを判定し、判定結果がＹＥＳであると処理はステップＳ２２へ進む。ステップＳ２２は、Ｉピクチャのマクロブロックの係数データがレディであるか否かを判定し、判定結果がＮＯであると処理はステップＳ２３へ進み、判定結果がＹＥＳであると処理はステップＳ２５へ進む。ステップＳ２３は、非Ｉピクチャのマクロブロックの係数データがあるか否かを判定し、判定結果がＮＯであると処理はステップＳ２２へ戻る。ステップＳ２３の判定結果がＹＥＳであると、ステップＳ２４は、係数データ選択部６９の入力係数データの選択を復号化データ記憶部６８１からの非Ｉピクチャの係数データに切り替える。一方、ステップＳ２２の判定結果がＹＥＳであると、ステップＳ２５は、係数データ選択部６９の入力係数データの選択を符号データ復号部６１からのＩピクチャの係数データに切り替え、処理はステップＳ２６へ進む。ステップＳ２６は、選択した結果を示す係数選択結果指示を制御部６７へ通知する。ステップＳ２７は、制御部６７からの起動指示があるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ２８へ進む。ステップＳ２８は、選択した結果に基づき係数データを係数データ処理部６２へ選択出力する。ステップＳ２８の後、処理はステップＳ２１へ戻る。
【００５５】
図１３において、ステップＳ３１は、マクロブロック処理を起動可能なタイミングであるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ３２へ進む。ステップＳ３２は、図１２のステップＳ２６による選択した結果を示す係数選択結果指示の通知があるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ３３へ進む。ステップＳ３３は、係数処理の各ユニットＵ０，Ｕ１，Ｕ１（図６（ａ）参照）のコンテキストを必要に応じて切り替える。ステップＳ３４は、各ユニットＵ０，Ｕ１，Ｕ２の処理を起動する起動指示を係数データ選択部６９へ出力する。係数データ選択部６９が起動指示を受けると、図１２のステップＳ２７の判定結果はＹＥＳとなる。ステップＳ３５は、各ユニットＵ０，Ｕ１，Ｕ１の処理のステージ完了を確認した上で処理をステップＳ３１へ戻す。
【００５６】
図１４は、第３実施例における係数データ選択部６９の動作の他の例を説明するフローチャートである。図１４中、図１２と同一ステップには同一符号を付し、その説明は省略する。
【００５７】
図１４において、ステップＳ２１の判定結果がＹＥＳであると、ステップＳ４２は、Ｉピクチャのｍ個のマクロブロックの係数データがレディであるか否かを判定する。ステップＳ４２の判定結果がＮＯであると処理はステップＳ４３へ進み、判定結果がＹＥＳであるとであると処理はステップＳ２５へ進む。ステップＳ４３は、Ｉピクチャの符号データ復号処理が１画像フレーム分完了し、且つ、未処理のＩピクチャの係数データがあるか否かを判定する。ステップＳ４３の判定結果がＮＯであると処理はステップＳ２３へ進み、判定結果がＹＥＳであると処理はステップＳ２５へ進む。又、ステップＳ２８の後、処理はステップＳ４４へ進む。ステップＳ４４は、直前の入力係数データがＩピクチャのものであり、且つ、未処理のＩピクチャの係数データがあるか否かを判定する。ステップＳ４３の判定結果がＹＥＳであると処理はステップＳ２５へ戻り、判定結果がＮＯであると処理はステップＳ２１へ戻る。
【００５８】
本実施例によれば、Ｉピクチャの符号データ復号処理において比較的多量の復号化データが出力されても、例えば外部メモリで構成される画像データメモリ６８を圧迫することなく、マクロブロック処理毎に発生し得る遅延を低減してデコード性能の劣化を防止可能なデコード方法、デコーダ及びデコード装置を実現することができる。これにより、デコード処理性能の安定した動画デコード処理が可能となる。
【００５９】
上記各実施例においては、一例としてMPEG-2デコーダを説明したが、本発明はMPEG-2デコーダに限定されず、H264/AVCデコーダ等にも同様に適用可能である。上記各実施例では、H264/AVCデコーダで用いられる空間予測画生成部、動き予測画重み付け部、ループフィルタ部等がMPEG-2デコーダの場合は不要であるため、説明の便宜上MPEG-2デコーダの例を説明したにすぎない。
【００６０】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【００６１】
【図１】従来のデコーダの一例を示すブロック図である。
【図２】従来のデコーダの動作を説明するタイミングチャートである。
【図３】本発明の一実施例におけるデコード装置を示すブロック図である
【図４】本発明の第１実施例におけるデコーダを示すブロック図である。
【図５】第１実施例におけるデコーダの動作の一例を説明するタイミングチャートである。
【図６】係数データ処理部の動作の一例を説明する図である。
【図７】第１実施例における制御部の動作の一例を説明するフローチャートである。
【図８】第１実施例における符号データ復号部の構成を示すブロック図である。
【図９】第１実施例における制御部の動作の他の例を説明するフローチャートである。
【図１０】本発明の第２実施例におけるデコーダを示すブロック図である。
【図１１】本発明の第３実施例におけるデコーダを示すブロック図である。
【図１２】第３実施例における係数データ選択部の動作の一例を説明するフローチャートである。
【図１３】第３実施例における制御部の動作の一例を説明するフローチャートである。
【図１４】第３実施例における係数データ選択部の動作の他の例を説明するフローチャートである。
【符号の説明】
【００６２】
１０      デコード装置
１１      フロントエンド処理部
１２      デマルチプレクサ部
１３      ビデオデコーダ
１４      オーディオデコーダ
１５      ビデオ出力系
１６      オーディオ出力系
６１      符号データ復号部
６２      係数データ処理部
６３      動きベクトルデータ処理部
６４      予測補償部
６７      制御部
６８      画像データメモリ
６９      係数データ選択部
【図１】
0004894793.tif 000002
【図２】
0004894793.tif 000003
【図３】
0004894793.tif 000004
【図４】
0004894793.tif 000005
【図５】
0004894793.tif 000006
【図６】
0004894793.tif 000007
【図７】
0004894793.tif 000008
【図８】
0004894793.tif 000009
【図９】
0004894793.tif 000010
【図１０】
0004894793.tif 000011
【図１１】
0004894793.tif 000012
【図１２】
0004894793.tif 000013
【図１３】
0004894793.tif 000014
【図１４】
0004894793.tif 000015