(57)【要約】信号におけるレート歪みコストを最適化するための機器および方法が開示される。機器は、複数の係数の各々に対して複数の候補を生成するように構成され得る量子化ブロックを含み得る。量子化ブロックは、複数の候補に、少なくとも一部基づき、それぞれ複数のアークをさらに生成し得る。量子化ブロックは、トレリス最適化技術を使用して、複数のアークのどれが最も低いコストを有するかを判断するように構成され得る。部分ビット推定が、レートを計算するために使用され得、逆ラムダが候補係数を計算するために使用され得る。
2015515812.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ信号を受信するように構成された符号器であって、
符号化規格に従って予測因子を提供するように構成された予測ブロックと、
残差を提供するために、前記予測因子を前記ビデオ信号から減算するように構成された減算器と、
前記残差を受信して、複数の係数を含む周波数領域で前記残差を提供するように構成された変換と、
前記複数の係数を連続的に受信し、複数の修正係数を生成するために、前記複数の係数に関連したレート歪みを最適化するように構成された量子化ブロックであって、前記量子化ブロックが、前記複数の係数の各々に対して複数の候補を生成するように構成され、部分レート推定を提供するように構成されたルックアップテーブルを使用して前記候補の各々に関連したレートを計算するように構成され、前記候補の各々に対するアークであって前記レートを含むアークを計算するように構成され、かつ、係数の最小コストの組の識別、および前記最小コストのアークを有する前記複数の修正係数の出力のためにトレリス構造に配置された構成要素を含む最適化ブロックを含み、
前記符号化規格に従って、前記複数の修正係数を符号化ビットストリームに符号化するように構成された符号化ブロックと、
を備える符号器。
【請求項２】
前記最適化ブロックが、各候補に関連した歪みコストを計算するようにさらに構成され、前記歪みコストが逆ラムダを使用して計算される、請求項１に記載の符号器。
【請求項３】
前記符号化規格がＨ．２６４符号化規格である、請求項１に記載の符号器。
【請求項４】
前記ビデオ信号を受信して、前記量子化ブロックにラムダを提供するように構成されたモード決定ブロックをさらに含む、請求項１に記載の符号器。
【請求項５】
前記候補の各々に関連した前記レートが所定のビット数に固定される、請求項１に記載の符号器。
【請求項６】
前記最適化ブロックが、
符号化標準の各状態に対するノードコストブロックであって、前記ノードコストブロックが各々、各候補に関連したアークを生成するように構成され、前記アークの各々がレートコストおよび歪みコストを含む、ノードコストブロックと、
前記ノードコストブロックに関連した最小コストブロックであって、前記最小コストブロックの各々が、前記最小コストブロックの状態に対応する前記ノードコストブロックからアークを受信するように構成され、前記最小コストブロックが、前記受信されたアークから最も低いコストのアークを識別し、更新されたアークを生成して、前記更新されたアークを、前記それぞれの状態に関連した前記ノードコストブロックに提供するように構成されている、最小コストブロックと、
を含む、請求項１に記載の符号器。
【請求項７】
ビデオの符号化での使用のために修正係数を生成するための最適化ブロックであって、前記最適化ブロックが、
複数の候補係数を、受信された係数に少なくとも一部基づき生成するように構成された候補生成ブロックと、
前記候補生成ブロックに結合された複数のノードコストブロックであって、前記複数のノードコストブロックの各々が、前記複数の候補に少なくとも一部基づき複数のアークを提供するように構成され、前記複数のアークの各々が、レートコストおよび歪みコストを含み、前記レートコストが、部分ビット推定を使用して計算され、かつ、前記歪みコストが逆ラムダを使用して計算される、複数のノードコストブロックと、
前記複数のノードコストブロックのうちの少なくとも１つに結合され、前記それぞれの複数のアークのうちの少なくとも１つを受信するように構成された複数の最小コストブロックであって、それぞれ複数のアークの前記少なくとも１つのどのアークが最も低いコストを有するかを判断する、複数の最小コストブロックと、
を含む、最適化ブロック。
【請求項８】
前記最適化ブロックが符号器内に含まれている、請求項７に記載の最適化ブロック。
【請求項９】
前記複数のノードコストブロックおよび前記複数の最小コストブロックが、トレリス構造で構成されている、請求項７に記載の最適化ブロック。
【請求項１０】
前記最適化ブロックが、前記レートコストを計算するように構成されたレートブロックをさらに含み、前記レートブロックが、プレフィックスビンカウントおよびバイパスビットカウントを提供するために、２値化過程を実行するように構成され、前記レートブロックが、
前記プレフィックスビンカウントの前記ビンの１つに対して第１のレートコストを出力するように構成された第１のレート推定テーブルと、
前記プレフィックスビンカウントの前記ビンの別の１つに対して第２のレートコストを出力するように構成された第２のレート推定テーブルと、
前記レートコストを提供するために、前記第１のレートコスト、前記第２のレートコスト、および前記バイパスビットカウントを加算するように構成された加算器と
を含む、
請求項７に記載の最適化ブロック。
【請求項１１】
前記第１および第１のレート推定テーブルがルックアップテーブルである、請求項１０に記載の最適化ブロック。
【請求項１２】
前記最適化ブロックが、前記プレフィックスビンカウントの前記ビンの１つに基づき第１のコンテキスト更新を提供するように構成された第１の状態更新テーブルおよび前記プレフィックスビンカウントの前記ビンの別の１つに基づき第２のコンテキスト更新を提供するように構成された第２の更新テーブルをさらに含み、かつ、前記最適化ブロックが、次のコンテキストを生成するために、前記第１のコンテキスト更新および前記第２のコンテキスト更新を組み合わせるように構成されている、請求項１０に記載の最適化ブロック。
【請求項１３】
前記第１、第２、および次のコンテキストがＣＡＢＡＣコンテキストである、請求項１２に記載の最適化ブロック。
【請求項１４】
予測されたビデオ信号と実際のビデオ信号との間の差分に基づき残差を生成することと、
前記残差を、複数の係数を含む周波数領域に変換することと、
係数の修正された組を生成するために、前記複数の係数に関連したレート歪みを最適化することであって、前記レート歪みを最適化することが、逆ラムダを使用して候補係数を生成すること、およびルックアップテーブルを使用して前記複数の係数に関連したレートを推定することを含む、前記複数の係数に関連したレート歪みを最適化することと、
ビデオ伝送での使用のための係数の前記修正された組を符号化することと、
を含む、方法。
【請求項１５】
前記最適化が、
係数ベクトルを生成するために前記複数の係数について逆ジグザグ操作を実行することと、
前記係数ベクトルの前記係数を連続的に処理することと、
を含む、請求項１４に記載の方法。
【請求項１６】
前記最適化が、ＣＡＢＡＣ状態を使用して前記候補係数に関連した最小コストのアークを見つけるために、トレリス最適化技術を利用することを含む、請求項１４に記載の方法。
【請求項１７】
前記符号化が、ＣＡＶＬＣビットストリームを生成するように構成された固定レートで符号化することを含む、請求項１４に記載の方法。
【請求項１８】
ＣＡＢＡＣ符号化ビットストリームを生成するために、ＣＡＶＬＣビットストリームをコード変換することをさらに含む、請求項１４に記載の方法。
【請求項１９】
前記コード変換することが、リアルタイム変換を含む、請求項１８に記載の方法。
【請求項２０】
前記予測されたビデオ信号が、Ｈ．２６４規格に従って生成される、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〔相互参照〕
本出願は、２０１２年３月２９日に出願された米国非仮出願第１３／４３４，７３６号に対する優先権を主張し、それは、いかなる目的に対しても、参照により全体として本明細書に組み込まれる。
【０００２】
本発明の実施形態は、一般に、ビデオ符号化に関し、より詳細には、変換係数の量子化に関する。
【背景技術】
【０００３】
ビデオ信号または他のメディア信号は、テレビ、放送システム、モバイル機器、ならびにラップトップおよびデスクトップの両方のコンピュータを含む、様々な装置によって使用され得る。通常、装置は、ビデオ信号または他のメディア信号の受信に応答し、多くの場合、信号を符号化形式から復号した後、ビデオを表示し得る。装置間で提供されるビデオ信号は、多くの場合、様々な符号化および／または圧縮技術のうちの１つもしくは複数を使用して符号化され、ビデオ信号は、通常、ＭＰＥＧ−２、ＭＰＥＧ−４、およびＨ．２６４／ＭＰＥＧ−４  Ｐａｒｔ  １０などの、特定の規格に従って復号される方法で符号化される。ビデオ信号または他のメディア信号を符号化し、次いで、受信された信号を復号することにより、ビデオを装置間で伝送するために必要なデータ量が大幅に削減され得る。
【０００４】
ビデオ符号化は、通常、ビデオデータのマクロブロック、または他のユニットを符号化することにより進められる。予測ブロックおよび残差ブロックを生成するために予測符号化が使用され得、この場合、残差ブロックは、予測ブロックと符号化されているブロックとの間の差分を表す。予測符号化は、ビデオ信号内の冗長データを除去するために、空間的予測および／または時間的予測を含み得、それにより、データの削減をさらに向上させる。例えば、イントラ符号化（ｉｎｔｒａｃｏｄｉｎｇ）は、空間的予測を対象として、フレームまたはスライス内のブロック間での空間的冗長の量を削減する。他方、インター符号化（ｉｎｔｅｒｃｏｄｉｎｇ）は、時間的予測に対して行われて、連続するフレームまたはスライス内のブロック間での時間的冗長の量を削減する。インター符号化は、連続するフレームまたはスライスの対応するブロック間での動きを追跡するために動き予測を利用し得る。
【０００５】
通常、イントラ符号化およびインター符号化ベースの実施態様を含め、符号器実施態様では、１組の係数を生成するために、残差ブロック（例えば、実際のブロックと予測されたブロックとの差分）が、変換、量子化、および様々な符号化技術（例えば、エントロピー符号化）のうちの１つを使用して符号化され得る。符号化装置と復号化装置との間で伝送され得るのは、これらの係数である。量子化は、ビデオストリームの符号化中に生じ得る損失量を決定し得る。すなわち、ビットストリームから除去されるデータの量は、符号器によって生成され、かつ／または符号に提供される量子化パラメータによって決まり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ビデオ符号化技術は、通常、ある程度のレート歪み最適化である。すなわち、一般に、達成可能なデータレートと復号された信号内に存在する歪みの量との間にトレードオフがある。多数の符号器は、１つまたは複数の符号化規格に従って、ビデオ信号のレート歪み最適化のために量子化を利用する。しかし、それを行う際に、各残差ブロックの係数が選択された符号化規格に対して最適化され得るように、レートコストおよび歪みコストを含む、コストが計算される必要がある。このコスト測定は、係数の変換および量子化だけでなく、係数の符号化も必要とする。結果として、特に、もっと複雑な符号化アルゴリズムに対して、リアルタイムでの係数の最適化が課題を提示している。多くの符号化規格は、符号化、レート計算に対して非常に複雑で要求が厳しい計算を必要とするので、従って、レート歪み最適化は、多くの現在の符号化規格に対して、リアルタイムでの計算について単に要求が厳し過ぎる。
【課題を解決するための手段】
【０００７】
符号器例が本明細書で開示される。符号器例は、ビデオ信号を受信するように構成され得、符号化標準に従って予測因子（ｐｒｅｄｉｃｔｏｒ）を提供するように構成された予測ブロックを含み得る。符号器例は、残差を提供するために、ビデオ信号から予測因子を減算するように構成された減算器をさらに含み得る。符号器例は、残差を受信して、その残差を、複数の係数を含む周波数領域で提供するように構成された変換をさらに含み得る。符号器例は、複数の修正係数を生成するために、複数の係数を連続的に受信して、その複数の係数に関連したレート歪みを最適化するように構成された量子化ブロックをさらに含み得る。いくつかの例では、量子化ブロックは、複数の係数の各々に対して複数の候補を生成するように構成された最適化ブロックを含み得、最適化ブロックは、部分レート推定（ｆｒａｃｔｉｏｎａｌ  ｒａｔｅ  ｅｓｔｉｍａｔｉｏｎ）を提供するように構成されたルックアップテーブルを使用して候補の各々に関連したレートを計算するようにさらに構成され、最適化ブロックは、候補の各々に対するアーク（ａｒｃ）を計算するように構成され、アークは、それぞれのレートを含み、最適化ブロックは、係数の最小コストの組を識別して、最小コストのアークを有する複数の修正係数を出力するために、トレリス構造に配置された構成要素を含む。符号器例は、符号化標準に従って、複数の修正係数を符号化ビットストリームに符号化するように構成された符号化ブロックをさらに含み得る。
【０００８】
最適化ブロックは、各候補に関連した歪みコストを計算するようにさらに構成され得、歪みコストは、逆ラムダを使用して計算される。
【０００９】
いくつかの例では、符号化標準は、Ｈ．２６４符号化規格を含み得る。
【００１０】
符号器例は、ビデオ信号を受信して、ラムダを量子化ブロックに提供するように構成されたモード決定ブロックをさらに含み得る。
【００１１】
いくつかの例では、候補の各々に関連したレートは、所定のビット数に固定され得る。
【００１２】
最適化ブロックは、符号化標準の各状態に対するノードコストブロックを含み得、ノードコストブロックは各々、各候補に関連したアークを生成するように構成され、アークは各々、レートコストおよび歪みコストを含み、ノードコストブロックに関連した最小コストブロックを含み得、最小コストブロックの各々は、最小コストブロックの状態に対応するノードコストブロックからアークを受信するように構成され、最小コストブロックは、受信したアークから最も低いコストのアークを識別して、更新されたアークを生成し、その更新されたアークを、それぞれの状態に関連したノードコストブロックに提供するように構成されている。
【００１３】
機器の例が本明細書で開示される。機器例は、ビデオの符号化で使用するための修正係数を生成するための最適化ブロックを含み得る。最適化ブロックは、受信した係数に、少なくとも一部基づき、複数の候補係数を生成するように構成され得る。最適化ブロック例は、候補生成ブロックに結合された複数のノードコストブロックを含み得、複数のノードコストブロックの各々は、複数の候補に、少なくとも一部基づき、複数のアークを提供するように構成され、その複数のアークの各々は、レートコストおよび歪みコストを含み、レートコストは、部分ビット推定を使用して計算され、歪みコストは逆ラムダを使用して計算される。最適化ブロック例は、複数のノードコストブロックのうちの少なくとも１つに結合され、それぞれの複数のアークのうちの少なくとも１つで受信するように構成された、複数の最小コストブロックをさらに含み、それぞれの複数のアークのうちの少なくとも１つのどのアークが最も低いコストを有するかを判断し得る。
【００１４】
いくつかの例では、機器例は符号器内に含まれ得る。
【００１５】
いくつかの例では、複数のノードコストブロックおよび複数の最小コストブロックは、トレリス構造で構成され得る。
【００１６】
最適化ブロックは、レートコストを計算するように構成されたレートブロックをさらに含み得、レートブロックは、プレフィックスビンカウントおよびバイパスビットカウントを提供するために２値化過程を実行するように構成されている。レートブロックは、プレフィックスビンカウントのビンのうちの１つに対する第１のレートコストを出力するように構成された第１のレート推定テーブル、プレフィックスビンカウントのビンのうちの別の１つに対する第２のレートコストを出力するように構成された第２のレート推定テーブル、ならびにレートコストを提供するために、第１のレートコスト、第２のレートコスト、およびバイパスビットカウントを加算するように構成された加算器を含み得る。
【００１７】
いくつかの例では、第１および第２のレート推定テーブルはルックアップテーブルを含み得る。
【００１８】
最適化ブロックは、プレフィックスビンカウントのビンのうちの１つに基づき第１のコンテキスト更新を提供するように構成された第１の状態更新テーブルおよびプレフィックスビンカウントのビンのうちの別の１つに基づき第２のコンテキスト更新を提供するように構成された第２の更新テーブルを含み得、最適化ブロックは、次のコンテキストを生成するために第１のコンテキスト更新と第２のコンテキスト更新を組み合わせるように構成され得る。
【００１９】
いくつかの例では、第１、第２、および次のコンテキストは、ＣＡＢＡＣコンテキストを含み得る。
【００２０】
方法例が本明細書で説明される。方法例は、予測されたビデオ信号と実際のビデオ信号との間の差分に基づき残差を生成すること、その残差を複数の係数を含む周波数領域に変換すること、係数の修正された組を生成するために複数の係数に関連したレート歪みを最適化することを含み得る。レート歪みを最適化することは、逆ラムダを使用して候補係数を生成すること、およびルックアップテーブルを使用して複数の係数に関連したレートを推定することを含み得る。方法例は、ビデオ伝送での使用のための係数の修正された組を符号化することをさらに含み得る。
【００２１】
最適化は、係数ベクトルを生成するために複数の係数について逆ジグザグ操作を実行すること、および係数ベクトルの係数を連続的に処理することを含み得る。
【００２２】
最適化は、ＣＡＢＡＣ状態を使用して候補係数に関連した最小コストのアークを見つけるために、トレリス最適化技術を利用することを含み得る。
【００２３】
符号化は、ＣＡＶＬＣビットストリームを生成するように構成された固定レートで符号化することを含み得る。
【００２４】
方法例は、ＣＡＢＡＣ符号化ビットストリームを生成するために、ＣＡＶＬＣビットストリームをコード変換することを含み得る。
【００２５】
コード変換することは、リアルタイム変換を含み得る。
【００２６】
いくつかの方法例では、予測されたビデオ信号は、Ｈ．２６４規格に従って生成され得る。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態による機器のブロック図である。
【図２】本発明の実施形態による図１の機器で使用され得る符号器の概略ブロック図である。
【図３】本発明の実施形態による図２の符号器で使用され得る量子化ブロックの概略ブロック図である。
【図４】本発明の実施形態による図３の量子化ブロックで使用され得る最適化ブロックの概略ブロック図である。
【図５】本発明の実施形態による図４の最適化回路で使用され得る候補生成ブロックの概略ブロック図である。
【図６】本発明の実施形態による図４の最適化回路で使用され得る最小コストブロックの概略図である。
【図７】本発明の実施形態による図４の最適化ブロックで使用され得るノードコストブロックの概略図である。
【図８】本発明の実施形態による図７のノードコストブロックで使用され得るアークコストブロックの概略図である。
【図９】本発明の実施形態による図８のアークコストブロックで使用され得るレートブロックの概略図である。
【図１０】本発明の実施形態による状態図である。
【発明を実施するための形態】
【００２８】
信号におけるレート歪みコストを最適化するための方法および機器の例が本明細書で開示される。本発明の実施形態の十分な理解を提供するために、ある詳細が以下で説明される。しかし、当業者には、本発明の実施形態は、これら特定の詳細なしで、または追加もしくは異なる詳細とともに、実施され得ることが明らかであろう。さらに、本明細書に記載する本発明の特定の実施形態は、例として提供されており、本発明の範囲をこれら特定の実施形態に制限するために使用されるべきではない。他の事例では、周知のビデオ構成要素、符号器または復号器構成要素、回路、制御信号、タイミングプロトコル、およびソフトウェア動作は、本発明を不必要に分かりにくくするのを回避するために、詳細には示されていない。
【００２９】
図１は、本発明の実施形態による機器１００のブロック図である。機器１００は、符号器１１０およびトランスコーダ１２０を含み得る。符号器１１０はトランスコーダ１２０に結合され得、一実施形態では、ビデオデータ（例えば、フレーム）を含み得る、ビデオ信号などの、信号を受信するように構成され得る。機器１００は、テレビ、放送システム、モバイル機器、ならびにラップトップおよびデスクトップの両方のコンピュータを含むが、それらに限定されない、ビデオ符号化を採用する様々な装置のいずれかで実装され得る。一般に、符号器１１０は、レートに依存しない方法で生成され得るビットストリーム（例えば、ＣＡＶＬＣ）を出力するために、固定レートで動作し得る。トランスコーダ１２０は、次いで、そのビットストリームを算術的に符号化されたストリームフォーマット（例えば、ＣＡＢＡＣ）にリアルタイムで変換し得、このようにビット毎に一定の時間で動作する。
【００３０】
符号器１１０は、１つまたは複数の論理回路、制御論理、論理ゲート、プロセッサ、メモリ、および／または同じものの任意の組合せもしくは部分的組合せを含み得、１つまたは複数の符号化技術を使用して、ビデオ信号を符号化および／または圧縮するように構成され得、その例を以下でさらに説明する。符号器１１０は、例えば、可変ビットレート信号および／または固定ビットレート信号を符号化するように構成され得る。少なくとも１つの実施形態では、符号器１１０は、コンテキスト適応型可変長符号化（ＣＡＶＬＣ）符号器などの、エントロピー符号器を含み得、かつ／または、例えば、マクロブロックレベルで、データを符号化するように構成され得る。各マクロブロックは、イントラ符号化モード、インター符号化モード、双方向で、または同じものの任意の組合せもしくは部分的組合せで符号化され得る。その結果、符号器１１０は、固定レートで動作し得、ＣＡＶＬＣデータをトランスコーダ１２０に提供し得る。
【００３１】
トランスコーダ１２０は、現在または将来において当技術分野で周知の、任意のトランスコーダを含み得、例えば、第１の符号化技術で符号化ビットストリームを第２の符号化技術で符号化ビットストリームにコード変換するように構成され得る。トランスコーダ１２０は、例えば、符号器１１０から受信したＣＡＶＬＣ符号化ビットストリームをコンテキスト適応型２進算術符号化（ＣＡＢＡＣ）符号化ビットストリームに変換するように構成され得る。その上、トランスコーダ１２０は、固定ビットレートを有するビットストリームを受信するようにさらに構成され得、かつ／または、ビット毎に一定の時間で動作して、リアルタイムでコード変換するように構成され得る。
【００３２】
機器１００の動作例では、符号器１１０は、符号化ビットストリームを提供するために、ビデオ信号を受信し、１つまたは複数の符号化技術に従って符号化し得る。符号化ビットストリームは、トランスコーダ１２０に提供され得、それは、続いて、符号化ビットストリームに、少なくとも一部基づき、コード変換されたビットストリームを提供（例えば、生成）し得る。コード変換されたビットストリームは、例えば、データバスに、および／または、復号器（図示せず）などの、装置に提供され得る。以下でさらに詳細に説明するように、ビデオ信号は、ビデオ信号のレート歪みが最適化され得るように、符号器１１０によって符号化され得る。一実施形態では、例えば、ビデオ信号のレートおよび／または歪みが、符号化過程中に、量子化係数を最適化することにより最適化され得る。レート歪み最適化は、十分なレートが許容可能な量の歪みと共に維持される、特定のレート歪みトレードオフを選択するように設計された過程を指す。レート歪みは、通常、レートを乗じた、ラムダ係数λ、すなわちラムダおよび歪みに加算された積によって表され得る。この式は、「ＲＤスコア」と呼ばれ得る。一般に、符号化方法はＲＤスコアを最小限にすることを目標とし得る。
【００３３】
図２は、本発明の実施形態による符号器２００の概略ブロック図である。符号器２００は、図１の符号器１１０を実装するために一部使用され得、Ｈ．２６４規格にさらに準拠し得る。いくつかの実施形態では、符号器２００は、現在または将来において当技術分野で周知の１つまたは複数の他の圧縮標準に準拠し得る。
【００３４】
符号器２００は、モード決定ブロック２３０、予測ブロック２２０、遅延バッファ２０２、変換２０６、量子化ブロック２５０、エントロピー符号器２０８、逆量子化ブロック２１０、非ブロック化フィルタ２１６、および復号ピクチャバッファ２１８を含み得る。モード決定ブロック２３０は、以下でさらに説明する、着信ベースバンドビデオ信号および復号ピクチャバッファ信号に、少なくとも一部基づき、適切な符号化モードを決定するように構成され得、かつ／または適切な符号化モードをフレーム毎および／もしくはマクロブロックベースで決定し得る。モード決定は、マクロブロックタイプ、イントラモード、インターモード、動きベクトル、および量子化パラメータを含み得る。本発明のいくつかの例では、モード決定ブロック２３０は、以下でさらに説明する、最適化された量子化ブロック２５０によって使用され得るラムダを提供し得る。モード決定ブロック２３０は、本発明の例に従ってモード決定を行う際にもラムダを利用し得る。
【００３５】
モード決定ブロック２３０の出力は、Ｈ．２６４規範的方法、または他の予測技術に従って、予測因子を生成するために、予測ブロック２２０によって利用され得る。予測因子は、減算器２０４で、ビデオ信号の遅延バージョンによって減算され得る。ビデオ信号の遅延バージョンの使用は、モード決定ブロック２３０が動作する時間を提供し得る。減算器２０４の出力は、その結果、例えば、ブロックと予測されたブロックとの間の差分などの、残差であり得る。
【００３６】
変換２０６は、例えば、ビデオ信号内のデータのスペクトル成分に対応し得る係数のブロックを生成するために、離散コサイン変換（ＤＣＴ）などの、変換を信号に関して実行するように構成され得る。一般に、変換２０６は、残差を周波数領域に変換し得る。残差の周波数領域表現は、係数ブロックと呼ばれ得る。量子化ブロック２５０は、量子化された係数ブロックを生成するために、係数ブロックを受信して、その係数ブロックの係数を量子化するように構成され得る。量子化ブロック２５０によって提供される量子化は、損失の多いものであり得るが、レート歪みを最適化または調整するためにラムダを利用し得る。ラムダは、モード決定ブロック２３０から受信され得るか、またはユーザーによって指定され得る。ラムダ係数は、例えば、マクロブロックまたは他のユニット毎に、変わり得、ビデオ信号によって符号化された情報に基づき得る（例えば、広告を符号化するビデオ信号は、一般に、詳細場面を符号化するビデオ信号よりも小さいラムダを利用し得る）。
【００３７】
次いで、エントロピー符号器２０８は、符号化ビットストリームを提供するために、量子化された係数ブロックを符号化し得る。エントロピー符号器２０８は、ＣＡＶＬＣ符号器などの、当業者によって周知の任意のエントロピー符号器であり得る。最適化された量子化係数は、逆量子化ブロック２１０によって逆スケーリングおよび量子化もされ得る。逆スケーリングおよび量子化された係数は、再構成された残差を生成するために、逆変換ブロック２１２によって逆変換され得る。再構成された残差は、再構成されたビデオを生成するために、加算器２１４で予測因子に加算され得、その再構成されたビデオは、非ブロック化フィルタ２１６によって非ブロック化され、将来のフレーム内で使用するために復号ピクチャバッファ２１８に書き込まれて、さらなるマクロブロック内イントラ予測または他のモード決定方法のためにモード決定ブロック２３０にフィードバックされ得る。
【００３８】
量子化ブロック２５０は、各係数に関連したコストが最適化されるように、最適化された係数を有する量子化された係数ブロックを提供するように構成され得る。一実施形態では、例えば、この最適化は、モード決定ブロック２３０によって提供され得る、ラムダなどの、ラグランジュコスト関数に、少なくとも一部基づき得る。別の実施形態では、最適化は、信号ラムダの逆数、すなわち逆ラムダに、少なくとも一部基づき得る。ラムダは、例えば、信号に対するコスト（例えば、レート歪みコスト）を決定するためのレートスケーリング係数であり得る。さらに、ラムダは、モード決定ブロック２３０により、信号に、少なくとも一部基づき、生成され得、リアルタイムで修正または調整され得る。
【００３９】
説明のように、符号器２００は、Ｈ．２６４ビデオ符号化規格に従って動作し得る。それ故、Ｈ．２６４ビデオ符号化規格が動き予測および／または動き補正を採用するので、符号器２００は、逆量子化ブロック２１０、逆変換ブロック２１２、再構成加算器２１４、および非ブロック化フィルタ２１６を含むフィードバックループをさらに含み得る。これらの要素は、符号器２００によって実行される符号化過程を、少なくとも一部逆にするように構成されている復号器（図示せず）に含まれる要素を反映し得る。加えて、符号器のフィードバックループは、予測ブロック２２０および復号ピクチャバッファ２１８を含み得る。
【００４０】
符号器２００の動作例では、ビデオ信号（例えば、ベースバンドビデオ信号）が、符号器２００に提供され得る。ビデオ信号は、遅延バッファ２０２およびモード決定ブロック２３０に提供され得る。減算器２０４は、ビデオ信号を遅延バッファ２０２から受信し得、残差信号を生成するために、動き予測信号をビデオ信号から差し引き得る。残差信号は、変換２０６に提供され、ＤＣＴなどの順変換を使用して処理され得る。説明のように、変換２０６は、量子化ブロック２５０に提供され得る係数ブロックを生成し得、量子化ブロック２５０は、係数ブロック内の係数のコストが最適化されるように、係数ブロックを量子化および／または最適化し得る。一実施形態では、係数ブロックの量子化は、ラムダまたは逆ラムダに、少なくとも一部基づき得る。量子化された係数は、エントロピー符号器２０８に提供されて、符号化ビットストリームに符号化され得る。
【００４１】
量子化された係数ブロックは、符号器２００のフィードバックループにさらに提供され得る。すなわち、量子化された係数ブロックは、再構成されたビデオ信号を生成するために、逆量子化ブロック２１０、逆変換ブロック２１２、および再構成加算器２１４によって、それぞれ、逆量子化され、逆変換されて、動き予測信号に加算され得る。予測ブロック２２０および非ブロック化フィルタ２１６の両方は、再構成されたビデオ信号を受信し得、復号ピクチャバッファ２１８は、フィルタ処理されたビデオ信号を非ブロック化フィルタ２１６から受信し得る。再構成されてフィルタ処理されたビデオ信号に、少なくとも一部基づき、予測ブロック２２０は動き予測信号を加算器２１４に提供し得る。
【００４２】
その結果、図２の符号器は、ビデオ信号に基づく符号化ビットストリームを提供し得、この場合、符号化ビットストリームは、本発明の実施形態に従って最適化された係数を使用して生成される。符号化ビットストリームは、固定レートで動作し得るＣＡＶＬＣビットストリームであり得る。符号器は、半導体技術で作動され得、ハードウェア、ソフトウェア、またはそれらの組合せで実装され得る。いくつかの例では、符号器は、ソフトウェアで実装され得るモード決定ブロックを除いて、ハードウェアで実装され得る。他の例では、他のブロックもソフトウェアで実装され得るが、ソフトウェア実施態様は、リアルタイム動作を達成し得ない。
【００４３】
図３は、本発明の実施形態による量子化ブロック３００の概略ブロック図である。量子化ブロック３００は、図２の量子化ブロック２５０を実装するために使用され得る。量子化ブロック３００は、最適化された量子化係数を含み得る量子化された係数ブロックを生成するために、係数のブロック（例えば、係数ブロック）を受信して、係数ブロックを量子化するように構成され得る。例えば、量子化ブロック２５０によって受信された係数ブロックは、変換２０６によって提供され得、変換２０６は、Ｈ．２６４符号器で使用される標準変換であり得る。係数は、量子化された係数ブロックを生成するために量子化されて最適化され得る。
【００４４】
量子化ブロック３００の動作例では、係数ブロックが、例えば、図２の変換２０６などの変換から、順方向順序付けブロック３０２に提供され得る。順方向順序付けブロック３０２は、係数を（例えば、ＣＡＢＡＣ符号化に対して）ビットストリーム係数順に並べるために、係数ブロックの係数を、例えば、１つまたは複数のジグザグ操作を使用して、係数ベクトルに変換し得る。係数は、次いで、１つずつ、開始ＣＡＢＡＣコンテキストを利用し得るブロック最適化過程を実行する量子化ブロックの残りに提供され得、最後の係数を処理すると、最適化過程が、最適化されて、量子化された係数の組（図３においてｕ［］として出力される）、および新しいＣＡＢＡＣコンテキストを提供し得る。最適化されて、量子化された係数は、任意選択で、逆ジグザグされて、量子化された係数ブロックとして出力され得る。
【００４５】
それに応じて、係数ベクトルｃ［］が、例えば、可能な係数値の数および／または各係数値を表すために必要なデータの量を削減するために、順インデックスブロック３０６によってインデックス付けされ得る。インデックス付けされた係数ベクトルは、次いで、係数が１つずつ受信され得るように、ブロック最適化回路３５０に提供され得る。
【００４６】
インバータ３７０は、ラムダを受信し得、逆ラムダを最適化ブロック３５０に提供し得る。逆ラムダおよびコンテキストレジスタ３３０から受信されたコンテキスト（例えば、ＣＡＢＡＣコンテキスト）を使用して、最適化ブロック３５０は、係数ベクトルを受信して、最適化された量子化係数ベクトルを提供し得る。いくつかの実施形態では、最適化ブロック３５０は、モード決定ブロックから直接ラムダを受信するように構成され得、ラムダまたは逆ラムダに、少なくとも一部基づき、係数を最適化し得る。その上、最適化ブロック３５０によりコンテキストレジスタ３３０から受信されたコンテキストは、初期コンテキストであり得、係数の最適化において、ブロック最適化回路３５０は、各係数が量子化および／または最適化されるときに、コンテキストレジスタ３３０に更新されたコンテキストを反復して提供し得る。コンテキストレジスタ３３０に提供される更新されたコンテキストは、係数ベクトルの次の係数の量子化および／もしくは最適化で使用され得、かつ／または、以下でさらに説明するように、他の係数ベクトルに対する初期コンテキストとして使用され得る。
【００４７】
逆インデックスブロック３０８は、続いて、最適化された量子化係数ベクトルを再スケーリングし得、逆方向順序付けブロック３０４は、例えば、逆ジグザグ操作を実行することにより、ベクトルを量子化された係数ブロックに変換し得る。量子化された係数ブロックは、図２のエントロピー符号器２０８などの、エントロピー符号器に提供され、１つまたは複数の符号化方法に従って符号化され得る。
【００４８】
このように、本明細書に記載する最適化された量子化ブロックの例は、係数毎に１つのサイクルを使用して係数を処理し得、有界時間最適化となり得る。ブロックあたり任意の数の係数が処理され得るが、一般に、ブロックあたり６４、１６、１５、８、または４個の係数などであるが、それらに限定されず、ブロックあたり固定数の係数が提供される。
【００４９】
図４は、本発明の実施形態による最適化ブロック４００の概略ブロック図である。最適化ブロック４００は、図３の最適化ブロック３５０を実装するために使用され得、図２の量子化ブロック２５０内でさらに使用され得る。最適化ブロック４００は、候補生成ブロック４０５、複数のノードコストブロック４１０、複数の最小コストブロック４１５、および最終最小コストブロック４２０を含み得る。図のように、複数のノードコストブロック４１０および複数の最小コストブロック４１５などの、最適化ブロック４００の要素は、トレリス構造で配置され得る。少なくとも１つの実施形態では、これは、１つまたは複数のダイナミックプログラミング法を使用して、係数が最適化されることを可能にし得る。一般に、各係数は、最適化ブロックで、符号化順に受信され得る。量子化係数の複数の候補が、以下でさらに説明するように、関連した歪みコスト計算と共に生成され得る。候補は、ノードコスト計算ブロック（可能な符号化状態ごとに１つのかかるブロックがあり得る）に提供され得る。ノードコスト計算ブロックは、ノード状態を所与として、各候補のコストを計算し、そのコストを、現在のノードコスト、その現在のコンテキスト、および候補に対する次の状態に加算し得る。最小コストが、次いで、各目的状態に対して判断され得、その最小コストはノードコストユニットに提供される。最後の係数が受信された後、ノードは、どれが最も低いコストを有するかを判断するために評価され得、その最も低いコストのノードのコンテキスト、コスト、レート歪み、および量子化係数のリストが、最適化ブロックの出力として提供され得る。
【００５０】
例えば、候補生成ブロック４０５は、図３のインデックスブロック３０６からの連続した係数、例えば、図２のモード決定ブロックなどの、モード決定ブロックから提供され得るラムダまたは逆ラムダ、およびＱｐ、標準量子化パラメータを受信するように構成され得る。候補生成ブロックは、以下でさらに説明するように、係数ベクトル内の各係数に対して複数の候補（ｕ０、ｕ１、ｕ２・・・）を提供し得る。任意の数の候補が一般に提供され得、例えば、図４の例では例えば３つの候補が提供され得るが、他の数の候補も使用され得る。候補生成ブロック４０５は、各候補に対して歪みコスト（例えば、Ｄ０、Ｄ１、Ｄ２・・・）をさらに提供し得る。各ノードコストブロック４１０は、候補生成ブロック４０５に結合されて、一意のノード状態に対応し得る。例えば、図４に示すように、複数のノードコストブロック４１５は、それぞれ、ノード状態０〜７に対応する８つのノードコストブロック４１５を含み得、そのノード状態は、ＣＡＢＡＣノード状態であり得る。ノード状態は、例えば、ノードコストブロック４１０によって受信されるノードＩＤ制御信号によって定義され得る。各ノードコストブロック４１０は、全ての候補および関連した歪みコストを候補生成ブロック４１５から受信するように構成され得る。図４の例では、ノードコストブロック４１０の各々は、候補ｕ０、ｕ１、およびｕ２を並行してそれらの歪みコストＤ０、Ｄ１、およびＤ２と共に受信し得る。それに応じて、候補生成ブロック４０５とノードコストブロック４１０との間の接続は、例えば、３ワイヤー幅など、候補数と同じ幅であり、十分なビット数に対する容量を提供し得る。ノードコストブロック４１０は、現在のコンテキスト（Ｃｔｘ）およびその状態を指定するノードＩＤ信号も受信し得る。各ノードコストブロック４１０は、次いで、各候補に対してアークを提供し得る。各アークは、コンテキスト、コスト、歪みコスト、レートコスト、状態、およびアークに寄与する係数を含む経路を含み得る。その結果、各アークは、５ワイヤーの情報を含み得、ノードコストブロック４１０と最小コストブロック４１５との間の接続は、３つのアーク全てに十分なスペースを提供するために１５ワイヤー幅であり得る。しかし、他の例では、任意の数が使用され得る。
【００５１】
数においてノードコストブロック４１０に対応し得、一意のノード状態にも対応し得る、最小コストブロック４１５は、各々、複数のアークを受信して、どのアークが最も低いコストを有するかを判断するように構成され得る。最小コストブロック４１５に結合された特定のノードコストブロック４１０は、符号化方法の許容可能な状態遷移によって決定され得る。最小コストブロック４１５の各々は、最小コストブロック４１５に入力された最も低いコストのアークを、同じノード状態を有するノードコストブロック４１０に提供するようにさらに構成され得る。各ノードコストブロック４１５は、受信したアークを、各候補をアークの経路に付加するだけでなく、アークのそれぞれのコストを新しい候補のコストに加算することにより更新するように構成され得る。最終最小コストブロック４２０は、各ノード状態に対して最も低いコストのアークを受信し、全体として最も低いコストを有するアークを識別するように構成され得、対応するコンテキスト、コスト、レートコスト、歪みコスト、およびアークの経路を最適化ブロック４００から提供するようにさらに構成され得る。コンテキストは、例えば、次のブロック最適化で使用されるように、図３のコンテキストレジスタ３３０などの、コンテキストレジスタに提供され得る。
【００５２】
最適化ブロック４００の動作例では、係数ベクトルの第１の係数が、候補生成ブロック４０５で受信され得、候補生成ブロック４０５は、その係数に対応する複数の候補を生成し得る。少なくとも１つの実施形態では、候補は、以下でさらに説明するように、量子化パラメータＱｐおよび／または逆ラムダに、少なくとも一部基づき得る。量子化パラメータは、図２のモード決定ブロック２３０などの、モード決定ブロックによって提供され得、量子化のための分解能係数をさらに示し得る。複数の候補の生成に加えて、候補生成ブロック４０５は、それぞれ複数の候補に対応する複数の歪みコストをさらに生成し得る。候補生成ブロック４０５は、各係数に対して３つの候補および／または歪みコストを生成するように構成され得るが、本発明の範囲および精神から逸脱することなく、他の実施態様が使用され得るので、本発明の実施形態は、特定の数に制限されるべきではない。
【００５３】
初期コンテキストおよびそれぞれのノード状態に加えて、各候補および歪みコストが、候補生成ブロック４０５から複数のノードコストブロック４１０の各々に提供され得る。各候補に対するアークが、各ノードコストブロック４１０のノード状態、初期コンテキスト、および各候補の歪みコストに基づき、複数のノードコストブロック４１０の各々によって生成され得る。
【００５４】
各アークは、各ノードコストブロック４１０のノード状態および各最小コストブロック４１５に基づき、複数の最小コストブロック４１５のうちの１つまたは複数に提供され得る。すなわち、以下でさらに詳細に説明するように、潜在的な経路の数を削減するために、ノードコストブロック４１０は、Ｈ．２６４符号化規格に従った１つまたは複数の状態遷移方式などの、状態遷移方式に基づき、特定の最小コストブロック４１５にアークを提供し得る。各最小コストブロック４１５がそのそれぞれのアーク（複数可）をノードコストブロック４１０の１つまたは複数から受信すると、各最小コストブロック４１５は、受信したどのアークが最も低いコストを有するかを判断し得る。
【００５５】
各最小コストブロック４１５は、その最も低いコストのアークを同じノード状態を有するノードコストブロック４１０に提供し得る。次の係数に対応する新しい候補および歪みコストも、そのノードコストブロック４１０によって受信され得る。受信されたアーク、新しい候補、および歪みコストに、少なくとも一部基づき、更新されたアークが、それぞれの最小コストブロック４１５に提供され得る。更新されたアークは、以前にフィードバックされたコストに加算された現在の候補に対するコスト、候補に対する次の状態、およびフィードバックされたアークからの係数のリストに付加された候補係数を含み得る。再度、各最小コストブロック４１５は、どのアークが最も低いコストを有するかを判断して、その最も低いコストのアークを、同じノード状態を有するノードコストブロック４１０に提供し得る。この過程は、全ての係数に対する候補が検討されるまで、反復して繰り返され得る。各ノードコストブロック４１０に対する最終的な最小コストのアークが、最終最小コストブロック４２０に提供され得、それは、どのアークが最も低いコストを有するかを判断し得る。選択された最も低いコストのアークにおける付加された係数の最終リストが、選択された最も低いコストのアークによって指定されたコスト、歪みコスト、およびレートコスト、ならびにコンテキストと共に出力され得る（例えば、図４でのｕ［ｎ］）。コンテキストは、レジスタ、例えば、図３のレジスタ３３０に格納され得、それは、最適化ブロック４００への入力（例えば、ｃｔｘ）として後続のブロック最適化で使用され得る。
【００５６】
図５は、本発明の実施形態による候補生成ブロック５００の概略ブロック図である。候補生成ブロック５００は、図４の候補生成ブロック４０５を実装するために使用され得る。説明のように、候補生成ブロック４０５は、係数ベクトルの係数を受信して、各係数に対する複数の候補および歪みコストを生成し得る。一般に、候補生成ブロック５００は、量子化パラメータに基づき、順方向量子化（例えば、ＨＤＱ）を量子化されていない変換係数について実行する働きをし得る。複数の追加の候補が生成され、変換利得によって乗ぜられて、スケーリングされた係数を提供するために逆量子化が採用される。スケーリングされた係数は、復号器において逆変換の一部として起こり得るスケーリングを可能にするため、逆加重係数によってさらにスケーリングされ得る。スケーリングされて加重された係数は、元の係数から減算されて、差分が２乗され得る。２乗された差分は、次いで、Ｈ．２６４符号化で使用される不完全な整数変換を説明するために、順方向加重によってスケーリングされ、その後、候補を得るために、逆ラムダによって乗ぜられて、特定のビット幅に固定され得る。
【００５７】
候補生成ブロック５００の動作例では、係数ベクトルの各係数が、候補生成ブロック５００に、具体的には、順方向量子化ブロック５０２に、連続して提供され得る。周知のように、順方向量子化ブロック５０２は、１つまたは複数の量子化方法、例えば、ＨＤＱに従って量子化係数を生成するために、量子化パラメータＱｐに、少なくとも一部基づき、各係数を量子化し得る。複数の候補は、量子化係数に、少なくとも一部基づき、生成されて、候補生成ブロック５００から、例えば、前述のように複数のノードコストブロックに提供され得る。一実施形態では、複数の候補は、量子化係数ならびに、それぞれ上昇および低下した量子化レベルを有する量子化係数を含み得る。上昇および低下した量子化レベルの候補は、それぞれ、候補生成ブロック５０４、および５０６によって提供され得る。
【００５８】
各候補に対する歪みコストも候補生成ブロック５００によって生成され得る。一実施形態では、例えば、乗算器５１０および逆量子化ブロック５１２が、それぞれ、候補の各々を変換利得で乗じ、候補の各々を逆量子化するために使用され得る。各候補は、再構成された候補を生成するために、それぞれの逆加重ブロック５１４において逆加重でさらにスケーリングされ得、その再構成された候補は、続いて、係数と再構成された候補との間の残差誤差を生成するために、（例えば、ブロック５１６を使用して）係数から減算され得る。各誤差は、各候補に対してそれぞれの歪みコストを生成するために、（例えば、ブロック５１８を使用して）２乗され、（例えば、ブロック５２０を使用して）順方向加重されて、（例えば、ブロック５２２を使用して）逆ラムダによって乗算され得る。各歪みコストに対するビット幅が、クランプ５３０によって切り取られる。一般に、任意のビット数、例えば、一例では２５ビットが、クランプによって設定され得る。このように、３つの係数を生成するために、逆ラムダとの３つの乗算が使用され得る。いくつかの例では、逆ラムダは、係数によって異なり得、逆ラムダを使用する図５を参照して、説明し示すような候補生成を使用すると、係数ごとのラムダ変動を可能にし得る。逆ラムダを使用しなければ、ラムダ自体は、通常、レートが計算された後に適用され、それは、非常に多数の乗算を必要とし得、係数ごとのラムダ変動を許可しない可能性がある。
【００５９】
図６は、本発明の実施形態による最小コストブロック６００の概略図である。最小コストブロック６００は、図４の最小コストブロック４１５を実装するために使用され得る。最小コストブロック６００は、最小コストインデックス６１０およびマルチプレクサ６２０を含み得る。最小コストブロック６００は、少なくとも１つの実施形態では、ノード状態を最小コストブロック６００に割り当て得る、制御信号ノードＩＤを受信するように構成され得る。最小コストインデックス６１０およびマルチプレクサ６２０の両方は、１つまたは複数のアークを、例えば、図４のノードコストブロック４１０などの、１つまたは複数のノードコストブロックから受信するように構成され得る。最小コストインデックス６１０は、受信したアークのどれが、最小コストブロック６００のノード状態に対応する状態を有するか、また、それらのアークのうちのどれが最も低いコストを有するかを判断し得る。最小コストインデックス６１０は、マルチプレクサ６２０に、どのアークが最も低いコストを有するかの判断に、少なくとも一部応答して、最も低いコストを有するアークを選択的に出力させるようにさらに構成され得る。このように、所望の状態に遷移する候補のみが評価される必要がある。
【００６０】
図７は、本発明の実施形態によるノードコストブロック７００の概略図である。ノードコストブロック７００は、図４のノードコストブロック４１０を実装するために使用され得る。ノードコストブロック７００は、複数のアークコストブロック７０２（例えば、レジスタ）、ノードレジスタ７０４、およびマルチプレクサ７０６を含み得る。マルチプレクサ７０６は、初期コンテキストおよびアークを受信し得、その初期コンテキストまたはアークをノードレジスタ７０４に提供し得る。ノードレジスタ７０４は、マルチプレクサ７０６によって提供されたコンテキストまたはアークを受信および格納し得る。
【００６１】
複数のアークコストブロック７０２は、数において、各係数に対して、例えば、候補生成ブロックによって生成された候補の数に対応し得、その結果、複数のアークコストブロック７０２の各々が候補および歪みコストを受信し得る。各アークコストブロック７０２は、初期コンテキストまたはアークをノードレジスタ７０４から受信し得、各それぞれの候補に対して更新されたアークを提供し得る。
【００６２】
一例として、初期化中に、初期コンテキストがマルチプレクサ７０６に提供され得、それは、次いで、その初期コンテキストを選択的にレジスタ７０４に提供し得る。第１の係数に対する候補および歪みコストが、例えば、図４の候補生成ブロック４０５によって生成されて、ノードコストブロック７００に提供され得る。それぞれの候補および歪みコストならびにレジスタ７０４内の初期コンテキストが、複数のアークコストブロック７０２の各々に提供され得る。候補、歪みコスト、および初期コンテキストに基づき、各アークコストブロック７０２はアークを提供し得る。
【００６３】
図４に関して前述したように、最小コストブロックは、最も低いコストのアークの識別に、少なくとも一部に応答して、最も低いコストのアークをノードコストブロックに提供し得、すぐ応答して、ノードコストブロックは更新されたアークを提供し得る。しかし、第１の係数に基づく候補に対して、それぞれのノードコストブロックは、まだアークを受信していない可能性がある。その結果、第１の係数に対応する候補に対して、ノードコストブロックは、初期コンテキストならびにアークの他のパラメータ（例えば、コスト、レートコスト、歪みコスト、経路、および／または状態）に対する初期値（例えば、ゼロ）に、少なくとも一部基づき、アークを提供し得る。一実施形態では、これらのパラメータに対する初期値は、例えば、ノードレジスタ７０４からの初期コンテキストを提供され得る。
【００６４】
第１の候補に対してアークが生成されると、アークの各々は１つまたは複数の最小コストブロック４１５に提供され得、説明のように、各ノード状態に対して最も低いコストを有するアークが、同じノード状態を有するノードコストブロックに提供され得る。したがって、少なくとも１つの実施形態では、特定のノード状態に対して最も低いコストを有すると判断されたアークが、ノードコストブロック７００に、具体的にはマルチプレクサ７０６に提供され得る。マルチプレクサ７０６は、そのアークをレジスタ７０４に選択的に提供し得、それは、次いで、アークをアークコストブロック７０２に提供し得る。コストブロック７０２は、後続の係数に対する新しいそれぞれの候補および歪みコストを受信して、更新されたアークを同様に提供し得る。アークコストブロック７０２は、係数ベクトルの全ての係数に対する候補が検討されるまで、最も低いコストのアーク、新しい候補および歪みコストを受信し、すぐ応答して、更新されたアークを提供し得る。
【００６５】
図８は、本発明の実施形態によるアークコスト回路８００の概略図である。アークコストブロック８００は、図７のアークコストブロック７０２を実装するために使用され得る。アークコストブロック８００は、レートブロック８０２、加算器８０６、８０８、８１０、および候補経路ブロック８０４を含み得、候補の受信に、少なくとも一部応答して、更新されたアークを提供するように構成され得る。アークコストブロック８００は、例えば、それぞれ、アークの様々なコスト（例えば、歪みコスト、レートコスト、および／またはレート歪みコスト）および候補を組み合わせ得、更新されたアークに対する新しい状態、コンテキスト、および経路をさらに提供し得る。
【００６６】
アークコストブロック８００の動作例として、候補、ならびにアークの状態およびコンテキストが、レートブロック８０２に提供され得る。状態は、例えば、Ｈ．２６４符号化規格に従った状態遷移方式に基づき得、レートブロック８０２は、状態および／または候補に基づき次の状態を判断し得る。レートブロック８０２は、候補のレートコストおよび／または新しいアークに対するコンテキストをさらに判断し得る。一実施形態では、例えば、レートブロック８０２は、Ｈ．２６４符号化規格などの、１つまたは複数の符号化規格に対する推定テーブルを使用して、候補のレートコストおよび／またはコンテキストを判断し得る。
【００６７】
候補のレートコストが、加算器８０６によってアークのレートコストと結合され得る。さらに、歪みコストが、加算器８０８によって、アーク内に含まれた歪みコストと結合され得る。加算器８１０は、更新されたアークに対するコストを生成するために、結合された歪みコストと結合されたレートコストを結合し得る。最後に、候補経路ブロック８０４は、アークの経路および候補を受信して、現在の候補を経路に付加し得る。これは、例えば、経路で使用される候補の完全なリストを維持し得、万一、特定のアークが全体として最も低いコストを有する場合には、前述のように、経路に含まれる候補が、最適化された量子化係数として提供され得る。
【００６８】
図９は、本発明の実施形態によるレートブロック９００の概略図である。レートブロック９００は、図８のレートブロック８０２を実装するために使用され得る。レートブロック９００は、状態遷移ブロック９０２、２値化ブロック９０４、加算器９１４、推定テーブル９１０、９１２（例えば、ルックアップテーブル）、および更新テーブル９２０、９２２（例えば、ルックアップテーブル）を含み得る。
【００６９】
状態遷移ブロック９０２は、状態および候補の受信に応答して、新しい状態を生成し得る。新しい状態は、状態遷移方式、および／または候補値に従って生成され得る。２値化ブロック９０４は、候補を受信し、Ｈ．２６４符号化規格の２値化に従い、候補について２値化を実行し得る。周知のように、この２値化過程は、バイパスビットカウントおよびプレフィックスビンカウントを生成し得る。バイパスビットカウントは、係数によって表されるバイパスビットの数であり、他方、プレフィックスビンカウントは、係数によって表されるプレフィックスビンの数を提供する。ビンは、各々、特定のビット数を有し得る。プレフィックスビンカウントおよびアークに対するコンテキストは、推定テーブル９１０、９１２、および更新テーブル９２０、９２２の両方に提供され得る。推定テーブル９１０、９１２および更新テーブル９２０、９２２は、ルックアップテーブルを使用して実装され得る。ルックアップテーブルは、レートが部分的に推定されることを可能にし得る。推定テーブル９１０、９１２は、それぞれ、ビン０および残りのビンに対して推定されたＣＡＢＡＣレートを提供する。その結果、バイパスビットの数が既知であり得（例えば、バイパスビットカウント）、ビン０に対するレートがテーブル９１０によって提供され得、後続のビンに対するレートがテーブル９１０によって提供され得る。テーブル９１０および９１２によって提供されるレートは、レートを取得するためにバイパスビットカウントに加算され得る。同様に、現在のコンテキストおよびプレフィックスビンカウントを所与として、次のＣＡＢＡＣコンテキストがテーブル９２０および９２２によって提供され得る。コンテキストの各部分がビン、ならびにそれに応じてテーブル９２０および９２２によって更新され得、それに応じてテーブル９２０および９２２の出力が、次のコンテキスト（例えば、ｃｔｘ）を得るために、組み合わされ得る。
【００７０】
結果として、ＣＡＢＡＣコンテキストなどの、新しいコンテキストが、プレフィックスビンカウントおよびアークコンテキストに従い、更新テーブル９２０、９２２から提供され得る。その上、プレフィックスビンカウントおよびコンテキストを使用して、推定されたＣＡＢＡＣ符号化レートコストなどの、推定された符号化レートコストが、各ビンに提供され得る。すなわち、推定テーブル９１０、９１２内のレートコスト推定（例えば、部分ビットレートコスト推定）が、候補に対するレートコストを提供するために、加算器９１４でバイパスビットカウントと結合され得る。少なくとも１つの実施形態では、ＣＡＢＡＣ符号化に対するレートコストの推定は、各候補に対するレートコストを判断するために、算術符号化の必要性を軽減および／または除外し得る。これは、例えば、所定の許容範囲で、候補に対するレートコストを判断するために必要な時間を削減し得る。説明したルックアップテーブルの利用は、本明細書で説明したシステムおよび方法のリアルタイム動作を容易にし得る。算術符号化を利用する技術は、リアルタイム動作を実装できない可能性がある。
【００７１】
図１０は、本発明の実施形態によるノード状態に対する状態図１０００である。状態図１０００の状態遷移方式は、図９のレートブロック９０２によって受信された状態の許容状態遷移を制御し得、Ｈ．２６４符号化規格に従ってさらに構成され得る。一般に、状態は、候補の値に基づき、また、いくつかの例では、候補の絶対値に基づき、変わり得る。例えば、一実施形態では、状態遷移は、次によって制御され得る：
ＮＥＸＴ（ｓ，ｕ）＝（ｕ＝＝０）？ｓ：
（ｕ＝＝１）？（（ｓ＜４）？ｍｉｎ（３，ｓ＋１）：）：
ｍｉｎ（７，ｍａｘ（４，ｓ＋１））
【００７２】
式中、「ｕ」は、候補値の絶対値であり得、「ｓ」は状態であり得る。しかし、本発明の範囲および精神から逸脱することなく、状態の状態遷移を制御するために、他の状態遷移が指定されて、使用され得ることが理解されるであろう。
【００７３】
その上、図４および図６に関して前述したように、それぞれ、少なくとも１つの実施形態では、ノードコストブロック４１０は、特定の最小コストブロック４１５に対してのみアークを提供し得、最小コストブロック６００のノード状態に対応する状態を有する最小コストブロック６００によって受信されたアークのみが、受信されたアークのどれが最も低いコストを有するかを判断する際に検討され得る。これは、状態が、図１０に示す状態図１０００に従って遷移し得るという事実から得られる。例えば、２の状態は、候補が０の値を有する場合、２の状態のままであり得るか、または候補が１もしくは１より大きい絶対値を有する場合、それぞれ３もしくは４の状態に遷移し得る。それに応じて、２のノード状態を有するノードコストブロック４１０（図４）は、２、３、および４のノード状態を有する最小コストブロック４１５にアークを提供し得る。アークを受信するそれらの最小コストブロック４１５の各々は、次いで、アークの状態のいずれかがそれらそれぞれのノード状態に一致するかどうかを判断し得る。
【００７４】
その結果、本発明の実施形態は、ラムダ加重レート歪みコスト式を使用して、マクロブロック内の係数を最適化し得る。実施形態は、リアルタイムＣＡＶＬＣおよび／またはＣＡＢＡＣ符号器などの、リアルタイム符号器に対して使用され得、部分ビット推定および逆ラムダを採用し得る。
【００７５】
前述から、本明細書では、本発明の特定の実施形態が説明のために記述されているが、様々な修正が、本発明の精神および範囲から逸脱することなく、行われ得ることが理解されるであろう。その結果、本発明は、添付の請求項による場合を除いて、制限されない。
【図１】
2015515812.tif 000003
【図２】
2015515812.tif 000004
【図３】
2015515812.tif 000005
【図４】
2015515812.tif 000006
【図５】
2015515812.tif 000007
【図６】
2015515812.tif 000008
【図７】
2015515812.tif 000009
【図８】
2015515812.tif 000010
【図９】
2015515812.tif 000011
【図１０】
2015515812.tif 000012
【国際調査報告】
2015515812.tif 000013
2015515812.tif 000014