(57)【要約】【課題】ビデオビットストリーム内の一連のマクロブロックを処理するビデオでコーダにおいてテクスチャ復号を行う装置及び方法を提供する。【解決手段】このビデオテクスチャ復号方法は、特に複数のプロセッサを組み込んだデコーダにおける実施に好適である。この方法は、データ非依存動作をデータ依存（逐次）動作から分離し、多重処理をデータ非依存マクロブロックの処理に効率的に用いることができる。この方法は、好ましくは、データ依存動作セットにおける予測方向について仮定を行う。そして、予測決定を行い、必要に応じて、マクロブロックで動作するデータ非依存動作において転置を行うことにより仮定を補正する。この方法は、演算オーバヘッドを低減し、多重処理デコーダにおいて効率的に演算を分割することができる。【選択図】図４
2010063191.tif 000002
【特許請求の範囲】
【請求項１】
ビデオテクスチャ情報を復号するビデオテクスチャ情報復号装置において、
ビデオビットストリーム内からデータ依存動作を実行して、残りのデータ非依存動作が実行されるデータ構造を生成する手段と、
上記デコーダにおいてビデオオブジェクトプレーンに関してデータ非依存動作を実行する手段と、
上記データ依存動作を実行する手段から上記データ非依存動作を実行する手段に上記データ構造を送る転送バッファとを備えるビデオテクスチャ情報復号装置。
【請求項２】
上記データ依存動作を実行する手段は、復号動作の実行に適応した演算処理装置からなることを特徴とする請求項１に記載のビデオテクスチャ情報復号装置。
【請求項３】
上記データ依存動作を実行する手段は、可変長復号（ＶＬＤ）、予測方向決定（ＰＤＤ）、逆スキャン（ＩＳ）、逆ＤＣ予測（ＩＤＣＰ）、逆量子化（ＩＱ）、逆ＡＣ予測（ＩＡＣＰ）、マクロブロック形成（ＭＢ）からなるデータ復号動作から選択される１つ以上のデータ依存復号動作を実行することを特徴とする請求項２に記載のビデオテクスチャ情報復号装置。
【請求項４】
上記マクロブロック形成は、復号ヘッダ及びデータ情報を、上記データに対してデータ非依存動作を実行する複数のプロセッサに転送される通常フォーマットのデータ構造に変換することを特徴とする請求項３に記載のビデオテクスチャ情報復号装置。
【請求項５】
上記データ依存動作を実行する手段は、可変長復号（ＶＬＤ）を行うように構成された演算処理装置からなり、計算により又は仮定を行うことにより予測方向決定（ＰＤＤ）に達し、その後、逆スキャンが行われることを特徴とする請求項１に記載のビデオテクスチャ情報復号装置。
【請求項６】
上記データ非依存動作を実行する手段は、データ非依存データ構造に従って復号動作を実行するように構成されたマクロブロック演算処理装置からなることを特徴とする請求項１に記載のビデオテクスチャ情報復号装置。
【請求項７】
上記マクロブロック演算処理装置は、予測方向決定（ＰＤＤ）、データ転置、逆ＡＣ予測（ＩＡＣＰ）、逆ＤＣ予測（ＩＤＣＰ）、逆量子化（ＩＱ）、逆離散変換（ＩＤＣＴ）、動き補償（ＭＣ）からなるデータ動作から選択される１つ以上のデータ非依存復号動作を実行することを特徴とする請求項６に記載のビデオテクスチャ情報復号装置。
【請求項８】
上記マクロブロック演算処理装置は、予測方向決定（ＰＤＤ）を計算し、データ転置動作により予測方向仮定エラーを補正し、逆量子化（ＩＱ）を計算し、逆離散変換（ＩＤＣＴ）を計算し、動き補償（ＭＣ）を行うように構成されることを特徴とする請求項６に記載のビデオテクスチャ情報復号装置。
【請求項９】
デコーダスループットを高めるために、上記データ非依存動作を実行する手段を少なくとも２つ備えることを特徴とする請求項１に記載のビデオテクスチャ情報復号装置。
【請求項１０】
ビデオテクスチャ情報をマルチプロセッサで復号するビデオテクスチャ情報復号装置において、
順番に行わなければならないマクロブロック復号動作を実行するように構成され、データ非依存マクロブロック情報を保持するためのデータ構造を形成するように構成された第１の演算処理装置と、
データ非依存マクロブロック情報を受信するように構成された転送バッファと、
上記転送バッファに動作可能に接続され、上記データ非依存マクロブロック情報を受信するとともに、更なる復号動作を実行する少なくとも２つのマクロブロック演算処理装置とを備えるビデオテクスチャ情報復号装置。
【請求項１１】
上記マクロブロックプロセッサの上記復号動作は、ビデオオブジェクトプレーンに関して実行されることを特徴とする請求項１０に記載のビデオテクスチャ情報復号装置。
【請求項１２】
上記データ依存復号動作は、上記データ依存動作の実行条件として、他のマクロブロックから時間的に離れた更なる情報の収集を必要とする特定のマクロブロックに対して実行される動作からなり、上記データ依存動作は順番に処理されなければならないことを特徴とする請求項１０に記載のビデオテクスチャ情報復号装置。
【請求項１３】
データ非依存マクロブロック情報を保持するためのデータ構造を形成する上記構成は、復号ヘッダ及びデータ情報を、複数のプロセッサへの転送を行う通常フォーマットのデータ構造に変換するマクロブロックビルダからなることを特徴とする請求項１０に記載のビデオテクスチャ情報復号装置。
【請求項１４】
上記データ構造は、上記複数のプロセッサにおいて逐次処理を必要としないことを特徴とする請求項１３に記載のビデオテクスチャ情報復号装置。
【請求項１５】
多重処理デコーダでテクスチャ情報を復号するテクスチャ情報復号方法において、
第１のプロセッサにおいて、所定のビデオフォーマットに符号化されたビットストリームの一連のデータ依存動作に対してデータ非依存動作を実行し、
データ非依存構造化マクロブロックを他のプロセッサに転送し、
上記他のプロセッサのそれぞれにおいて上記データ非依存マクロブロックを実行し、
上記他のプロセッサから復号ビデオブロックを出力することを特徴とするテクスチャ情報復号方法。
【請求項１６】
上記転送は、
上記データ非依存構造化マクロブロックを転送バッファに書き込み、
実行帯域幅が使用可能なときに、上記他のプロセッサのうちの１つにより、上記データ非依存構造化マクロブロックのうちの１つをフェッチすることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項１７】
上記他のプロセッサによる上記データ非依存構造化マクロブロックのデータ非依存性により、上記非依存マクロブロックを順番に実行する必要がなくなることを特徴とする請求項１６に記載のテクスチャ情報復号方法。
【請求項１８】
上記データ依存動作は仮定として予測方向決定（ＰＤＤ）を行い、
上記仮定は、必要に応じて、後段の上記データ非依存動作に含まれる予測方向決定（ＰＤＤ）の実行時に変換により補正されることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項１９】
上記データ依存動作は、１次元デコーダ配列を後続の処理のために２次元配列に変換する逆スキャン（ＩＳ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２０】
上記データ依存動作は、ＤＣ予測を行う際に予測方向決定（ＰＤＤ）からの予測方向を用いる逆ＤＣ予測（ＩＤＣＰ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２１】
上記データ依存動作は、ＡＣ予測を行う際に予測方向決定（ＰＤＤ）からの予測方向を用いる逆ＡＣ予測（ＩＡＣＰ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２２】
上記他のプロセッサは、上記データ非依存マクロブロックの実行に用いられる少なくとも２つの演算処理装置からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２３】
上記データ依存動作は、１次元デコーダ配列を後続の処理のために２次元配列に変換する逆スキャン（ＩＳ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２４】
上記データ依存動作は、ＤＣ予測を行う際に予測方向決定（ＰＤＤ）からの予測方向を用いる逆ＤＣ予測（ＩＤＣＰ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２５】
上記データ依存動作は、予測方向決定（ＰＤＤ）又は予測方向仮定、逆スキャン（ＩＳ）、逆ＤＣ予測（ＩＤＣＰ）、逆ＡＣ予測（ＩＡＣＰ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２６】
上記データ依存動作は、前に復号されたブロックからの復号ＤＣ値に依存するＤＣ逆量子化（ＩＱ−ＤＣ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２７】
上記データ非依存動作は、逆量子化（ＩＱ）動作の一部からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項２８】
逆量子化（ＩＱ）動作の上記一部は、ＡＣ逆量子化（ＩＱ−ＡＣ）からなることを特徴とする請求項２７に記載のテクスチャ情報復号方法。
【請求項２９】
上記データ非依存動作は、変換動作に係数を用いる逆離散変換（ＩＤＣＴ）動作からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項３０】
上記データ非依存動作は、記憶されたビデオオブジェクトプレーンデータに基づく動き補償（ＭＣ）からなることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項３１】
上記ビットストリームは実質的にオブジェクト指向フォーマットで符号化されていることを特徴とする請求項１５に記載のテクスチャ情報復号方法。
【請求項３２】
上記ビットストリームはＭＰＥＧ−４ビデオフォーマットで符号化されていることを特徴とする請求項３１に記載のテクスチャ情報復号方法。
【請求項３３】
上記ビットストリームはＨ．２６３ビデオフォーマットで符号化されていることを特徴とする請求項３１に記載のテクスチャ情報復号方法。
【請求項３４】
複数の演算処理装置を用いたデコーダ内でテクスチャ情報を復号するテクスチャ情報復号方法において、
単一のサブプロセスにおいてデータ依存テクスチャ復号動作を処理し、
他のサブプロセスにおける処理のためのデータ非依存構造化マクロブロックデータを生成し、
上記構造化マクロブロックデータを上記サブプロセスに送り、
ビデオオブジェクトプレーンに関して、上記マクロブロックデータにデータ非依存動作を実行し、
上記マクロブロックデータの実行に応じてテクスチャ復号出力を生成することを特徴とするテクスチャ情報復号方法。
【請求項３５】
上記データ依存テクスチャ復号動作は、第１のマクロブロックに向けられたときに、動作を完了するために別のマクロブロックから追加情報の取得を必要とする動作からなることを特徴とする請求項３４に記載のテクスチャ情報復号方法。
【請求項３６】
上記別のマクロブロックは、上記第１のマクロブロックから時間的に離れたマクロブロックであることを特徴とする請求項３５に記載のテクスチャ情報復号方法。
【請求項３７】
上記サブプロセスのそれずれは、上記デコーダにおける別々の演算処理装置で実行されることを特徴とする請求項３４に記載のテクスチャ情報復号方法。
【請求項３８】
上記データ依存サブプロセスは単一の演算処理装置において実行されることを特徴とする請求項３４に記載のテクスチャ情報復号方法。
【請求項３９】
上記方法が実現される上記デコーダは、少なくとも３つの演算処理装置により構成されることを特徴とする請求項３４に記載のテクスチャ情報復号方法。
【請求項４０】
上記ビットストリームは実質的にオブジェクト指向フォーマットで符号化されていることを特徴とする請求項３４に記載のテクスチャ情報復号方法。
【請求項４１】
上記ビットストリームはＭＰＥＧ−４ビデオフォーマットで符号化されていることを特徴とする請求項４０に記載のテクスチャ情報復号方法。
【請求項４２】
上記ビットストリームはＨ．２６３ビデオフォーマットで符号化されていることを特徴とする請求項４０に記載のテクスチャ情報復号方法。
【請求項４３】
符号化ビデオビットストリームを受信するデコーダ内において方向予測に従って復号動作を実行する復号動作実行方法において、
ビデオビットストリームのデータについて、最初に上記予測方向を計算せずに予測方向を仮定し、
仮定した予測方向に従ってスキャンを行い、
上記データの予測方向を計算し、
予測方向の仮定が正しくない場合に上記データの転置を実行する復号動作実行方法。
【請求項４４】
更に、上記予測方向の計算の前に、いずれの数の動作でもよいが、追加復号動作を実行することを特徴とする請求項４３に記載の復号動作実行方法。
【請求項４５】
上記追加復号動作は逆ＤＣ予測からなることを特徴とする請求項４４に記載の復号動作実行方法。
【請求項４６】
上記追加復号動作は逆ＡＣ予測からなることを特徴とする請求項４４に記載の復号動作実行方法。
【請求項４７】
上記予測方向の仮定は、第１の演算処理装置により受信されるデータに対して実行され、上記予測方向の計算は、複数の演算処理装置間で実行される後段の復号において実行されることを特徴とする請求項４３に記載の復号動作実行方法。
【請求項４８】
上記第１の演算処理装置は、逐次処理を実行するように構成されることを特徴とする請求項４７に記載の復号動作実行方法。
【請求項４９】
上記逐次処理は、ＭＰＥＧ−４ビットストリーム内の可変長コードの復号からなることを特徴とする請求項４８に記載の復号動作実行方法。
【請求項５０】
上記逐次処理は、ブロックレベルで前段又は後段のデータに一般的に依存するプロセスを実行することを特徴とする請求項４８に記載の復号動作実行方法。
【請求項５１】
上記逐次処理は、仮定した予測方向に従って可変長復号及びスキャンを行うことを特徴とする請求項５０に記載の復号動作実行方法。
【請求項５２】
上記第１の演算処理装置は逆ＤＣ予測を実行するように構成されることを特徴とする請求項５１に記載の復号動作実行方法。
【請求項５３】
上記第１の演算処理装置は逆ＡＣ予測を実行するように構成されることを特徴とする請求項５１に記載の復号動作実行方法。
【請求項５４】
上記予測方向の仮定は、読込動作の数を低減するように選択されることを特徴とする請求項４７に記載の復号動作実行方法。
【請求項５５】
上記予測方向は、連続するメモリアドレスから係数が読み込まれる方向に基づいて仮定されることを特徴とする請求項５４に記載の復号動作実行方法。
【請求項５６】
上記予測方向の仮定は所定方向に従って行われることを特徴とする請求項５５に記載の復号動作実行方法。
【請求項５７】
上記仮定した予測方向は垂直方向として予め決定されることを特徴とする請求項５６に記載の復号動作実行方法。
【請求項５８】
複数の演算処理装置において実行される上記後段の復号では、
予測方向を決定し、
仮定した予測方向が正しくない場合に上記データを転置し、
上記データを逆量子化し、
上記データを逆離散変換し、
ビデオオブジェクトプレーンに関して上記データの動き補償を行うことを特徴とする請求項４７に記載の復号動作実行方法。
【請求項５９】
上記後段の復号では、更に逆ＤＣ予測を行うことを特徴とする請求項５８に記載の復号動作実行方法。
【請求項６０】
上記後段の復号では、更に逆ＡＣ予測を行うことを特徴とする請求項５８に記載の復号動作実行方法。
【請求項６１】
ビデオデコーダ内においてビデオデータに対する予測方向決定を先延ばしにする予測方向決定方法において、
続くビデオストリーム処理に用いられる予測方向の仮定を行い、
上記データについて予測方向決定を行い、
最初の仮定が正しくない場合には上記データを転置する予測方向決定方法。
【請求項６２】
上記予測方向の仮定は、上記デコーダにおいてデータ依存動作を実行するのに用いられることを特徴とする請求項６１に記載の予測方向決定方法。
【請求項６３】
予測方向決定の実行及び上記データの転置は、上記データに対してデータ非依存動作として行われることを特徴とする請求項６１に記載の予測方向決定方法。
【請求項６４】
上記予測方向の仮定は、続くデータ依存動作の演算オーバヘッドを低減する方向として選択されることを特徴とする請求項６１に記載の予測方向決定方法。
【請求項６５】
ビデオビットストリームを受信するデコーダ内で方向予測計算を実行する方向予測計算方法において、
ビデオビットストリームのデータについて、最初に予測方向を計算せずに予測方向を仮定し、
仮定した予測方向に従ってスキャンを行い、
上記データの逆ＤＣ予測を行い、
上記データの逆ＡＣ予測を行い、
予測方向を計算し、
予測方向の仮定が正しくない場合にデータの転置を実行し、
上記データの逆量子化を行い、
上記データの逆離散変換を行い、
ビデオオブジェクトプレーンに関して上記データの動き補償を行う方向予測計算方法。
【請求項６６】
上記予測方向の仮定は、プロセッサのオーバヘッドを低減する方向に基づいて選択されることを特徴とする請求項６５に記載の方向予測計算方法。
【請求項６７】
ビデオビットストリームを受信する多重処理デコーダ内で方向予測計算を実行する方向予測計算方法において、
第１の演算処理装置において逐次動作を実行し、
上記第１の演算処理装置において、ビデオビットストリームのデータについて、最初に予測方向を計算せずに予測方向を仮定し、
上記第１の演算処理装置において、仮定した予測方向に従ってスキャンを行い、
上記第１の演算処理装置において上記データの逆ＤＣ予測を行い、
上記第１の演算処理装置において上記データの逆ＡＣ予測を行い、
複数の演算処理装置のうちの１つにおいてブロックレベルの処理を実行し、
上記複数の演算処理装置のうちの１つにおいて予測方向を計算し、
予測方向の仮定が正しくない場合に、上記複数の演算処理装置のうちの１つにおいてデータの転置を実行し、
上記複数の演算処理装置のうちの１つにおいて上記データの逆量子化を行い、
上記複数の演算処理装置のうちの１つにおいて上記データの逆離散変換を行い、
上記複数の演算処理装置のうちの１つにおいて、ビデオオブジェクトプレーンに関して上記データの動き補償を行う方向予測計算方法。
【請求項６８】
ビデオビットストリームを受信する多重処理デコーダ内で方向予測計算を実行する方向予測計算方法において、
第１の演算処理装置において逐次動作を実行し、
上記第１の演算処理装置において、ビデオビットストリームのデータについて、最初に予測方向を計算せずに予測方向を仮定し、
上記第１の演算処理装置において、仮定した予測方向に従ってスキャンを行い、
複数の演算処理装置のうちの１つにおいてブロックレベルの処理を実行し、
上記複数の演算処理装置のうちの１つにおいて上記データの逆ＤＣ予測を行い、
上記複数の演算処理装置のうちの１つにおいて上記データの逆ＡＣ予測を行い、
上記複数の演算処理装置のうちの１つにおいて予測方向を計算し、
予測方向の仮定が正しくない場合に、上記複数の演算処理装置のうちの１つにおいてデータの転置を実行し、
上記複数の演算処理装置のうちの１つにおいて上記データの逆量子化を行い、
上記複数の演算処理装置のうちの１つにおいて上記データの逆離散変換を行い、
上記複数の演算処理装置のうちの１つにおいて、ビデオオブジェクトプレーンに関して上記データの動き補償を行うことを特徴とする方向予測計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはビデオ復号に関し、特にマルチプロセッサ環境での使用に適した復号動作を実行する方法に関する。
【０００２】
関連出願の相互参照
本出願は、２００２年１１月１３日に出願された米国特許出願番号１０／２９４，９２５に基づいて優先権を主張するものであり、この米国特許出願は、本出願において参照することにより援用される。
【０００３】
米国連邦後援の研究又は開発に関する供述
該当なし
【０００４】
コンピュータプログラムの付録に対する参照
該当なし
【０００５】
著作権保護を前提とした資料の注意
本特許書類の一部の資料は、アメリカ合衆国及び他の国の著作権法による著作権保護の対象である。著作権者は、本特許書類又は特許開示内容のあらゆる者による複製が米国特許商標庁の公式ファイル又は記録にあるものと同じである場合には、異議はないが、それ以外の場合には、全ての著作権を留保する。これによって、著作権者は、連邦法施行規則３７の第１．１４条に基づく権利を有し、しかも、それには限定されず、本特許書類を秘密に維持させる権利をいずれも放棄しない。
【背景技術】
【０００６】
現在、ビデオを符号化できる多数のフォーマットが使用可能である。このようなフォーマットの１つは、ＭＰＥＧ−４ビデオ符号化規格であり、ＭＰＥＧ−４ビデオ符号化規格は、オブジェクト指向符号化メカニズムをサポートするように設定されている。ＭＰＥＧ−４は、一般的に、数多くのビデオ応用に対して非常に有望なビデオ符号化規格であると考えられている。ＭＰＥＧ−４が有望とされるのは、少なくとも部分的に、現在、ＭＰＥＧ−４符号化において利用可能とされる多数のツールのおかげである。オブジェクト指向符号化方式を提供するのに加えて、ＭＰＥＧ−４を用いることにより、符号化ビットレート及び画質に関して、高い符号化効率を達成することができる。ＭＰＥＧ−４の高い符号化効率は、主として、他のビデオ符号化規格、例えばＭＰＥＧ−１、ＭＰＥＧ−２等になかった高度な符号化方式を組み込むことによって得られたものである。しかし、これらの高度な符号化技術を使用すると、ＭＰＥＧ−４や同様のアーキテクチャのフォーマットでの復号処理が複雑になるため、これらのビデオビットストリームに対してリアルタイムで動作するデコーダの実現が複雑になるということを認識しなければならない。
【０００７】
近年、業界のリソースは、多数のアプリケーションでリアルタイム復号を行うのに使用できる高速のデコーダ、例えばＭＰＥＧ−４等を設計することに、ますます向けられている。しかし、こうした努力は、殆ど高速のシングル演算処理装置（processing element）又は一対の高速演算処理装置を集積化したデコーダに向けられ、任意の数の低コストプロセッサを統合したデコーダを使用することを踏まえた問題解決には向けられていなかった。
【０００８】
ＭＰＥＧ−４フォーマット内で用いられる係数は、ＤＣ予測及びＡＣ予測を用いて符号化され、多くの場合、前に符号化されたマクロブロックからの情報が参照される。したがって、これらのマクロブロックの復号には、時間的に離れた他のマクロブロックに関するアクセス情報が必要であることがわかる。また、同様に、動きベクトルも、隣接するマクロブロックの動きベクトルから予測される。このような予測により、マクロブロックの復号には、前に復号されたマクロブロックからの情報へのアクセスが必要である。この必要条件は、ビデオオブジェクトプレーン（video object plane（以下、ＶＯＰという））に導かれる、入力ビットストリーム内のマクロブロックの復号を、最初のマクロブロックから最後のマクロブロックまでの順番で行わなければならないことを、意味している。従来のデコーダは、一般的に、この逐次マクロブロック処理系列（sequential macroblock processing paradigm）を強いられている。
【０００９】
図１は、ＭＰＥＧ−４ビットストリーム用に設けられた復号動作をブロックベースで１ブロックずつ行うデコーダの具体的な構成を示すブロックである。まず、符号化されたＭＰＥＧ−４ビットストリーム内から可変長復号（（variable length decoding）以下、ＶＬＤという）によってヘッダ及びデータ情報が復号され、続く動作により、使用する予測方向が決定される（（prediction direction decision）以下、ＰＤＤという）。そして、データは、一般的には、逆スキャン（（inverse scanning）以下、ＩＳという）、逆ＤＣ予測（（inverse DC prediction）以下、ＩＤＣＰという）、逆ＡＣ予測（（inverse AC prediction）以下、ＩＡＣＰという）、逆量子化（（inverse quantization）以下、ＩＱという）、逆離散コサイン変換（（inverse discrete cosine transform）以下、ＩＤＣＴという）が施され、最後に、ビデオオブジェクトプレーン（ＶＯＰ）に関連した動き補償が行われる。復号動作が予測方向に依存していると、復号動作を分割してマルチプロセッサで実行することによって復号処理を高速化することは、困難である。
【００１０】
復号中に、逆スキャン（ＩＱ）処理では、１次元配列のＤＣＴ係数は、後続の処理のために当然２次元配列に変えられる。ＭＰＥＧ−４ビットストリームのシンタックスでは、少なくとも３つの異なる逆スキャン方法が準備されている。具体的には、ジグザグスキャン（zigzag_scan）、水平優先スキャン（alternate_horizontal_scan）、垂直優先スキャン（alternate_vertical_scan）である。ビットストリーム自体は、逆スキャン方法を選択するための情報を含んでいない。したがって、適切なスキャン方法は、デコーダ内で、現ブロック及び隣接したブロックの復号ＤＣ係数の値に基づいて選択しなければならない。また、予測方向の決定（ＰＤＤ）では、前に復号されたブロックＦ［ｎ］からＤＣ値を得なければならない。ＰＤＤを実行することによって決定される予測方向は、逆ＤＣ予測（ＩＤＣＰ）動作及び逆ＡＣ予測（ＩＡＣＰ）動作において用いられる。これら２つの処理手順では、ＱＦＡ［ｎ−１］も使用されるが、このほかに、前に復号されたデータＦ［ｎ−１］も必要である。
【００１１】
従来のデコーダの設計は、符号化ビットストリームにおける高いレベルのデータ依存性によって制約され、その結果、逐次復号系列（sequential decoding paradigm）を一般的に採用していた。しかしながら、この従来の逐次復号系列は、多重処理デコーダ（multiprocessing decoder）の設計、特に、３つ以上のプロセッサ等、任意の数の演算処理装置（processing element）を組み込んだデコーダの設計には容易に拡張できない。これまでは、従来の演算分割方法（operation slicing methodology）に従って一対のプロセッサを採用したにもかかわらず、この逐次復号系列を維持するデコーダが考えられていた。これらの演算分割方法は、実質的に逐次動作を分割する際に実行オーバヘッドが大きくなることから、実現可能な性能向上を著しく妨げている。２つ以上のプロセッサで動作させると、実行オーバヘッドは大幅に大きくなり、実際の性能向上は実質的に制限される。
【００１２】
ＡＣ予測前に予測方向の決定を行う現在の復号方法は、復号性能、特に逆ＡＣ予測を実行する速度にも影響を与えてしまう。ビデオビットストリームは、多くの場合、高能率符号化方法を実現するめのＤＣ予測及びＡＣ予測に応じて決定されるＤＣ係数及びＡＣ係数を用いて符号化される。例えば、ＤＣ係数及びＡＣ係数は、ＭＰＥＧ−４ビットストリーム内のイントラ（INTRA）マクロブロックにおいて用いられる。しかし、デコーダ側では、図１に示すように、逆予測動作においてこれらのＤＣ係数及びＡＣ係数を用いる前に、予測方向を決定しなければならない。
【００１３】
ＤＣ係数又はＡＣ係数のいずれについても、予測方向は、復号されるブロックの周りの水平及び垂直ＤＣ係数の勾配を比較した結果に基づいて得られる。図２は、左側がブロックＡ、左上がブロックＢ、上側がブロックＣによりそれぞれ囲まれた現ブロックＸを示す。Ｆ［０］［０］で表す、前に復号されたブロックの逆量子化ＤＣ値を用いて、以下のようにＤＣ予測及びＡＣ予測の方向を確認する。すなわち、
（｜ＦA［０］［０］−ＦB［０］［０］｜＜｜ＦB［０］［０］−ＦC［０］［０］｜）
である場合、ブロックＣから予測を行い、それ以外の場合はブロックＡから予測を行う。
【００１４】
適応ＤＣ予測方法では、上述のように決定された方向に応じて、直前のブロックのＦ［０］［０］値、あるいは、前のブロックの行内からのすぐ上のブロックのＦ［０］［０］値を選択する。すなわち、ブロックＣからの予測の場合、
ＱＦX［０］［０］＝ＰＱＦX［０］［０］＋ＦC［０］［０］／／dc_scalar
となり、それ以外の場合は、
ＱＦX［０］［０］＝ＰＱＦX［０］［０］＋ＦA［０］［０］／／dc_scalar
となる。
【００１５】
上述の関係において、dc_scalarの値は、量子化のステップサイズにより得られる。これは、水平方向に隣接する適切なブロックＡ及び垂直方向に隣接する適切なブロックＣを用いて、マクロブロック内の各ブロックについて独立的に繰り返される。
【００１６】
Ｘで表す現ブロックの同じ位置のＡＣ係数を予測するため、前に符号化されたブロックの１行目又は１列目から係数を用いる。ブロック毎に解析を行うときに、ＤＣ係数予測のための最適な垂直方向又は最適な水平方向は、ＡＣ係数予測の方向を選択するときにも用いられる。例えば、特定のマクロブロックにおける前の隣接垂直及び水平ブロックとは無関係に、各ブロックを予測することが可能となることがわかる。図３は、ＡＣ予測において用いられる隣接ブロック及び係数を示す。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
したがって、多重処理デコーダ装置環境に効率的に適用できるテクスチャ復号方法及びＡＣ予測方法が必要である。本発明は、この要求及び他の要求を満たすとともに、これまでに開発されたテクスチャ復号方法の問題点を克服する。
【課題を解決するための手段】
【００１８】
復号動作が多数のサブプロセスに分散されるテクスチャ情報の復号方法を記載する。この方法は、多重処理デコーダにおける使用に特に適しており、少なくとも３つの演算処理装置を有する構成に特に適している。従来の逐次復号系列とは異なり、この方法では、動作を特定のマクロブロックに適用したときに、その動作が、他のマクロブロックに対して行われた動作からのデータの使用に依存するか否かに基づいて、テクスチャ復号動作を２つの一般クラス、すなわち、データ依存動作とデータ非依存動作に分離できることがわかっている。本発明は、受信したビデオビットストリームから、データ依存動作を第１のサブプロセスにおいて実行するように指示するとともに、それ以外のデータ非依存復号動作を他のサブプロセスに向ける。
【００１９】
この方法では、一般的に、第１のプロセッサにおいてビデオビットストリームに一連のデータ依存動作を実行した後、データ非依存構造のマクロブロックを他のプロセッサに転送して、復号処理を完了する。他のプロセッサは、データ非依存マクロブロックを実行して、ビデオオブジェクトプレーン（ＶＯＰ）に出力を供給する。第１のプロセッサから他のプロセッサにデータ非依存マクロブロックを送るために、好ましくは、転送バッファを用いる。これら他のプロセッサは、それぞれ、マクロブロックが使用可能となると、使用可能な処理帯域幅に応じて転送バッファから別々にマクロブロックをフェッチすることができる。出力がビデオオブジェクトプレーン（ＶＯＰ）に向けられた各プロセッサにおいて復号を完了する。本発明により復号動作を複数のプロセッサ間で分割することにより、オーバヘッド量を低減することができるとともに、オーバヘッドのペナルティを、用いる演算処理装置の数とはほぼ無関係にすることができる。
【００２０】
本発明の更なる側面によれば、予測方向仮定の後に復号動作を実行することにより、高速ＡＣ予測を行う方法を提供する。予測方向は後で決定するが、最初に仮定した予測方向と一致しない場合、データに対して転置動作を実行する。この方法は、多重処理環境における使用に特に適している。
【００２１】
予測方向は予め決定するかランダムに選択することができるが、逆ＡＣ予測を行うときにどの方向がオーバヘッドの低減につながるかを考慮して、仮定した予測方向を選択することが好ましい。単純に考えると、予測を実行する回路のアーキテクチャ属性、又は、システムの同様の属性が関連している。限定的ではなく一例として、予測方向は、ＡＣ予測の係数を順次的なメモリ位置から読み込むことができる方向等、所定の方向であると仮定する。一般的に、垂直予測により順次的なメモリ位置から係数をフェッチすることができ、１つのプロセッサにおけるインストラクションサイクル数を大幅に低減することができる。
【００２２】
本発明の方法は、多重処理デコーダについて大幅な性能向上につながる。逐次（データ依存）復号動作を実行するために第１のプロセッサを用い、ブロックレベルのデータの処理に複数の他のプロセッサを効率的に用いることができる。予測方向決定（ＰＤＤ）を先延ばしにすることにより、多数の復号動作を複数のプロセッサのうちの１つによる処理に委ねることができ、全体の復号速度を上げることができる。
【００２３】
本発明の目的は、ビデオデコーダにおいてテクスチャ復号速度を高めることである。
【００２４】
本発明の他の目的は、デコーダにおいてテクスチャ復号速度とプロセッサ速度との依存性を低減することである。
【００２５】
本発明の更なる他の目的は、多重処理デコーダにおいて効率的に実行することができるテクスチャ復号方法を提供することである。
【００２６】
本発明の更なる他の目的は、多重処理デコーダにおいてインストラクションストリーム分離を不要とすることである。
【００２７】
本発明の更なる他の目的は、復号前のビデオビットストリームのプリスキャンを不要とすることである。
【００２８】
本発明の更なる他の目的は、データ転送メカニズムの選択が柔軟な多重処理デコーダアーキテクチャを提供することである。
【００２９】
本発明の更なる他の目的は、ＭＰＥＧ−４やＨ．２６３等、従来のフォーマットを含む多数のビデオフォーマットに適用可能なテクスチャ復号方法を提供することである。
【００３０】
本発明の更なる他の目的は、多重処理デコーダ性能の向上を実現することである。
【００３１】
本発明の更なる他の目的は、ビデオデコーダにおいて、より容易に実行できるＡＣ予測を行う方法を提供することである。
【００３２】
本発明の更なる他の目的は、予測方向の計算を先延ばしにして、この多重処理デコーダにおける複数のプロセッサのうちの１つにより、この計算を実行できるようにする方法を提供することである。
【００３３】
本発明の更なる目的及び利点については、明細書の以下の部分において説明する。ここで、詳細な説明は、本発明の好ましい実施形態を十分に開示するためであり、本発明を限定するものではない。
【図面の簡単な説明】
【００３４】
【図１】符号化ビットストリームに対してテクスチャ処理動作を実行する従来のデコーダのブロック図である。
【図２】マクロブロック内の現ブロックと、一組の組の隣接したブロックを示すデータ図である。
【図３】現ブロックに対する各ブロック内のＡＣ係数の予測を示すデータ図である。
【図４】データ依存動作用とデータ非依存動作用にそれぞれ別個の処理部を有する、本発明の一実施形態に係るデコーダのブロック図である。
【図５】データ依存性に基づく復号動作の分離を示す、本発明の一実施形態に係るテクスチャ復号方法のフローチャートである。
【図６】複数の演算処理装置間に分散されたテクスチャ復号動作を示す、本発明の一実施形態に係るテクスチャ復号のフローチャートである。
【図７】メモリ内の係数の位置に対して垂直予測方向が示されたデータブロックのデータ図である。
【図８】４つの係数を計算するための２つのインストラクションを用いた、本発明の一側面に係るＳＩＭＤインストラクションの使用を説明するインストラクションリストである。
【図９】メモリ内の係数の位置に対して水平予測方向が示されたデータブロックのデータ図である。
【図１０】ＰＤＤ仮定の後に、復号データの補正に必要なＰＤＤ計算及び変換を行う、本発明の一側面に係る予測方法のフローチャートである。
【図１１】逐次プロセッサにおいて復号及び予測を行った後、多数のブロックレベルのプロセッサでブロック動作を実行する、本発明の一側面に係るデコーダのブロック図である。
【図１２】多重処理デコーダ内の複数の独立したマクロブロックプロセッサでＡＣ予測及びＤＣ予測を行う、本発明の一側面に係る予測方法のブロック図である。
【発明を実施するための形態】
【００３５】
以下、例示的な図面を参照して本発明を十分に説明する。
【００３６】
具体的に図面を参照し、例示的説明を目的として、図４〜図１２に一般的に示す装置において本発明を実施する。なお、この装置の構成及び構成部分の詳細は変更が可能であるとともに、この方法の具体的なステップ及び順序も変更が可能であり、これらはここで開示する基本概念から逸脱するものではない。
【００３７】
任意の数の演算処理装置（processing element）を備える多重処理デコーダ（multiprocessing decoder）において効率的に実現できるテクスチャデコーダ及び復号方法について説明する。また、ＡＣ予測をより容易にするための予測方向（ＰＤＤ）仮定を用いるＡＣ予測方法を説明する。この場合、その仮定が無効であることをＰＤＤが示す場合にはデータを後で変換する。本発明に係るビデオテクスチャ情報復号方法を用いることによって、例えばＭＰＥＧ−４、Ｈ．２６３フォーマット等の実質的にオブジェクト指向ビデオフォーマットに対して実行される復号動作を、データ依存動作（data dependent operation）とデータ非依存動作（data independent operation）に分割することができる。データ依存性とデータ非依存性との区別を明確にするために、特定のマクロブロックに対して実行されるデータ依存動作は、データ依存動作の実行条件として、他のマクロブロックから時間的に移動した情報を更に集める必要がある。その結果、データ依存動作は、シーケンス依存型（sequence dependent）であり、個々のマクロブロックを処理するように指示した場合、例えば複数の非同期演算処理装置（non-synchronized processing element）のうちの１つで処理する可能性があり、適切に実行できない。このため、データ依存動作は、前のマクロブロック又は後のマクロブロックからの情報収集に依存する。この決定的な違いを認識することにより、マルチプロセッサ（multiprocessor）によるビデオ復号に数多くの顕著な利点を与える本発明のアーキテクチャが得られる。
【００３８】
図４は、デコーダ１０の構成を示すブロック図であり、デコーダ１０において、第１のサブプロセス１２が演算処理装置内で実行され、また、第１のサブプロセス１２と転送バッファ２０を介して通信を行い、ビデオオブジェクトプレーン（ＶＯＰ）２２に出力する他のサブプロセス１４、１６、１８が他の演算処理装置で実行される。この例示的な実施形態では、各サブプロセスが別々の演算処理装置で実行されることを想定しているが、本発明に係るデータ依存性とデータ非依存性の分離が維持される限り、これらのサブプロセスは、演算処理装置と１対１の対応関係を有していなくてもよい。第１の演算処理装置上で実行される第１のサブプロセス１２は、ここでは、ＶＬＤ拡張（VLD_EXTENDED）プロセスと呼ぶ。この第１のサブプロセス１２は、ブロック２４のＶＬＤ、ブロック２６のＰＤＤ、ブロック２８のＩＳ、ブロック３０のＩＤＣＰ、ブロック３４のＩＡＣＰ、ブロック３６のマクロブロックビルダＭＢを含む、全てのデータ依存動作を実行する。
【００３９】
逆量子化後のＤＣ値は、前に復号されたブロックからＩＤＣＰによって必要とされ、ＶＬＤ拡張サブプロセス１２内から供給される。本発明における各動作は、ブロックレベルの情報に基づいている。しかしながら、本発明では、復号されたヘッダ及びデータ情報を通常のフォーマットのデータ構造に変換して、好ましくはデータ非依存マクロブロックを実行するマルチプロセッサに一様に転送できるようにするマクロブロックビルダ３６を備えている。このサブプロセスで得られるデータ構造は、他のデータ構造からの情報に依存せずに、更に処理することができる。ＶＬＤ拡張サブプロセスは、ここで第１の演算処理装置と称する、プロセッサエレメント（processor element）の１つに割り当てられる。この第１の演算処理装置をＶＬＤ拡張プロセッサ（VLD_EXTENDED_processor）と呼ぶ。なお、代替的に、ＶＬＤ拡張プロセッサ上で実行されるＶＬＤ拡張プロセスは、機能的構成又は分離構成に従って実行を分割するように、２つ以上のプロセッサエレメント間で分割してもよく、これは本発明の教示から逸脱するものではない。
【００４０】
デコーダ１０内でデータ非依存マクロブロックを実行する他の演算処理装置は、それぞれここではＭＢプロセッサと呼び、この実施形態の場合、具体的には３つの演算処理装置１４、１６、１８であり、これらを例示的に図４に示す。この多重処理デコーダ１０の実施形態において、サブプロセスは、単一のプロセスを実行するように構成された各演算処理装置と直接対応付けられていることから、各演算処理装置と同義語である。
【００４１】
ＶＬＤ拡張サブプロセスによって生成される構造化データは、ＭＢプロセッサに転送される。ＶＬＤ拡張プロセスによって生成される非依存マクロブロックデータはデータ依存性がないので、これらのデータブロックは、いかなる数の個々のＭＢプロセッサによっても、独立して処理することができる。また、ＶＬＤ拡張プロセスにより生成されるデータブロックは、あらゆる特別な順番で処理する必要がない。これにより、ＭＢプロセッサは、それぞれ、前のマクロブロックの処理完了後等、構造化データが使用可能となったときに転送バッファから構造化データをフェッチすることができる。マクロブロックプロセッサは、ＭＢプロセッサ内で十分な処理帯域幅が利用可能となったときに、利用可能なマクロブロックをフェッチする。なお、データ非依存構造化マクロブロックのデータ非依存性により、他の演算処理装置により所定の順序で非依存マクロブロックを実行する必要性が低減される。ＭＢプロセッサは、一連の動作、例えば逆量子化（ＩＱ）の一部（好ましくはＡＣ部）３８と、変換係数に基づく逆離散コサイン変換（ＩＤＣＴ）動作４０と、記憶された、例えばＶＯＰメモリ２２からのビデオオブジェクトプレーン（ＶＯＰ）データに基づく動き補償（ＭＣ）４２とを実行することによって、ＭＰＥＧ−４等のビデオビットストリームの復号を完了するためのデータ非依存動作を実行する。
【００４２】
図５は、本発明に係るビデオテクスチャ復号方法における処理を示すフローチャートであり、復号動作は、異なるサブプロセス、例えば多重処理デコーダ１０の各演算処理装置に別々に割り当てられるデータ依存動作とデータ非依存動作とに分割される。ステップ５０において、データ依存テクスチャ復号動作が単一のサブプロセス（ＶＬＤ拡張（VLD_EXTENDED））内で実行され、ステップ５２において、他のサブプロセス（ＭＣ）内で処理する構造化マクロブロックデータが生成され、ステップ５４において、サブプロセスに送られる。ステップ５６において、データ非依存動作が、ビデオオブジェクトプレーン（ＶＯＰ）に関するマクロブロックデータに対して実行され、ステップ５８において、マクロブロックデータの実行に応じてテクスチャ復号出力が生成される。
【００４３】
図６は、複数の演算処理装置を有するデコーダ１０で実行される方法を構成する動作を、より一般的な用語で示したフローチャートである。ステップ７０において、第１のプロセッサ内で、所定のビデオフォーマットに符号化されたビットストリームに対して一連のデータ依存動作が実行される。ステップ７２において、データ非依存構造化マクロブロックが他のプロセッサに転送される。ステップ７４において、他のプロセッサのそれぞれにおいて、データ非依存マクロブロックの復号動作が実行される。そして、ステップ７８において、他のプロセッサから復号ビデオブロックが出力される。データ非依存マクロブロックの処理には、わずか１台の他のプロセッサを用いれば済むが、このデコーダ１０においては少なくとも３代の演算処理装置を使用できるようにして、デコーダ１０のスループットを向上させることが好ましい。
【００４４】
上述した本発明の多重処理デコーダ及び方法は多くの利点がある。まず、多重処理の速度的利点を得るのに「分割」アーキテクチャは必要ないので、上述のアーキテクチャが、ＭＰＥＧ−４やＨ．２６３等、種々の符号化規格に適用可能である。本発明ではプリスキャンの必要がなく、柔軟なデータ転送メカニズムがサポートされることがわかる。これにより転送バッファは、性能向上のために高速データキャッシュを用いて実現されるか、低コストの外部メモリから組み立てることができる。用いるメモリアーキテクチャとは無関係に、データ転送に必要なオーバヘッドは最小である。ＶＬＤテーブルのコピーは、ＶＬＤ拡張プロセッサで使用するために１つのコピーのみでよく、他のＭＢプロセッサはＶＬＤテーブル内からの情報を必要としない。したがって、本発明に係るビデオテクスチャ情報復号方法を用いることにより、データキャッシュの必要条件が大幅に低減され、全体の性能が高くなる。
【００４５】
上述のテクスチャ復号を行う多重処理デコーダ及び方法を用いることにより、更に利点が得られる。以下、逆スキャンを行った後に、ＰＤＤの計算方法を変更することによりＡＣ予測を決定する方法について説明する。
【００４６】
予測方向が垂直方向である場合、図７に示すように、現ブロックの１行目が、その上のブロックの１行目から予測される。上述のように、垂直予測は以下のように行うことができる。
【００４７】
ＱＦX［ｉ］＝Ｃ［ｉ］＋Ｐ［ｉ］／／dc_scalar
ｉ＝０〜７
【００４８】
図８は、単一命令複数データ（single instruction multiple data（以下、ＳＩＭＤという））インストラクションを組み込んだマルチメディア演算処理装置において、本発明をどのように展開することができるかの一例を示すインストラクションリストである。高性能データ処理を達成するため、複数のマルチメディアプロセッサが単一命令複数データ（ＳＩＭＤ）インストラクションを組み込んでいることがわかる。これらＳＩＭＤプロセッサは、単一のインストラクションに応じて多数のデータエレメントを処理することができる。ＳＩＭＤインストラクションを使用することにより、本発明に係るビデオテクスチャ情報復号方法を実行する際に、ＭＰＥＧ−４や同様のアーキテクチャのビデオフォーマットにおけるＡＣ予測性能を向上させることができる。
【００４９】
なお、上述のＡＣ予測動作では、合計１４のインストラクションサイクルについて７回の除算と７回の加算が必要であった。しかし、図８に示すようにＳＩＭＤインストラクションを用いることにより、必要なインストラクションの数が大幅に低減される。図中のＳＩＭＤインストラクションの使用により、４つの係数を計算するのに２つのインストラクションサイクルのみ必要となり、ＡＣ予測を行うには４つのインストラクションサイクルでよい。上述の例は、各係数に１６ビットを使用し、ＳＩＭＤインストラクションに６４ビットのレジスタを使用すること想定している。本発明により、多重処理環境で効率的に演算シーケンスを実行することができるように演算シーケンスを再構成し、ＳＩＭＤベースのプロセッサに関する上述のようなプロセッサ固有の高速化の利用を可能にする方法が得られる。当業者は、種々のプロセッサアーキテクチャにおいて本発明を実施することができ、本発明がＳＩＭＤや同様のアーキテクチャに限定されないことがわかるであろう。
【００５０】
図９は転置の使用を示す。予測方向が水平方向である場合、現ブロックの１列目が、左側のブロックの一列目から予測される。一般的には予測方向の決定後に逆スキャンを行う。しかしながら、本発明では、予測方向決定（ＰＤＤ）を先延ばしにして、予測方向に対する仮定を行う。この仮定は好ましくは、係数の好ましい逐次読込に対応した方向等、どの方向が演算の複雑性を低減するかに基づいて行われる。そして、その仮定に従ってデータのスキャンを行う。この場合、仮定した垂直予測方向について水平優先スキャンを用いる。水平優先スキャンの転置が垂直優先スキャンになることがわかる。仮定した予測方向が垂直方向であるとする例を考えると、実際の予測が水平方向である場合、実際のデータではなくデータの転置が処理される。しかし、後段の処理において、結果の転置を行うことによりエラー訂正を行うことができる。データ非依存動作を実行する複数の演算処理装置のうちの１つにおいて後段で補正できる好ましい方向を、プロセッサのオーバヘッドの低下に基づいて選択することができることにより、多重処理効率を高め、係数の読込のペナルティ及び他の動作非効率性を低減又は排除することができるように動作順序を最適化することができる。
【００５１】
図１０は、復号ブロックを順序付け直すことにより、より高速な復号を行う本発明に係るビデオテクスチャ情報復号方法の一般的な処理を示すフローチャートである。ステップ９０において、ビデオビットストリームのデータに対して、最初に予測方向を計算せずに予測方向を仮定する。そして、ステップ９２において、仮定した予測方向に従ってスキャンを行う。ステップ９４において、仮定した予測方向に基づいて最適なデコーダ動作を実行する。ステップ９６において、実際の予測方向を計算する。ステップ９８において、最初の仮定が判定され、正しい場合には、変換の必要はなく、ステップ１０２において、更なるデコーダ動作を継続する。一方、仮定が正しくない場合、ステップ１００において、データの転置を実行し、その後、ステップ１０２において、更なる復号動作を実行する。これにはＩＱ、ＩＤＣＴ、ＭＣ等の動作が含まれる。
【００５２】
図１１は、本発明のデコーダ１１０を例示的に示すものであるが、デコーダ１１０は、まず逆スキャンを行った後、第１の演算処理装置１１２が複数のマクロブロック演算処理装置１１４、１１６、１１８、１２０に接続された多重処理デコーダにおいてＡＣ予測を決定する。第１の演算処理装置と他の演算処理装置との間でデータ非依存マクロブロックの通信を行う転送バッファ又は他の転送メカニズムについては図示を省略するが、従来のダブルバッファリング等、従来のいずれの形式のバッファリングでも用いることができることがわかる。
【００５３】
この実施形態における動作順序は、符号化されたＭＰＥＧ−４ビデオストリームをブロック１２２のＶＬＤ動作により受信し、その出力ＯＦＳ［ｎ］に対して、ブロック１２４にて水平優先スキャンを行い、ＰＯＦ［ｎ］を得る。ブロック１２４の出力には、前のブロックからの情報ＯＦＡ［ｎ−１］を受信するブロック１２６にて逆ＡＣ予測動作が行われるとともに、やはり前のブロックからの情報Ｆ［ｎ−１］を受けるブロック１２８にて逆ＤＣ予測動作が行われる。これで、データに対するデータ依存動作が行われ、データＯＦＡ［ｎ］が、４つのプロセッサエレメント１１４、１１６、１１８、１２０のうちの１つ等、マクロブロック演算処理装置のうちの１つに送られる。所定のアプリケーションにおける処理に適するように、いずれの数のマクロブロック演算処理装置を用いてもよいことがわかる。効率的な動作を行うため、少なくとも２つのマクロブロック演算処理装置が一般的に好ましい。
【００５４】
ブロック１３０にて、マクロブロック演算処理装置１１４で予測方向決定を行い、前の方向仮定が有効である場合、決定を行う。方向決定が無効である場合、ブロック１３２にてデータの転置を行った後、ブロック１３４にて逆量子化（ＩＱ）を行う。そして、ブロック１３６にてデータＦ［ｎ］に逆離散変換（ＩＤＣＴ）を行い、その出力ｆ［ｎ］に対して、ブロック１３８にて、ブロック１４０のビデオオブジェクトプレーン（ＶＯＰ）メモリに関して動き補償のための処理を行う。
【００５５】
予測方向決定（ＰＤＤ）１３０は、図中、ブロック１２６のＡＣ予測後に行うものと考えることができる。したがって、ＡＣ予測は仮定した方向に従って行われる。前述の例によれば、実際の予測方向が垂直方向であった場合、結果を転置する。この復号方法は、図示のマルチプロセッサデコーダアーキテクチャで用いる場合に特に有効である。図中、１つのプロセッサは主として逐次処理を実行するように構成され、他のプロセッサはマクロブロックレベル又はブロックレベルで処理を行うように構成されている。また、当業者は、代替的に、逐次動作を実行するプロセッサを、従来の分離された動作を用いる等、１つのプロセッサと同じように動作して単一のインストラクションストリームを共有する少数のプロセッサエレメントとして実現できることがわかる。
【００５６】
ＭＰＥＧ−４ビデオストリームの処理の例を考えると、主として逐次的なインストラクションを実行するプロセッサは、可変長コードを復号するように進み、各プロセスを実行する。その結果、ブロックレベルの復号段階を行い、後続の処理のためのデータ非依存データ構造を形成する。得られたデータ非依存データ構造は他のプロセッサに転送され、逆量子化（ＩＱ）、逆離散変換（ＩＤＣＴ）動作、動き補償（ＭＣ）動作等、更なる復号処理が行われる。この方法は、マクロブロックの処理用いられるプロセッサの数を制限しないので大規模に実現可能であることがわかる。このため、いずれの数のマクロブロック演算処理装置であっても、多重処理デコーダ装置における全体の復号速度は、一般的に逐次処理に用いられるプロセッサの速度によって制限されるので、逐次プロセッサのワークロードを低減することが最重要課題となる。
【００５７】
図１２は、例えば、ＶＬＤ１２２やスキャン１２４等のデータ依存動作の処理を行い、マクロブロック等のデータ非依存データ構造を、例えば、４つの演算処理装置１５４、１５６、１５８、１６０等、一連のデータ非依存演算処理装置に送る第１のプロセッサ１５２又はそれと同等のものを備えたデコーダ１５０を示す。データ非依存マクロブロックの形成、及び、マクロブロック転送メカニズムについては図示を省略する。また、このデコーダは、予測方向を後段に先延ばしする上述の方法を用いる。しかし、デコーダ１５０は、逆ＡＣ予測１２６と逆ＤＣ予測１２８の両方の実行も先延ばしにして、逐次的なデータ依存演算処理装置１５２から、演算処理装置１５４、１５６、１５８、１６０等のデータ非依存の多数演算処理装置に演算負荷をシフトできるように構成されている。前述のように、ＤＣ予測及びＡＣ予測を行うのに必要な計算では、時間のかかる除算動作を含む多数の演算動作を実行する。図示の例では、逆ＡＣ予測（ＩＡＣＰ）１２６、逆ＤＣ予測１２８、それまでの仮定に代わる予測方向決定（ＰＤＤ）計算１３０、正しくない仮定の補正に必要なデータ転置１３２、逆量子化１３４、逆離散変換（ＩＤＣＴ）、ビデオオブジェクトプレーン１４０に関して行われる動き補償１３８を含むデータ非依存動作を示している。本発明に係るビデオテクスチャ情報復号方法により、これらの時間がかかる計算を、所望レベルの性能を得るのに必要な数に増やすことができるデータ非依存マクロブロックプロセッサに対してシフトすることが可能となる。
【００５８】
したがって、本発明は、当業者にとって明らかな多数の変更によっても実現できる多重処理デコーダにおけるリアルタイムテクスチャ復号を行う方法を提供することがわかる。特に、ＰＤＤ、ＩＳ、ＩＤＣＰ、ＩＡＣＰ等として記載した上述のデータ依存動作セットは、当業者により本発明の開示範囲から逸脱せずに、変更又は更なる分割を行ってよい。また、本発明は、ＡＣ予測及びＤＣ予測を伴う復号動作を実行する方法を記載している。この方法は、ＭＰＥＧ−４ビットストリーム及び一連の復号動作を用いる場合の例として示したが、本発明の教示は、当業者により他のオブジェクト指向ビデオフォーマットに適用してもよい。また、予測方向は後段で必要に応じて補正されるが、その予測方向の有利な仮定に基づいて逆ＡＣ予測を容易に行うことができるため、広い適用範囲が得られる。
【００５９】
上述の説明は多数の具体的事項を含んでいるが、これらは本発明の範囲を限定するのではなく、単に、本発明の現段階で好ましい実施形態の幾つかを説明するものである。したがって、本発明の範囲は、当業者にとって明らかとなる他の実施形態も全て含むものであることから、本発明の範囲は、添付の特許請求の範囲によってのみ限定される。特許請求の範囲において、構成要素を単数形で示す場合、明示的な記載がない限り「１つのみの」という意味ではなく、「１つ以上の」という意味である。上述の好ましい実施形態の構成要素に相当する、当業者にとって周知の構造的、化学的、機能的要素は、全て、参照により本出願において明示的に援用し、本出願の特許請求の範囲に含まれるものとする。更に、装置又は方法は、本出願の特許請求の範囲に含まれるようにするため、発明により解決しようとする課題のそれぞれに対応する必要はない。更に、本開示内容の構成要素、コンポーネント、方法ステップは、いずれも、特許請求の範囲に明示的に記載されているか否かに関わらず、公開されるべきものではない。特許請求の範囲における構成要素は、いずれも、「するための手段（means for）」という用語を用いて明示的に記載されない限り、米国特許法（３５Ｕ．Ｓ．Ｃ．）第１１２条第６パラグラフの規定に該当するものではない。
【図１】
2010063191.tif 000003
【図２】
2010063191.tif 000004
【図３】
2010063191.tif 000005
【図４】
2010063191.tif 000006
【図５】
2010063191.tif 000007
【図６】
2010063191.tif 000008
【図７】
2010063191.tif 000009
【図８】
2010063191.tif 000010
【図９】
2010063191.tif 000011
【図１０】
2010063191.tif 000012
【図１１】
2010063191.tif 000013
【図１２】
2010063191.tif 000014
【手続補正書】
【提出日】平成21年12月17日(2009.12.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
符号化ビデオビットストリームを受信するデコーダ内において方向予測に従って復号動作を実行する復号動作実行方法において、
ビデオビットストリームのデータについて、最初に上記予測方向を計算せずに予測方向を仮定し、
仮定した予測方向に従ってスキャンを行い、
上記データの予測方向を計算し、
予測方向の仮定が正しくない場合に上記データの転置を実行する復号動作実行方法。
【請求項２】
更に、上記予測方向の計算の前に、いずれの数の動作でもよいが、追加復号動作を実行することを特徴とする請求項１に記載の復号動作実行方法。
【請求項３】
上記追加復号動作は逆ＤＣ予測からなることを特徴とする請求項２に記載の復号動作実行方法。
【請求項４】
上記追加復号動作は逆ＡＣ予測からなることを特徴とする請求項２に記載の復号動作実行方法。
【請求項５】
上記予測方向の仮定は、第１の演算処理装置により受信されるデータに対して実行され、上記予測方向の計算は、複数の演算処理装置間で実行される後段の復号において実行されることを特徴とする請求項１に記載の復号動作実行方法。
【請求項６】
上記第１の演算処理装置は、逐次処理を実行するように構成されることを特徴とする請求項５に記載の復号動作実行方法。
【請求項７】
上記逐次処理は、ＭＰＥＧ−４ビットストリーム内の可変長コードの復号からなることを特徴とする請求項６に記載の復号動作実行方法。
【請求項８】
上記逐次処理は、ブロックレベルで前段又は後段のデータに一般的に依存するプロセスを実行することを特徴とする請求項６に記載の復号動作実行方法。
【請求項９】
上記逐次処理は、仮定した予測方向に従って可変長復号及びスキャンを行うことを特徴とする請求項８に記載の復号動作実行方法。
【請求項１０】
上記第１の演算処理装置は逆ＤＣ予測を実行するように構成されることを特徴とする請求項９に記載の復号動作実行方法。
【請求項１１】
上記第１の演算処理装置は逆ＡＣ予測を実行するように構成されることを特徴とする請求項９に記載の復号動作実行方法。
【請求項１２】
上記予測方向の仮定は、読込動作の数を低減するように選択されることを特徴とする請求項５に記載の復号動作実行方法。
【請求項１３】
上記予測方向は、連続するメモリアドレスから係数が読み込まれる方向に基づいて仮定されることを特徴とする請求項１２に記載の復号動作実行方法。
【請求項１４】
上記予測方向の仮定は所定方向に従って行われることを特徴とする請求項１３に記載の復号動作実行方法。
【請求項１５】
上記仮定した予測方向は垂直方向として予め決定されることを特徴とする請求項１４に記載の復号動作実行方法。
【請求項１６】
複数の演算処理装置において実行される上記後段の復号では、
予測方向を決定し、
仮定した予測方向が正しくない場合に上記データを転置し、
上記データを逆量子化し、
上記データを逆離散変換し、
ビデオオブジェクトプレーンに関して上記データの動き補償を行うことを特徴とする請求項５に記載の復号動作実行方法。
【請求項１７】
上記後段の復号では、更に逆ＤＣ予測を行うことを特徴とする請求項１６に記載の復号動作実行方法。
【請求項１８】
上記後段の復号では、更に逆ＡＣ予測を行うことを特徴とする請求項１６に記載の復号動作実行方法。
【請求項１９】
ビデオデコーダ内においてビデオデータに対する予測方向決定を先延ばしにする予測方向決定方法において、
続くビデオストリーム処理に用いられる予測方向の仮定を行い、
上記データについて予測方向決定を行い、
最初の仮定が正しくない場合には上記データを転置する予測方向決定方法。
【請求項２０】
上記予測方向の仮定は、上記デコーダにおいてデータ依存動作を実行するのに用いられることを特徴とする請求項１９に記載の予測方向決定方法。
【請求項２１】
予測方向決定の実行及び上記データの転置は、上記データに対してデータ非依存動作として行われることを特徴とする請求項１９に記載の予測方向決定方法。
【請求項２２】
上記予測方向の仮定は、続くデータ依存動作の演算オーバヘッドを低減する方向として選択されることを特徴とする請求項１９に記載の予測方向決定方法。
【請求項２３】
ビデオビットストリームを受信するデコーダ内で方向予測計算を実行する方向予測計算方法において、
ビデオビットストリームのデータについて、最初に予測方向を計算せずに予測方向を仮定し、
仮定した予測方向に従ってスキャンを行い、
上記データの逆ＤＣ予測を行い、
上記データの逆ＡＣ予測を行い、
予測方向を計算し、
予測方向の仮定が正しくない場合にデータの転置を実行し、
上記データの逆量子化を行い、
上記データの逆離散変換を行い、
ビデオオブジェクトプレーンに関して上記データの動き補償を行う方向予測計算方法。
【請求項２４】
上記予測方向の仮定は、プロセッサのオーバヘッドを低減する方向に基づいて選択されることを特徴とする請求項２３に記載の方向予測計算方法。
【請求項２５】
ビデオビットストリームを受信する多重処理デコーダ内で方向予測計算を実行する方向予測計算方法において、
第１の演算処理装置において逐次動作を実行し、
上記第１の演算処理装置において、ビデオビットストリームのデータについて、最初に予測方向を計算せずに予測方向を仮定し、
上記第１の演算処理装置において、仮定した予測方向に従ってスキャンを行い、
上記第１の演算処理装置において上記データの逆ＤＣ予測を行い、
上記第１の演算処理装置において上記データの逆ＡＣ予測を行い、
複数の演算処理装置のうちの１つにおいてブロックレベルの処理を実行し、
上記複数の演算処理装置のうちの１つにおいて予測方向を計算し、
予測方向の仮定が正しくない場合に、上記複数の演算処理装置のうちの１つにおいてデータの転置を実行し、
上記複数の演算処理装置のうちの１つにおいて上記データの逆量子化を行い、
上記複数の演算処理装置のうちの１つにおいて上記データの逆離散変換を行い、
上記複数の演算処理装置のうちの１つにおいて、ビデオオブジェクトプレーンに関して上記データの動き補償を行う方向予測計算方法。
【請求項２６】
ビデオビットストリームを受信する多重処理デコーダ内で方向予測計算を実行する方向予測計算方法において、
第１の演算処理装置において逐次動作を実行し、
上記第１の演算処理装置において、ビデオビットストリームのデータについて、最初に予測方向を計算せずに予測方向を仮定し、
上記第１の演算処理装置において、仮定した予測方向に従ってスキャンを行い、
複数の演算処理装置のうちの１つにおいてブロックレベルの処理を実行し、
上記複数の演算処理装置のうちの１つにおいて上記データの逆ＤＣ予測を行い、
上記複数の演算処理装置のうちの１つにおいて上記データの逆ＡＣ予測を行い、
上記複数の演算処理装置のうちの１つにおいて予測方向を計算し、
予測方向の仮定が正しくない場合に、上記複数の演算処理装置のうちの１つにおいてデータの転置を実行し、
上記複数の演算処理装置のうちの１つにおいて上記データの逆量子化を行い、
上記複数の演算処理装置のうちの１つにおいて上記データの逆離散変換を行い、
上記複数の演算処理装置のうちの１つにおいて、ビデオオブジェクトプレーンに関して上記データの動き補償を行うことを特徴とする方向予測計算方法。