(57)【要約】【課題】ビデオデコーダとその動作方法を提供する。【解決手段】ビデオデコーダはメインメモリから伝送を受けた圧縮されたビデオデータのビット列内で現在フレームと連関された連続的なノットコーディドマクロブロックのグループを識別する。次に、ビデオデコーダは現在フレームを再構成するためにメインメモリの一番目の位置からローカルメモリまで、そしてメインメモリの二番目の位置まで以前フレームと連関され対応するマクロブロックのグループを読み取りする。これにより、連続的なノットコーディドマクロブロックに対してはデコーディングするときメモリ接近回数を減少させることができる。【選択図】    図７
2006174429.tif 000002
【特許請求の範囲】
【請求項１】
現在フレームと連関されたマクロブロックのシークエンスで連続的なノットコーディドマクロブロック（ｎｏｔ−ｃｏｄｅｄ  ｍａｃｒｏ  ｂｌｏｃｋ）を決定する段階と、
前記連続的なノットコーディドマクロブロックと関連された多重マクロブロック（ＤＭＡ：Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）演算を定義する段階と、
前記多重マクロブロック（ＤＭＡ）演算に応答してメインメモリから以前フレームと連関され対応するマクロブロックを読み取る段階と、
前記メインメモリに前記対応するマクロブロックを記録する段階と、
を含むことを特徴とするビデオデコーダ動作方法。
【請求項２】
前記連続的なノットコーディドマクロブロックを決定し多重マクロブロック（ＤＭＡ）演算を定義する段階は、
一番目のマクロブロックと関連されたヘッダを読み取る段階と、
一番目のマクロブロックがノットコーディドマクロブロックであるかを決定し、次のマクロブロックと関連されたヘッダを読み取る段階と、
前記次のマクロブロックがコーティングされていないことを決定し、少なくとも一番目と次のマクロブロックとに関連して多重マクロブロック（ＤＭＡ）演算を定義する段階と、をさらに含むことを特徴とする請求項１記載のビデオデコーダ動作方法。
【請求項３】
多重マクロブロック（ＤＭＡ）演算は、連続的なノットコーディドマクロブロックと関連してメモリ住所情報、ブロック大きさ情報、解像度情報、読み取り/書き込み命令のうち少なくとも一つを識別することを特徴とする請求項１記載のビデオデコーダ動作方法。
【請求項４】
前記連続的なノットコーディドマクロブロックを決定し多重マクロブロック（ＤＭＡ）演算を定義する段階は、
一番目のマクロブロックがコーディドマクロブロック（ｃｏｄｅｄ  ｍａｃｒｏ  ｂｌｏｃｋ）であるかを決定し、一つのマクロブロックＤＭＡ演算を実施する段階をさらに含むことを特徴とする請求項２記載のビデオデコーダ動作方法。
【請求項５】
前記一つのマクロブロックＤＭＡ演算は、
メインメモリから以前フレームと関連され対応する一つのマクロブロックを読み込む段階と、
前記一番目のマクロブロックをデコーディングし前記デコーディングされたマクロブロックを前記メインメモリに記録する段階と、をさらに含むことを特徴とする請求項４記載のビデオデコーダ動作方法。
【請求項６】
前記連続的なノットコーディドマクロブロックを決定し多重マクロブロックＤＭＡ演算を定義する段階は、
前記一番目のマクロブロックがコーティングされていないことを決定し、次のマクロブロックと関連されたヘッダを読み込む前にＤＭＡに待機命令を発生させる段階をさらに含むことを特徴とする請求項２記載のビデオデコーダ動作方法。
【請求項７】
前記メインメモリで前記対応するマクロブロックを読み取りし、前記メインメモリに前記対応するマクロブロックを記録する段階は、
前記メインメモリ内の一番目のメモリ位置から対応するマクロブロックを読み取りし、第１ローカルメモリに前記ブロックを記録する段階と、
前記第１ローカルメモリから対応するマクロブロックを読み取りし、前記メインメモリ内の二番目のメモリ位置に前記ブロックを書き込む段階と、を含むことを特徴とする請求項１記載のビデオデコーダ動作方法。
【請求項８】
前記メインメモリで前記対応するマクロブロックを読み取りし、前記メインメモリに前記対応するマクロブロックを記録する段階は、
第２ローカルメモリ内にフレームと関連され圧縮されたビデオデータのビット列を貯蔵する段階と、
マクロブロックのシークエンスと関連して圧縮されたビデオデータの貯蔵されたビット列をデコーディングする段階と、をさらに含むことを特徴とする請求項７記載のビデオデコーダ動作方法。
【請求項９】
前記多重マクロブロックＤＭＡ演算と関連された前記メインメモリ内の前記以前フレームの対応するマクロブロックのデータ領域は１６列で構成された四角形態であり、前記以前フレームの前記対応するマクロブロックのデータは列単位の演算によって前記メインメモリからまたは前記メインメモリに伝送されることを特徴とする請求項１記載のビデオデコーダ動作方法。
【請求項１０】
現在フレームと連関されたマクロブロックのシークエンス内でノットコーディドマクロブロック（ここで、前記ノットコーディドマクロブロックは一つのノットコーディドマクロブロック及び連続されたノットコーディドマクロブロックのグループを含む）を順次に識別する段階と、
前記それぞれのコーディドマクロブロックに対するデコーディング演算を実施する段階と、
前記それぞれの一つのノットコーディドマクロブロックに対して一つのマクロブロックＤＭＡ演算を実施する段階と、
前記連続的なノットコーディドマクロブロックのそれぞれのグループに対して多重マクロブロックＤＭＡ演算を実施する段階と、
を含むことを特徴とするビデオデコーダ動作方法。
【請求項１１】
前記多重マクロブロックＤＭＡ演算は、
メインメモリから以前フレームと連関された連続的なマクロブロックに対応するグループを読み取りし、ローカルメモリに前記連続的なマクロブロックの対応するグループを記録する段階と、
ローカルメモリから前記連続的なマクロブロックに対応するグループを読み取りし、前記メインメモリに前記連続的なマクロブロックの対応するグループを記録する段階と、を含むことを特徴とする請求項１０記載のビデオデコーダ動作方法。
【請求項１２】
圧縮されたビデオデータのビット列の伝送を受け、現在フレームと連関されたマクロブロックのシークエンスを認識する動き補償基盤のビデオデコーダ動作方法において、
メインメモリから対応する以前フレームのマクロブロックを読み取りし、連続的なノットコーディドマクロブロックのグループに存在するノットコーディドマクロブロックの他にマクロブロックのシークエンス内のそれぞれのマクロブロックに対して前記メインメモリに対応するデコーディングされたマクロブロックを書き込みすることを含むことを特徴とする動き補償基盤のビデオデコーダ動作方法。
【請求項１３】
前記動き補償基盤のビデオデコーダを動作させる方法は、
前記メインメモリから対応する以前フレームのマクロブロックを読み取りし、連続的なノットコーディドマクロブロックのそれぞれのグループに対して前記メインメモリに対応する前記以前フレームのマクロブロックの前記グループを書き込みする段階をさらに含むことを特徴とする請求項１２記載の動き補償基盤のビデオデコーダ動作方法。
【請求項１４】
現在フレームと連関されたクロブロックのシークエンス内でコーディドマクロブロックと、ノットコーディドマクロブロックとを識別することを特徴とする可変長デコーダと、
それぞれのコーディドマクロブロックに応答して前記メインメモリから以前フレームと連関され対応するマクロブロックを読み取りし、連続的なノットコーディドマクロブロックのそれぞれのグループに応答して前記メインメモリから前記以前フレームと連関され対応するマクロブロックのグループを読み取ＤＭＡ回路と、を含むことを特徴とする動き補償基盤のビデオデコーダ。
【請求項１５】
前記動き補償基盤のビデオデコーダは、圧縮されたビデオデータのビット列の伝送を受けるローカルメモリをさらに含み、
前記可変長デコーダは圧縮されたビデオデータのビット列をマクロブロックのシークエンスとしてデコーディングすることを特徴とする請求項１４記載の動き補償基盤のビデオデコーダ。
【請求項１６】
前記ＤＭＡ回路は、それぞれ一つのノットコーディドブロックに関して前記メインメモリで以前フレームと連関され対応するマクロブロックを読み取ることを特徴とする請求項１４記載の動き補償基盤のビデオデコーダ。
【請求項１７】
前記可変長デコーダは、それぞれのノットコーディドブロックが連続的なノットコーディドマクロブロックのグループ内に存在するかの可否を識別することを特徴とする請求項１４記載の動き補償基盤のビデオデコーダ。
【請求項１８】
前記可変長さデコーダは、連続的なノットコーディドブロックのそれぞれグループに対して少なくとも住所位置情報、ブロック大きさ情報、解像度情報、および読み取り/書き込み命令のうち少なくとも一つを識別することを特徴とする請求項１７記載の動き補償基盤のビデオデコーダ。
【請求項１９】
前記ＤＭＡ回路は、前記メインメモリからまたは前記メインメモリにデータを伝送する第１ＤＭＡユニット及び第２ＤＭＡユニットを含むことを特徴とする請求項１４記載の動き補償基盤のビデオデコーダ。
【請求項２０】
前記動き補償基盤のデコーダは、
可変長デコーダと第２ローカルメモリとにデータを伝送する第１ローカルメモリと、
前記第２ローカルメモリからデータの伝送を受ける動き補償器と、
前記動き補償器からデータの伝送を受け、デコーディングされたビデオデータを出力するビデオ復元回路と、をさらに含み、
前記第１ＤＭＡユニットは前記メインメモリから前記第１ローカルメモリまで圧縮されたビデオデータを伝送し、前記メインメモリから前記第２ローカルメモリまで連続的なノットコーディドマクロブロックのグループを伝送し、
前記第２ＤＭＡユニットは前記ビデオ復元回路で前記メインメモリに前記デコーディングされたビデオデータを伝送することを特徴とする請求項１９記載の動き補償基盤のビデオデコーダ。
【請求項２１】
前記第１ＤＭＡユニットは前記メインメモリで前記第２ローカルメモリまで前記マクロブロックのシークエンスとして圧縮されたビデオデータのビット列を伝送することを特徴とする請求項２０記載 動き補償基盤のビデオデコーダ。
【請求項２２】
前記動き補償基盤のビデオデコーダは、
可変長さデコーダにデータを伝送する第１ローカルメモリ、及び第２ローカルメモリと、
前記第２ローカルメモリからデータの伝送を受ける動き補償器と、
前記動き補償器からデータの伝送を受けデコーディングされたビデオデータを出力するビデオ復元回路と、をさらに含み、
前記第１ＤＭＡユニットは前記メインメモリから前記第２ローカルメモリに連続的なノットコーディドブロックのグループを伝送し、
前記第２ＤＭＡユニットは前記メインメモリから前記第２ローカルメモリに圧縮されたビデオデータを伝送し、前記ビデオ復元回路から前記メインメモリまでデコーディングされたビデオデータを伝送することを特徴とする請求項１９記載の動き補償基盤のビデオデコーダ。
【請求項２３】
前記ＤＭＡ回路は、前記メインメモリからまたは前記メインメモリまでデータを伝送することを特徴とする第１ＤＭＡユニット、第２ＤＭＡユニット、および第３ＤＭＡユニットを含み、
前記動き補償基盤のデコーダは前記可変長さデコーダにデータを伝送することを特徴とする第１ローカルメモリ、及び第２ローカルメモリと、
前記第２ローカルメモリからデータの伝送を受ける動き補償器と、
前記動き補償器からデータの伝送を受けデコーディングされたビデオデータを出力するビデオ復元回路と、をさらに含み、
前記第１ＤＭＡユニットは前記メインメモリから第２ローカルメモリまで連続的なノットコーディドマクロブロックのグループを伝送し、
前記第２ＤＭＡユニットは前記ビデオ復元回路からメインメモリまでデコーディングされたビデオデータを伝送し、
前記第２ＤＭＡユニットは前記メインメモリから前記第１ローカルメモリまで圧縮されたビデオデータを伝送することを特徴とする 請求項１４記載の動き補償基盤のビデオデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビデオデコーダ及びその動作方法に係り、特に、本発明はメインメモリとローカルメモリとの間にノットコーディドマクロブロックのグループを伝送することを特徴とする動き補償のビデオデコーダに関する。
【背景技術】
【０００２】
ビデオデコーダは多くの電子機器に装備されているが、例えば、デジタルビデオデスク（ＤＶＤ）を読み取るか、インターネットから受けたストリームメディアを処理するか、デジタルカメラ、ＰＤＡ及び携帯電話のビデオイメージを表示するのに使用される。
【０００３】
ビデオデコーダは、ビデオシークエンスを圧縮/エンコーティングされた形態で伝送を受け、圧縮解除/デコーディングした形態に変換することで動作する。エンコーティングされたビデオシークエンスはエンコーダと連結された入力装置を介して受ける場合があり、メモリから受けたり、無線やインターネット伝送を介して遠隔ソースから受ける場合もある。
【０００４】
エンコーディングされたビデオシークエンスは多種の互いに異なるエンコーディングフォーマットのうちいずれか一つデコーダに伝達される。例えば、エンコーディングされたビデオシークエンスを表現する最も普遍的な方法は、小さいイメージ領域に対応してコーディングされたユニットの集合体として表示することである。それぞれの小さいイメージ領域は“マクロブロック”と呼ばれ普通ピクセル値の集合で構成される。例えば、（ＭＰＥＧ：Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）のエンコーディングされたイメージの場合、それぞれマクロブロックは普通一つの１６Ｘ１６輝度値（Ｙ）ブロックと２つの８Ｘ８彩度値（ＵＶ）ブロックで構成される。他の場合にはピクセルを（ＲＧＢ）値、明暗値またはデジタルイメージ表現において他のいかなる形態にも構成することができる。
【０００５】
マクロブロックに対応するそれぞれのエンコーディングされたユニット（以下、“マクロブロックユニット”という）はエンコーディングされたデータとそれに随伴するヘッダとを含む。エンコーディングされたデータは、例えば、エンコーディングされたピクセル値、連続するビデオフレームの間のマクロブロックの動きを推定するために使用される動きベクトル及び/またはエンコーディングされた動き補償エラー（例えば、動きベクトルがフレームの間にマクロブロックをどんなにうまく予想したかに対する測定値）を含むことができる。ヘッダは一般にマクロブロックユニット及び/それに対応するマクロブロックに関する情報を知らせてくれる。
【０００６】
それぞれのマクロブロックは普通一つの１６Ｘ１６ピクセル値のブロックと２つの８Ｘ８ピクセル値のブロックとで構成されるがピクセル値は一般的に８Ｘ８ブロックでエンコーディングされる。例えば、１６Ｘ１６ピクセル値のブロックは普通四つの８Ｘ８ピクセル値のブロックにＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を実施して四つの８Ｘ８ＤＣＴ係数ブロックを作ることでエンコーディングされる。
【０００７】
エンコーディングされたビデオをデコーディングされた、または圧縮が解除されたフォーマットに変換する過程は、普通、一連の順次的な演算を通じてなされる。この演算は一般に、それぞれのマクロブロックユニットのヘッダを解釈する作業、幾つのマクロブロックユニットに対してＩＤＣＴ（Ｉｎｖｅｒｓｅ Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）と動き補償とを実施する作業、そしてイメージ再構成及び同じイメージに対応するマクロブロックユニットの貯蔵を実施する作業を含む。
【０００８】
それぞれのヘッダを解釈する演算はヘッダに含まれた情報を読み取ることと、このような情報に基づいてエンコーディングされたデータを処理する方法を決定することとを含む。例えば、ヘッダがマクロブロックユニットが動き推定を使用せずエンコーディングされたことを示すとしたら（例えば、ＭＰＥＧデコーディングにおいてＩ−フレームをデコーディングするとき）、エンコーディングされたデータは動き推定が使用された場合とは異なる方法でデコーディングされる。
【０００９】
ＩＤＣＴを実施する演算はエンコーディングされたデータのＤＣＴ係数集合をピクセル値の集合または動き推定エラー値に変換することを含む。
【００１０】
それに動き補償を実施する演算は、デコーディングされた動き補償エラー値を以前にデコーディングされたイメージで最小の一つのマクロブロックに基盤した参照データに加えることを含む。以前にデコーディングされたイメージでマクロブロックの位置はマクロブロックヘッダ内の動きベクトルによって定義される。即ち、マクロブロックヘッダ内の動きベクトルは以前にデコーディングされたフレームでマクロブロックを見つけることに使用される。万一、参照データが一つ以上のマクロブロックに基づいている場合には（例えば、ＭＰＥＧデコーディングにおいてＢ−フレームをデコーディングするとき）保管されたマクロブロックを生成するために一つ以上のマクロブロックが組合わ（例えば、保管によって）され、参照データが一つ以上のマクロブロックに基づかない場合には、保管されていないマクロブロックが使用される。つぎに、保管されたマクロブロックまたは保管されていないマクロブロックからデコーディングされたマクロブロックを作るためにデコーディングされた動き補償エラー値を足すことで修正されるか補償され、最終マクロブロックは現在イメージを再構成するのに使用される。
【００１１】
前述した演算の他にも、ビデオデコーダは可変長デコーディングＶＬＤ（例えば、Ｈｕｆｆｍａｎｎ）、逆量子化ＩＱなどを含む幾つかの追加的な演算を実施する。
【００１２】
ビデオデコーダの性能と関連した幾つかの変数としては、消費電力費、帯域幅、圧縮比率、情報損失、メモリ要求量及び大きさを含む。
【００１３】
電力損失ビデオデコーディングで重要な変数となるが、これはビデオデコーダがバッテリ寿命が限定された携帯用機器で頻繁に使用されるからである。また、過度な電力消費は電子部品を過熱させるので部品をさらに早く消耗させるか、故障を起こすようになる、結局、電力に効率的なビデオデコーダが望ましい。
【００１４】
また、帯域幅はビデオデコーディングで重要な変数となるが、これはデコーダを使用する装置が得ることが出来る有効なフレーム比率、及び/またはイメージ良質感に影響を与えるからである。例えば、特定のフレーム比率、解像度及びイメージの良質感を有するようにエンコーディングされたビデオシークエンスはこれに相応するビット比率でビデオシークエンスを受信、デコーディング及び伝送することができるビデオデコーダによってのみデコーディングすることができる。なによりも、ビデオデコーダの帯域幅は接近速度と貯蔵容量そしてクロック速度などによって決定される。
【００１５】
ビデオデコーダの圧縮率はビデオデコーダに伝送されたデータとビデオデコーダが作り出したデータの相対的大きさを意味する。高い圧縮率はビデオデコーダに伝送されたデータとビデオデコーダが作り出したデータの相対的差異が大きいことを意味する。高い圧縮率はメモリが限定されたシステムビデオデコーダに適合しているが、これはビデオデコーダが小さいデータから大きなビデオシークエンスを作ることができるからである。理論的にはビデオデコーダが実施することができる圧縮率には制限がないが実際に圧縮率は適切な結果のためのビデオ品質によって制限される。従って、ビデオエンコーディング技法は、元の入力ビデオシークエンスから可能な多くの情報を有する小さいエンコーディングされたビデオシークエンスを作ろうと努める。
【００１６】
そのようなエンコーディング技法は、現在ビデオフレームと以前ビデオフレームのどの部分が同じであるか、即ち、フレーム間に重要な差異がない部分を決定するためにこれらを比較する方法を含む。万一、現在と以前フレームのある部分とが同じであるとするとこれに対応するマクロブロックは現在フレームに“コーティングされない（ｎｏｔ−ｃｏｄｅｄ）”に指定される。即ち、エンコーディングされたビデオシークエンスにはマクロブロックが貯蔵されずマクロブロックが“コーティングされない”ことを示すヘッダが含まれる。その後、次のデコーディング手続きでデコーダが現在フレームを再構成するために以前フレームに貯蔵されたこれに対応するマクロブロックを使用する。
【００１７】
このような技法はビデオシークエンスに停止された要素が多い場合特に効率的である。この場合、ビデオ品質は減少しないで大きな圧縮が可能である。さらに、現在フレームを再構成するために以前フレームのマクロブロックを使用することはビデオシークエンスを再構成するためにデコーディングしなければならないマクロブロックの全体数を減少させ、結局、ビデオデコーダの処理量は増加する。要約すると、デコーダに使用される圧縮率を効果的に増加させることはデコーダに必要なメモリを減少させデコーダの速度を増加させる。
【００１８】
デコーダが入力ビデオシークエンスを正確に再生することができない方法でエンコーディングする場合、情報損失が発生する。例えば、エンコーディング手続きがビデオシークエンスを表現するために必要なビット数を減少させるために特定値で量子化する場合、情報損失が発生することがある。このような情報損失は、通常、量子化の程度に比例して発生する。
【００１９】
ビデオデコーダのメモリの大きさと必要量も重要な変数となるが、これはビデオデコーダがまれに小型装置や携帯装置に使用されるからである。このような装置では一般に非常に小さいメモリを要求するビデオデコーダが適合しているが、これはビデオデコーダに必要な空間を減少させるからである。
【００２０】
図１は従来のビデオデコーダ回路を示すブロック図である。ビデオデコーダ回路はビデオシークエンス内のマクロブロックのシークエンスを示す圧縮されたビット列をデコーディングするためにＩＤＣＴと動き補償とを使用する。
【００２１】
図１に示すように、ビデオデコーダ回路１００は第１ローカルメモリＬＭＯ１０、第２ローカルメモリＬＭ１（１２）、可変長デコーダ（ＶＬＤ）２０、ＩＱ/ＩＤＣＴ装置３０、ビデオ復元ユニット４０と動き補償器５０を含む。ビデオデコーダ回路１００はＤＭＡユニット６０とシステムバス７０を介してシステムメモリ８０に連結される。
【００２２】
図１で第１ローカルメモリ１０は圧縮されたビット列を貯蔵し、ＶＬＤ２０に圧縮されたビット列を出力する。圧縮されたビット列は一般的にシステムメモリ８０でＤＭＡユニット６０とシステムバス７０とを経由して第１ローカルメモリ１０に伝送される。ＶＬＤ２０はビット列に示されたＤＣＴ係数と動きベクトルとに基づいて可変長デコーディングを実施する。デコーディングされたＤＣＴ係数はＩＱ/ＩＤＣＴユニット３０に出力され、デコーディングされた動きベクトルはＤＭＡユニット６０に出力される。
【００２３】
ＩＱ/ＤＣＴユニット３０はＤＣＴ係数に基づいて逆量子化を実施した後、逆量子化されたＤＣＴ係数に対してＩＤＣＴを実施する。逆量子化手続きは、普通、ＤＣＴ係数に量子化値の集合をかけるが、量子化値は量子化手続きでＤＣＴ係数を量子化するために使用された値をいう。ＩＤＣＴ手続きはＤＣＴ係数ブロックをピクセル値またはエラー値の集合に変換するために周知の数学演算を用いる。
【００２４】
第２ローカルメモリ１２は動き補償を実施するのに使用する参照データを貯蔵する。参照データは、通常、以前のデコーディングされたフレームで少なくとも一つのマクロブロックを含み、以前のデコーディングされたフレームでマクロブロックの位置は圧縮されたビット列内の動きベクトルによって定義される。参照データはＤＭＡユニット６０とシステムバス７０とを使用してシステムメモリ８０から伝送することが出来る。即ち、ＤＭＡユニット６０が以前のデコーディングされたフレームからマクロブロックの位置を定義する動きベクトルをもらうと、これに対応する参照データはシステムメモリ８０から持ってくる。参照データは動き補償器５０に出力され、ビデオ復元ユニット４０に出力される前に処理される。動き補償器５０の処理過程は例えば一つ以上のマクロブロックから情報を結合すること、平均または保管されたマクロブロックを形成するために二つや四つの隣接ピクセルを保管することでサブ整数ユニットピクセル値を作ることを含む。
【００２５】
ビデオシークエンスＭＰＥＧエンコーディングは、複数個のマクロブロックが動き補償器で結合されることを示すビデオエンコーディング手続きの一例である。ＭＰＥＧエンコーディングにおいて、Ｐ−フレームはフレームのシークエンスで選択された以前/次のＩ−フレームまたはＰ−フレームで情報を結合することによりエンコーディングされる。以前/次のフレームはＰ−フレームがエンコーディングされる前にエンコーディングされ、Ｐ−フレームがデコーディングされる前にデコーディングされる。これはＰ−フレーム内にあるそれぞれのマクロブロックを表現するためにＩ−フレームまたはＰ−フレームに対する情報を使用するからである。
【００２６】
ある場合には、現在フレームをデコーディングするために以前のデコーディングされたフレームに対するいかなる情報も使用されない。ＭＰＥＧエンコーディングを例にすると、Ｉ−フレームは他のフレームに対する参照なしにエンコーディングされ、デコーディングされる。この場合には動き補償器５０の出力は必ずしも現在フレームのためのマクロブロックを再構成するために使用する必要がない。しかし、他の場合には動き補償器５０は平均や保管されたマクロブロックを出力する。
【００２７】
ビデオ復元ユニット４０は動き補償器５０によるマクロブロック出力とＩＱ/ＩＤＣＴユニット３０の結果に対応するピクセル値またはエラー値の出力集合を受ける。万一、ＩＱ/ＩＤＣＴユニット３０の出力が動き補償のためのエラー値を含むとするとエラー値は動き補償器５０の結果に対応する動き補償のマクロブロックに足され、結局、再構成されたマクロブロックは再構成された現在フレームを作るために他の再構成されたマクロブロックと結合される。万一、ＩＱ/ＩＤＣＴユニット３０がＩ−フレームをデコーディングする場合のようにピクセル値の集合で構成されるとしたら、再構成された現在フレームを作るためにピクセル値は他のピクセル値の集合と結合される。再構成された現在フレームが作られるとＤＭＡユニット６０に出力される。次に、ＤＭＡユニット６０に出力された再構成されたフレームはシステムバス７０を介してシステムメモリ８０内に貯蔵される。
【００２８】
図２は、通常、ビデオデコーダ回路１００によって実施される定型的な順序の演算を順次に示すタイミング図である。以下、明細書で各方法のステップを（ＸＸＸ）で表示する。
【００２９】
図１と図２を総合して参照すると、圧縮されたビット列はＤＭＡユニット６０によって第１ローカルメモリ１０に貯蔵され、ＶＬＤ２０に出力される。その後、ＶＬＤ２０は圧縮されたビット列に現れた量子化されたＤＣＴ係数と動きベクトルとをデコーディングすることで圧縮されたビット列を処理する（Ｓ１１）。デコーディングされた量子化ＤＣＴ係数はＩＱ/ＩＤＣＴユニット３０に出力され、デコーディングされた動きベクトルはＤＭＡユニット６０に出力される。
【００３０】
次に、ＤＭＡ６０はシステムメモリから動き補償をするのに使用する参照データを読み取りするが、参照データは前記で説明した通りに、ＶＬＤ２０から伝送された動きベクトルに基づく（Ｓ１２）。
【００３１】
次に、動き補償器５０は参照データに対して保管のような他のある必要な演算を実施しその結果であるマクロブロックはビデオ復元ユニット４０に出力される（Ｓ１３）。
【００３２】
ＶＬＤ２０の結果である量子化されたＤＣＴ係数は、ＩＱ/ＩＤＣＴユニット３０によって逆量子化されＩＤＣＴされた後、ビデオ復元ユニット４０に出力される（Ｓ１４）。その後、ビデオ復元ユニット４０は最終的に動きが補償されたビデオデータを作るのに使用する再構成されたマクロブロックを生成するために、動き補償器５０の結果であるブロックにＩＱ/ＩＤＣＴユニット３０の結果値を足して動き補償を実施する（Ｓ１５）。
【００３３】
最終的に、動きが補償されたビデオデータが作られるとそのデータはＤＭＡユニット６０に出力されシステムメモリ８０に貯蔵される（Ｓ１６）。Ｓ１１からＳ１６までの段階はビデオシークエンスが全部デコーディングされるまでビデオシークエンスのマクロブロックに同伴する数個の圧縮されたビット列に対して反復される。
【００３４】
前記で叙述した演算はビデオデコーダと関連された多様な因子を最適化するために変化することがある。例えば、前記で叙述したようにデコーダの圧縮率（結局情報損失）を増加/減少するために量子化の程度は増加/減少させることができる。それにも関わらず、下記の内容はデコーディング演算の一般的な流れを示し、特に、ＭＰＥＧを例に挙げることにする。
【００３５】
デコーディングされたビデオシークエンスの品質を大幅に減少しないでデコーダの圧縮率を増加させるために使用することができる一つの変形は、“ノットコーディド”マクロブロックがある場合、これを活用する技術を含む。この技術はビデオシークエンス内で連続するフレームが実質上互いに類似する場合（例えば、連続するフレーム間に相対的変化や動きが殆どない場合）に使用される。特定マクロブロックに対応する動きベクトルが０であると（例えば、エンコーディング手続きがマクロブロックをエンコーディングまたは圧縮しない場合）そのマクロブロックは“コーティングされていない”で指定される。即ち、マクロブロックユニットが作られずマクロブロックユニットのヘッダに“コーティングされていない”で設定される。以後のデコーディングシークエンスでノットコーディドマクロブロックは以前フレーム内の同じ位置にあるマクロブロックに対応する貯蔵されたデータによって定義され、貯蔵されたデータはノットコーディドマクロブロックに対する代替物で使用される。
【００３６】
ビデオデコーダ回路１００が“ノットコーディド”マクロブロックを含むビデオシークエンスを処理するとき、ＶＬＤ２０は前記のマクロブロックがコーディングされていないと指定されているか否かを決定するためにそれぞれのヘッダを解釈する。前記のマクロブロックがコーディングされていないとして指定された場合には、ＤＭＡユニット６０はシステムメモリ８０から以前フレームに対して前に貯蔵されたデコーディングされたマクロブロックを持ってくる。前述したように、以前フレームでデコーディングされたマクロブロックの位置は現在フレーム内の“ノットコーディド”マクロブロックの位置と同じである。従って、デコーディングされたマクロブロックは現在フレームに対するデコーディング処理の一つの過程としてシステムメモリ８０で読み取りされ第２ローカルメモリ１２に貯蔵された後、再度システムメモリ８０に書かれる。
【００３７】
図３はビデオデコーダが現在フレームと関連して三つの連続した“ノットコーディド”マクロブロックの入力を受けた状況で実施されるデコーディング演算を示すタイミング図である。図３に示すように、システムメモリ８０で圧縮されたビット列はＤＭＡユニット６０を経由して第１ローカルメモリ１０に貯蔵される。ＶＬＤ２０は圧縮されたビット列をデコーディングし、これに対応するマクロブロックユニットのヘッダを解釈する。マクロブロックユニットのヘッダを解釈した後、ＶＬＤ２０は前記のマクロブロックがコーディングされないと指定されたことを発見する。この場合、ＶＬＤ２０はＤＭＡ６０に「０」値を有する動きベクトルを出力する（Ｓ２１）。
【００３８】
ＤＭＡユニット６０はＶＬＤ２０の結果である動きベクトルに応じてシステムメモリ８０の一番目の位置で以前フレームと連関されたデコーディングされたマクロブロックを持ってきて、その後デコーディングされたマクロブロックは第２ローカルメモリ１２に貯蔵される（Ｓ２２）。一旦、第２ローカルメモリ１２に貯蔵されると、デコーディングされたマクロブロックはシステムメモリ８０内に指定された二番目の位置に再度書かれる（Ｓ２３）。
【００３９】
図３に示すように、Ｓ２１、Ｓ２２及びＳ２３演算は、現在フレームのノットコーディドマクロブロック“Ｔ−１”、“Ｔ”、“Ｔ＋１”それぞれに対して反復される。ノットコーディドマクロブロック“Ｔ＋１”がデコーディングされた後、コード化したブロック“Ｔ＋２”は図２に示したＳ１１でＳ１６段階を用いてデコーディングされる。
【００４０】
図３で示された従来の方法の一つの短所は、エンコーディングされたビデオシークエンス内のそれぞれノットコーディドマクロブロックが別途のメモリ接近演算を要求することである。それぞれのメモリ接近演算は相当量の電力（これはシステムメモリ８０の大きさと処理能力によって決定される）を要求するので、図３で示した数多くの反復的なメモリ接近演算を実施することは過度に多くの電力を消費する。このような問題を解決するために、ビデオシークエンスをデコーディングする新しい方法及び/新しいビデオデコーダ構造が必要である。
【発明の開示】
【発明が解決しようとする課題】
【００４１】
本発明はビデオデコーダ回路で電気節約と速度増加に対する必要性を認知し迅速でエネルギ効率的な方式でビデオシークエンスをデコーディングする特性を有する方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００４２】
本発明の一つの実施例によると、ビデオデコーダを動作させる方法が提供される。前記の方法は、現在フレームと連関された順次的なマクロブロックで連続的なノットコーディドマクロブロックを決定すること、連続的なノットコーディドマクロブロックに関して多重マクロブロックＤＭＡ演算を定義すること、多重マクロブロックＤＭＡ演算に応じてメインメモリで現在フレームと連関されこれに対応するマクロブロックを読み取りすること、そして、メインメモリに前記のマクロブロックを書き込みすることを含む。
本発明の他の実施例によると、ビデオデコーダを動作させる他の方法が提供される。前記方法は現在フレームと連関されたマクロブロックのシークエンスでコーディドブロックとノットコーディドマクロブロックを決定すること（ノットコーディドマクロブロックは一つのノットコーディドマクロブロックと連続的なノットコーディドマクロブロックのグループを含む）、それぞれのコーディドブロックに対してデコーディング演算を実行することを含む。前記方法はそれぞれの一つのノットコーディドマクロブロックに対して一つのマクロブロックＤＭＡ演算を実行することと連続されるノットコーディドマクロブロックのそれぞれグループに対して多重マクロブロックＤＭＡ演算を実行することとを含む。
【００４３】
本発明のさらに他の実施例によると、現在フレームと連関されたマクロブロックのシークエンスとして認識することができる圧縮されたビデオデータのビット列を伝送する動き補償基盤のビデオデコーダを作動させる方法が提供される。前記方法はメインメモリでこれに対応する以前フレームマクロブロックを読み取ることと連続的ノットコーディドブロックのグループに存在するノットコーディドブロックの外にマクロブロックのシークエンス内のそれぞれのマクロブロックに対応するデコーディングされたマクロブロックをメインメモリに書き込むこととを含む。
【００４４】
本発明のさらに他の実施例による動き補償基盤のビデオデコーダが提供される。前記ビデオデコーダは現在フレームと連関されたマクロブロックのシークエンスでコーディドされた及びノットコーディドマクロブロックを識別することを特性とする可変長デコーダ、それぞれのコーディドブロックに対応してメインメモリから以前フレームと連関された前記マクロブロックを読み取りすることを特性とするＤＭＡ回路、および、それぞれの連続的なノットコーディドマクロブロックに対応するメインメモリから以前フレームと連関された前記マクロブロックのグループを含む。
【発明を実施するための最良の形態】
【００４５】
以下、図面を参照して本発明の望ましい一実施例をより詳細に説明する。
【００４６】
下記の例示的な実施例は、エンコーディングされたビデオシークエンスをデコーディングするためにビデオデコーダを作動させる多様な方法を叙述するが、これによって、連続的なノットコーディドマクロブロックは個別的ではなくグループでシステムメモリとローカルメモリとの間に伝送される。また、このような例示的な実施例は多様な方法を実施することを特徴とするビデオデコーダを叙述する。
【００４７】
図４はエンコーディングされたビデオシークエンスをデコーディングするためにビデオデコーダを作動させる方法を叙述するタイミング図であり、ビデオシークエンスは一連の連続的なノットコーディドマクロブロックを含んでいる。エンコーディングされたビデオシークエンス内のそれぞれのマクロブロックはマクロブロックユニットをエンコーディングする圧縮されたビット列で表現される。  
【００４８】
それぞれのマクロブロックユニットはエンコーディングされたデータとそれに対するマクロブロックヘッダとを含む。エンコーディングされたデータは普通ブロックのそれぞれに対してコーディドされたか否かの可否を示すＣＢＰ（Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎ）を含む。エンコーディングされたデータは普通マクロブロックのそれぞれに対してコーティングされたかの可否を示すＣＢＰ（Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎ）を含む。マクロブロック情報に対するブロックは例えばピクセル値または動き補償エラー値で構成される。マクロブロックヘッダは一般的にＭＶＤ（Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ  Ｄｉｆｆｅｒｅｎｃｅ）、ＣＢＰに関する情報そしてどんな量子化値が使用されているかを含む。
【００４９】
図４に示すように、Ｓ３１段階では現在フレームと連関された圧縮されたビット列は、ＤＭＡユニットを経由してシステムメモリ（例えば、メインメモリ）で第１ローカルメモリに伝送される。圧縮されたビット列は第１ローカルメモリで可変長デコーダに出力され、マクロブロックユニットを作るためにビット列に対して可変長デコーディングが実施される。可変長デコーダはマクロブロックがコーディングされていないかを決定するためにマクロブロックユニット内のマクロブロックヘッダを調査する。マクロブロックがコーティングされていないことが決定されると可変長デコーダは現在フレームと連関された次のビット列をデコーディングし、これに対するマクロブロックもコーティングされていないかの可否を決定するためにマクロブロックヘッダを読み取る。図４の例に示すように、三つの連続的なマクロブロック“Ｔ−１”、“Ｔ”、及び“Ｔ＋１”はノットコーディドマクロブロックである。
【００５０】
幾つかの連続的なマクロブロックがノットコーディドとして決定されると、連続的なノットコーディドマクロブロックに対して多重マクロブロックＤＭＡ演算が実施される。前述したＤＭＡ演算は例えば、ＤＭＡユニットによってシステムメモリで読み取りされるデータブロックに関するデータブロック住所、ブロックの水平及び垂直大きさ、そして、データブロックに対する水平解像度を識別することができる。
【００５１】
Ｓ３２段階でＤＭＡユニットは以前フレームに関してシステムメモリ内の一番目の位置から第２ローカルメモリまで貯蔵されたデコーディングされたマクロブロックを読み取りするためにデータブロック住所、水平解像度そしてブロック大きさを使用する。以前フレームでデコーディングされたマクロブロックは現在フレームと連関された連続的なノットコーディドマクロブロックと一致する。
【００５２】
ＤＭＡユニットがあまり早くシステムメモリに接近することを防止するために圧縮されたビット列のシークエンスで一番目に（またはその次の）圧縮されたビット列がノットコーディドマクロブロックであることを発見した場合、ＤＭＡユニットに“Ｗａｉｔ”命令語が伝達される。これは図４で示された実施例に示すように、マクロブロック“Ｔ−１”がコーディングされていないことを発見したとき、再度マクロブロック“Ｔ”がコーディングされていないことを発見したとき、そして、さらにまたマクロブロック“Ｔ＋１”がコーディングされていないことを発見したときＤＭＡに対して“Ｗａｉｔ”命令語が与えられる。次に、ノットコーディドマクロブロックのシークエンスの後ろに一番目にコーディドブロックを発見した場合、ＤＭＡは実際に“ｒｅａｄ”演算を実施する。当然このような待機は特定システム構造で定義される場合、ＤＭＡ伝送を先にする方法に比べて実質的に時間的な制約と帯域幅の制限がある。しかし、ＤＭＡ伝送のためにノットコーディドマクロブロックを有用に集めることは可能である。
【００５３】
Ｓ３３段階で以前フレームに対するデコーディングされたマクロブロックは第２ローカルメモリでシステムメモリ内の二番目の位置まで書かれる。システムメモリに書かれたデコーディングされたマクロブロックはその後デコーディングされた現在フレームを再構成するに使用される。
【００５４】
システムメモリと第２ローカルメモリとの間でデコーディングされたマクロブロックを個別的に伝送しないでグループで伝送することで、全体のデコーディング演算に必要なメモリ接近周期の全体回数は減少する。従って、ビデオデコーダの作動速度は増加する反面それによる電力消費は減少する。
【００５５】
コーディドブロックと連関されたＤＭＡ伝送は従来方法によって処理される。即ち、一つのマクロブロックに対するＤＭＡ演算はコーディドブロック当たり実施される。一つのマクロブロックに対するＤＭＡ演算はシステムメモリの一番目の位置にある以前に最小限の一つのデコーディングされたフレームに基づいた参照データを読み取りする動作、動き補償を参照データに足して一番目のマクロブロックをデコーディングする動作、および、システムメモリの二番目の位置にデコーディングされたマクロブロックを書き込む動作を含む。参照データは通常一つまたは二つのマクロブロックを含むが、マクロブロックは現在フレームがＰ−フレームまたはＢ−フレームのうちいずれかであるかによって以前のＩ−フレームまたはＰ−フレーム若しくは以前と次のＩ−フレームまたはＰ−フレームからなる。
【００５６】
本発明で考慮した例示的な方法は、特定システム構造で応用される。以下、図５乃至図７で三つの例を叙述する。
【００５７】
図５は本発明の一つの実施例によるビデオデコーダ回路を示すブロック図である。図５に示すように、ビデオデコーダ回路は第１ローカルメモリ４１０、第２ローカルメモリ４１２、ＶＬＤ４２０、ＩＱ/ＩＤＣＴユニット４３０、ビデオ復元ユニット４４０、そして、動き補償器４５０で構成される。ビデオデコーダは前記の構成のほかにもシステムバス４７０を経由してシステムメモリ４８０と連結された第１ＤＭＡユニット４６０Ａと第２ＤＭＡユニット４６２Ａとを含む。
【００５８】
ＶＬＤ４２０は第１ローカルメモリ４１０による圧縮されたビデオデータ結果であるビット列を処理することで現在フレームと連関されたマクロブロックのシークエンス内でコーディドブロックとノットコーディドマクロブロックとを識別する。圧縮されたビデオデータのビット列は第１ローカルメモリ４１０によって出力される。
【００５９】
ＶＬＤ４２０によって識別されたそれぞれのコーディドブロックに対して第１ＤＭＡユニット４６０Ａはシステムメモリ４８０から第２ローカルメモリ４１２に以前フレームと連関され、これに対応するマクロブロックを読み取りする。万一、現在フレームがＢ−フレームであるとすると、第１ＤＭＡユニット４６０Ａはシステムメモリ４８０から第２ローカルメモリ４１２に後のフレームと関連されこれに対応する以前デコーディングされたマクロブロックも読み取る。動き補償器４５０は第２ローカルメモリ４１２から少なくとも一つのデコーディングされたマクロブロックの伝送を受け、少なくとも一つのマクロブロックを処理した後、その結果であるマクロブロックをビデオ復元ユニット４４０に出力する。
【００６０】
ビデオ復元ユニット４４０は動き補償器４５０の結果であるマクロブロックの伝送を受け、ＩＱ/ＩＤＣＴユニット４３０の結果である動き補償エラー値を足すことでマクロブロックに対して動き補償を実施する。以後、前記の結果である動き補償されたデコーディングされたマクロブロックはビデオ復元ユニット４４０で第２ＤＭＡユニット４６２Ａに出力され、第２ＤＭＡユニット４６２Ａはシステムメモリ４８０に動きが補償されたデコーディングされたマクロブロックを記録する。
【００６１】
それぞれのノットコーディドマクロブロックのグループに対して第１ＤＭＡユニット４６０Ａはシステムメモリ４８０内の一番目の位置から第２ローカルメモリ４１２に以前フレームと連関され、これに対応するマクロブロックのグループを読み取る。マクロブロックのグループはその後第１ＤＭＡユニット４６０Ａを経由してシステムメモリ４８０内の二番目の位置に使用される。
【００６２】
図５に示すように、第１ＤＭＡユニット４６０Ａはシステムメモリ４８０から第１ローカルメモリ４１０に圧縮されたビデオデータを読み取りし、システムメモリ４８０と第２ローカルメモリ４１２との間に連続されるノットコーディドブロックのグループを読み書きするに使用される。
【００６３】
図６は本発明の他の実施例によるビデオデコーダ回路を示すブロック図である。図６に示すように、ビデオデコーダ回路は第１ローカルメモリ４１０、第２ローカルメモリ４１２、ＶＬＤ４２０、ＩＱ/ＩＤＣＴユニット４３０、ビデオ復元ユニット４４０、そして動き補償器４５０を含む。ビデオデコーダ回路は前記の構成の他にもシステムバス４７０を経由してシステムメモリ４８０と連結された第１ＤＭＡユニット４６０Ｂと第２ＤＭＡユニット４６２Ｂとを含む。
【００６４】
ＶＬＤ４２０は第１ローカルメモリ４１０の結果である圧縮されたビデオデータのビット列を処理することで現在プレームと連関されたマクロブロックのシークエンス内のコーディドブロックとノットコーディドマクロブロックとを識別する。圧縮されたビデオデータのビット列は第１ローカルメモリ４１０によって出力される。
【００６５】
ＶＬＤ４２０によって識別されたそれぞれのコーディドブロックに対して第１ＤＭＡユニット４６０Ｂシステムメモリ４８０から第２ローカルメモリ４１２に以前フレームと関連されこれに対応するマクロブロックを読み取る。仮に、現在フレームがＢ−フレームであるとすると、第１ＤＭＡユニット４６０Ｂはシステムメモリ４８０から第２ローカルメモリ４１２に後のフレームと関連されこれに対応する以前にデコーディングされたマクロブロックも読み取る。動き補償器４５０は第２ローカルメモリ４１２から少なくとも一つのデコーディングされたマクロブロックの伝送を受け、少なくとも一つのマクロブロックを処理した後、その結果であるマクロブロックをビデオ復元ユニット４４０に出力する。ビデオ復元ユニット４４０は動き補償器４５０の結果であるマクロブロックの伝送を受け、ＩＱ/ＩＤＣＴユニット４３０の結果である動き補償エラー値を足すことでマクロブロックに対する動き補償を実施する。その後、前記の結果である動きが補償されたデコーディングされたマクロブロックは、ビデオ復元ユニット４４０によって第２ＤＭＡユニット４６２Ｂに出力され、次に、第２ＤＭＡユニット４６２Ｂはシステムメモリ４８０に動きが補償されたデコーディングされたマクロブロックを記録する。
【００６６】
ノットコーディドマクロブロックのグループに対して第１ＤＭＡユニット４６０Ｂはシステムメモリ４８０内の一番目の位置で第２ローカルメモリ４１２に以前フレームと連関され、これに相応するマクロブロックのグループを読み取る。その後、マクロブロックグループは第１ＤＭＡユニット４６０Ｂを経由してシステムメモリ４８０内の二番目の位置に書かれる。
【００６７】
第２ＤＭＡユニット４６２Ｂはシステム４８０から第１ローカルメモリ４１０に圧縮されたビデオデータを読み取りし、最終のデコーディングされたビデオデータをシステムメモリ４８０に書き込みするに使用される。
【００６８】
図７は本発明のさらに他の実施例によるビデオデコーダ回路を示すブロック図である。図７に示すように、ビデオデコーダ回路は第１ローカルメモリ４１０、第２ローカルメモリ４１２、ＶＬＤ４２０、ＩＱ/ＩＤＣＴユニット４３０、ビデオ復元ユニット４４０、そして動き補償器４５０を含む。ビデオデコーダ回路は前記の構成の他にもシステムバス４７０を経由してシステムメモリ４８０に連結された第１ＤＭＡユニット４６０Ｃ、第２ＤＭＡユニット４６２Ｃ、そして第３ＤＭＡユニット４６４Ｃも含む。
【００６９】
ＶＬＤ４２０は第１ローカルメモリ４１０の結果である圧縮されたビデオデータのビット列を処理することで、現在フレームと連関されたマクロブロックのシークエンス内のコーディドブロックとノットコーディドブロックを識別する。圧縮されたビデオデータのビット列は第１ローカルメモリ４１０によって出力される。
【００７０】
ＶＬＤ４２０によって識別されたそれぞれのコーディドブロックに対して第１ＤＭＡユニット４６０Ｃはシステムメモリ４８０から第２ローカルメモリ４１２に以前フレームと連関され、これに相応するマクロブロックを読み取る。仮に、現在フレームがＢ−フレームであるとすると、ＤＭＡユニット４６０Ｃはシステムメモリ４８０から第２ローカルメモリ４１２に後のフレームと関連されこれに対応する以前にデコーディングされたマクロブロックも読み取る。動き補償器４５０は第２ローカルメモリ４１２から少なくとも一つのデコーディングされたマクロブロックの伝送を受け、少なくとも一つのマクロブロックを処理した後、その結果であるマクロブロックをビデオ復元ユニット４４０に出力する。
【００７１】
ビデオ復元ユニット４４０は動き補償器４５０の結果であるマクロブロックの伝達を受けＩＱ/ＩＤＣＴユニット４３０の結果である動き補償エラー値を足すことでマクロブロックに対する動き補償を実施する。その後、前記の結果である動きが補償されたデコーディングされたマクロブロックはビデオ復元４４０によって第２ＤＭＡユニット４６２Ｃに出力され、次に、第２ＤＭＡユニット４６２Ｃはシステムメモリ４８０に動き補償されたデコーディングされたマクロブロックを記録する。
【００７２】
それぞれのノットコーディドマクロブロックのグループに対して、第１ＤＭＡユニット４６０Ｃはシステムメモリ４８０内の一番目の位置から第２ローカルメモリ４１２に以前フレームと関連されこれに対応するマクロブロックのグループを読み取る。その後、マクロブロックのグループは第１ＤＭＡユニット４６０Ｃを経由してシステムメモリ４８０内の二番目の位置に記録される。
【００７３】
第２ＤＭＡユニット４６２Ｃはシステムメモリ４８０にビデオ復元ユニット４４０の結果である最終でデコーディングされたビデオデータを記録し、第３ＤＭＡユニット４６４Ｃはシステムメモリ４８０から第１ローカルメモリ４１０に圧縮されたビデオデータを読み取る。
【００７４】
図５乃至図７に示す多様なＤＭＡユニットは独立的な物理的要素で定義するか、またはさらには独立的な動作個体を定義することができる。例えば、図５乃至図７に示されたそれぞれのＤＭＡブロック要素はハードウェアまたはソフトウェアとして定義するか、または単純に一つの集積ユニットの動作部として定義することができる。従って、一つ以上のＤＭＡを使用するのは多様な長所を提供する。
【００７５】
図５乃至図７に示す一つ以上のＤＭＡユニットを使用する一つの長所は、ビデオデコーダ回路によってある程度のパイプライニングが可能であることである。例えば、図６で示されたビデオデコーダ回路を使用する場合、図４で示された（Ｓ３４）と（Ｓ３９）の段階で第１ＤＭＡユニット４６０Ｂを使用する間第２ＤＭＡユニット４６２Ｂを使用することができる。従って、（Ｓ３４）と（Ｓ３５）段階は資源衝突なしに現在フレームと連関された２つの次のマクロブロックとに対して同時に実施することができる。
【００７６】
本発明による通常の知識を有する者であるならば、図５及び図７に示された例示的なビデオデコーダの演算をパイプライン段階で分ける多様な方法とパイプライン段階によりこれに対応するデコーディング命令をスケージュルする方法を理解することができるだろう。従って、特定のパイプライニングに対する理論、実現及び動作方法に対する詳細な説明は省略する。
【００７７】
図８は従来のビデオデコーダ回路でシステムメモリとローカルメモリと間にマクロブロックを読み取りし作成することに、平均的なシステムメモリ接近周期と本発明の実施例によるビデオデコーダ回路で使用された平均的なシステムメモリ接近周期とを比較したデータを図表で示したものである。
【００７８】
図８で“Ｍ”が書かれた列はビデオシークエンス内の連続的なノットコーディドブロックの数を列挙する。“従来技術”と書き込まれた列は従来のビデオデコーダを使用してシステムメモリとローカルメモリとの間にそれぞれ“Ｍ”のノットコーディドマクロブロックを読み書きするに必要なシステムメモリ周期の平均回数を示す。“本発明”と書かれた列は本発明の一つの実施例によるビデオデコーダを使用してシステムメモリとローカルメモリとの間にそれぞれ“Ｍ”のノットコーディドブロックを読み書きするに必要なシステムメモリ周期の平均回数を示す。
【００７９】
図８はシステムメモリは１０周期の列接近待機時間“Ｌ”を有するＤＲＡＭで構成されると仮定した。また、それぞれのマクロブロックは１バイトの輝度値を有する一つの１６Ｘ１６ブロックと１バイトの彩度値を有する２つの８Ｘ８ブロックで構成されると仮定した。それぞれのメモリ接近演算において、システムメモリはシステムメモリからローカルメモリに４バイトワードで伝送する。従って、従来のビデオデコーダを使用してシステムメモリローカルメモリ間に１６Ｘ１６輝度ブロックの一列を伝送するに必要な周期数は“Ｌ”＋４であり従来のビデオデコーダを使用して８Ｘ８彩度ブロックの一列を伝送するに必要な周期数は“Ｌ”＋２である。
【００８０】
本発明は追加的な行接近の遅延時間に対する損失なしにそれぞれの“Ｍ”マクロブロックに対する多数の行が一度に読み取りされる。従って、システムメモリとローカルメモリと間に組合わされた“Ｍ”マクロブロックの一行を伝送するに必要な周期数は１６Ｘ１６輝度ブロックに対しては“Ｌ”＋ＭＸ４であり８Ｘ８彩度ブロックに対しては“Ｌ”＋ＭＸ２である。
【００８１】
従って、従来のビデオデコーダ回路を使用して“Ｍ”マクロブロックを読み書きするために１６Ｘ１６輝度ブロックを読み取るには、“Ｍ”Ｘ（１６Ｘ（“Ｌ”＋４））の周期が必要でメモリに１６Ｘ１６輝度ブロックを書くには“Ｍ”Ｘ（１６Ｘ（“Ｌ”＋４））の周期が必要である。同様に“Ｍ”彩度ブロックを読み書きするには２Ｘ“Ｍ”Ｘ（８Ｘ（“Ｌ”＋２）＋８Ｘ（“Ｌ”＋２）の周期が必要である。
【００８２】
一方、本発明の一つの実施例による場合ビデオデコーダは“Ｍ”１６Ｘ１６ブロックを読み取りするには１６Ｘ（４Ｘ“Ｍ”＋“Ｌ”）の周期が必要で、“Ｍ”１６Ｘ１６ブロックを書き込みするには１６Ｘ（４Ｘ“Ｍ”＋“Ｌ”）の周期が必要である。同様に、本発明の一つの実施例によるビデオデコーダは“Ｍ”８Ｘ８彩度ブロックの読み書きは２Ｘ（８Ｘ（２Ｘ“Ｍ”＋“Ｌ”）＋８Ｘ（２Ｘ“Ｍ”＋“Ｌ”）の周期が必要である。
【００８３】
本発明により設計されたビデオデコーダ回路は従来のビデオデコーダ回路よりメモリ接近周期の数が相当少ないので、仮に、ノットコーディドマクロブロックの数が多く与えられた場合、ビデオデコーダ回路は従来のビデオデコーダよりずっとよい性能と電力消費に優れた効果を有する。
【００８４】
図８に示す結果は前記仮定下で本発明の一つの実施例による例である。実際に“接近周期”節約することは本発明により設計されたビデオデコーダを含むシステム上に特定構造に対する関数である。それにも若干のブロックが“コーティングされていない”と指定されることができるとしたら、ブロック単位で処理するビデオデコーディングをするどんなシステムでもメモリ接近周期を相当減少させることができる。
【００８５】
前述した背景技術と実施例とはＭＰＥＧ関連演算を実施するという仮定下にこれに対するシステムと関連して記述した。ＭＰＥＧは単に本発明を易しく説明するためのものに過ぎず、本発明はビデオデコーディング標準と技術を超える広い応用分野がある。同様に、“ローカルメモリ”や“ＤＭＡ”のような特定用語の使用はデータ伝送と貯蔵の広い機能を意味する。ある数及び/または形態のデータ貯蔵及び伝送要素は本発明の説明を含むシステム内で応用分野を発見するであろう。
【００８６】
前述した本発明では、メモリデータを個別的に伝送しないでブロック単位で伝送することでメモリ接近回数を減少させることができる。
また、メモリ接近回数を減少させることで電力効率をよくすると同時に性能を向上させることができる。
【００８７】
以上、本発明を実施例によって詳細に説明したが、本発明はこれに限定されず、本発明が属する技術分野において通常の知識を有する者であれば、本発明の思想と精神を離れることなく、本発明を修正または変更できる。
【図面の簡単な説明】
【００８８】
【図１】従来のビデオデコーダ回路のブロック図である。
【図２】エンコーティングされたビデオシークエンスをデコーディングする従来方法を説明するタイミング図である。
【図３】一連の連続的なノットコーディドマクロブロックをデコーディングする従来の方法を示すタイミング図である。
【図４】本発明の一つの実施例による一連の連続的なノットコーディドマクロブロックをデコーディングする方法を示すタイミングである。
【図５】本発明の他の実施例によるビデオデコーダ回路のブロック図である。
【図６】本発明のさらに他の実施例によるビデオデコーダ回路のブロック図である。
【図７】本発明のさらに他の実施例によるビデオデコーダ回路のブロック図である。
【図８】本発明による従来のビデオデコーダ回路と本発明によるビデオデコーダ回路において、マクロブロック当たりシステムメモリ接近周期の平均回数の比較を示すテーブルである。
【符号の説明】
【００８９】
１０、４１０      第１ローカルメモリ
１２、４１２      第２ローカルメモリ
２０      可変長デコーダ
３０      ＩＱ/ＩＤＣＴ装置
４０      ビデオ復元ユニット
５０      動き補償器
６０      ＤＭＡユニット
７０      システムバス
８０      システムメモリ
１００      ビデオデコーダ回路
４２０      ＶＬＤ
４３０      ＩＱ/ＩＤＣＴユニット
４４０      ビデオ復元ユニット
【図１】
2006174429.tif 000003
【図２】
2006174429.tif 000004
【図３】
2006174429.tif 000005
【図４】
2006174429.tif 000006
【図５】
2006174429.tif 000007
【図６】
2006174429.tif 000008
【図７】
2006174429.tif 000009
【図８】
2006174429.tif 000010