(57)【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための装置であって、
前記ビデオデータを記憶するためのメモリと、前記メモリがバッファを含む、
前記メモリに動作可能に結合され、
コーディングされるべき前記ビデオデータを受信することと、
現在ブロックのビットレート比と前記バッファのフルネスの範囲とに少なくとも部分的に基づいてコーディングモードのためのラグランジュパラメータを決定することと、ここにおいて、前記ビットレート比と前記バッファの前記フルネスとに依存する前記ラグランジュパラメータを決定するために、前記ビットレート比が増加するにつれて増加する第１のラグランジュ乗数と、前記バッファの前記フルネスが増加するにつれて増加する第２のラグランジュ乗数とが組み合わせられる、
を行うように構成されたハードウェアプロセッサと
を備え、
前記ビットレート比は、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数が、いずれの圧縮の適用もなしに前記現在ブロックをコーディングするためのビットの数で除算されることに基づく、装置。
【請求項２】
前記プロセッサが、
前記現在ブロックのビットレート比に基づいて前記第１のラグランジュ乗数を決定することと、
前記バッファの前記フルネスに基づいて前記第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することと
を行うようにさらに構成された、請求項１に記載の装置。
【請求項３】
前記プロセッサが、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを乗算するように構成された、請求項２に記載の装置。
【請求項４】
前記プロセッサが、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを加算するように構成された、請求項２に記載の装置。
【請求項５】
前記プロセッサが、
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
を行うようにさらに構成された、請求項１に記載の装置。
【請求項６】
前記プロセッサが、
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定するようにさらに構成され、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、請求項５に記載の装置。
【請求項７】
前記プロセッサが、前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードを前記第１のコーディングモードとして選択するようにさらに構成された、請求項６に記載の装置。
【請求項８】
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインとは異なる様式で決定される、請求項１に記載の装置。
【請求項９】
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインと同じ様式で決定される、請求項１に記載の装置。
【請求項１０】
ビデオデータをコーディングする方法であって、
前記ビデオデータをメモリに記憶することと、前記メモリがバッファを含む、
コーディングされるべき前記ビデオデータを受信することと、
現在ブロックのビットレートの比と前記バッファのフルネスの範囲とに少なくとも部分的に基づいてコーディングモードのためのラグランジュパラメータを決定することと、ここにおいて、前記ビットレート比と前記バッファの前記フルネスとに依存する前記ラグランジュパラメータを決定するために、前記ビットレート比が増加するにつれて増加する第１のラグランジュ乗数と、前記バッファの前記フルネスが増加するにつれて増加する第２のラグランジュ乗数とが組み合わせられる、
を備え、
前記ビットレート比は、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数が、いずれの圧縮の適用もなしに前記現在ブロックをコーディングするためのビットの数で除算されることに基づく、方法。
【請求項１１】
前記現在ブロックのビットレート比に基づいて前記第１のラグランジュ乗数を決定することと、
前記バッファの前記フルネスに基づいて前記第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することと
さらに備える、請求項１０に記載の方法。
【請求項１２】
前記方法が、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを乗算することをさらに備える、請求項１１に記載の方法。
【請求項１３】
前記方法が、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを加算することをさらに備える、請求項１０に記載の方法。
【請求項１４】
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
をさらに備える、請求項１０に記載の方法。
【請求項１５】
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定することをさらに備え、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、請求項１４に記載の方法。
【請求項１６】
前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードが、前記第１のコーディングモードとして選択される、請求項１５に記載の方法。
【請求項１７】
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインとは異なる様式で決定される、請求項１０に記載の方法。
【請求項１８】
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインと同じ様式で決定される、請求項１０に記載の方法。
【請求項１９】
コンピュータハードウェアを備えるプロセッサ上で実行されたとき、
前記ビデオデータをメモリに記憶することと、前記メモリがバッファを含む、
コーディングされるべき前記ビデオデータを受信することと、
現在ブロックのビットレート比と前記バッファのフルネスの範囲とに少なくとも部分的に基づいてコーディングモードのためのラグランジュパラメータを決定することと、ここにおいて、前記ビットレート比と前記バッファの前記フルネスとに依存する前記ラグランジュパラメータを決定するために、前記ビットレート比が増加するにつれて増加する第１のラグランジュ乗数と、前記バッファの前記フルネスが増加するにつれて増加する第２のラグランジュ乗数とが組み合わせられる、
を前記プロセッサに行わせる命令を備え、
前記ビット比は、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数が、いずれの圧縮の適用もなしに前記現在ブロックをコーディングするためのビットの数で除算されることに基づく、非一時的コンピュータ可読媒体。
【請求項２０】
前記命令が、
前記現在ブロックのビットレート比に基づいて前記第１のラグランジュ乗数を決定することと、
前記バッファの前記フルネスに基づいて前記第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定すること
を前記プロセッサにさらに行わせる、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記命令が、
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
を前記プロセッサにさらに行わせる、請求項１９に記載のコンピュータ可読媒体。
【請求項２２】
前記命令が、
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定することを前記プロセッサにさらに行わせ、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記命令が、前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードを前記第１のコーディングモードとして選択することを前記プロセッサにさらに行わせる、請求項２２に記載のコンピュータ可読媒体。
【請求項２４】
ビデオ情報をコーディングするための装置であって、
前記ビデオデータをメモリに記憶するための手段と、前記メモリがバッファを含む、
コーディングされるべき前記ビデオデータを受信するための手段と、
現在ブロックのビットレート比と前記バッファのフルネスの範囲とに少なくとも部分的に基づいてコーディングモードのためのラグランジュパラメータを決定するための手段と、ここにおいて、前記ビットレート比と前記バッファの前記フルネスとに依存する前記ラグランジュパラメータを決定するために、前記ビットレート比が増加するにつれて増加する第１のラグランジュ乗数と、前記バッファの前記フルネスが増加するにつれて増加する第２のラグランジュ乗数とが組み合わせられる、
を備え、
前記ビット比は、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数が、いずれの圧縮の適用もなしに前記現在ブロックをコーディングするためのビットの数で除算されることに基づく、装置。
【請求項２５】
前記ラグランジュパラメータを決定するための手段が、
前記現在ブロックのビットレート比に基づいて前記第１のラグランジュ乗数を決定することと、
前記バッファの前記フルネスに基づいて前記第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することと
を行うようにさらに構成された、請求項２４に記載の装置。
【請求項２６】
前記ラグランジュパラメータを決定するための手段が、
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
を行うようにさらに構成された、請求項２４に記載の装置。
【請求項２７】
前記ラグランジュパラメータを決定するための手段が、
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定するようにさらに構成され、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、請求項２６に記載の装置。
【請求項２８】
前記ラグランジュパラメータを決定するための手段が、前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードを前記第１のコーディングモードとして選択するようにさらに構成された、請求項２７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮（ＤＳＣ：display stream compression）など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、したがって、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを与えるためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
【０００３】
[0003]他のものが、ピクセルデータに対して画像圧縮を利用することを試みた。しかしながら、そのような方式は、時々視覚的ロスレスでないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。
【０００４】
[0004]ビデオエレクトロニクス規格協会（ＶＥＳＡ：Video Electronics Standards Association）は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮（ＤＳＣ）を開発した。ＤＳＣなど、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスである（すなわち、圧縮がアクティブであることをユーザがわからないほど十分に良好である）ピクチャ品質を与えるべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を与えるべきである。
【発明の概要】
【０００５】
[0005]本開示のシステム、方法およびデバイスは、それぞれいくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示する望ましい属性を単独で担当するとは限らない。
【０００６】
[0006]一態様では、ビデオデータをコーディングするための装置が、ビデオデータを記憶するためのメモリと、プロセッサとを含む。メモリはバッファを含む。プロセッサは、コーディングされるべきビデオデータを受信するように構成される。プロセッサは、コーディングモードのビットレートとバッファのフルネス（fullness）とに少なくとも部分的に基づいてコーディングモードのためのラグランジュパラメータを決定するようにさらに構成される。
【図面の簡単な説明】
【０００７】
【図１Ａ】[0007]本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図１Ｂ】[0008]本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】[0009]本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図２Ｂ】[0010]本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
【図３】[0011]本開示で説明する態様による、ラグランジュパラメータ計算のための方法を示すフローチャート。
【発明を実施するための形態】
【０００８】
[0012]概して、本開示は、ディスプレイストリーム圧縮（ＤＳＣ）など、ビデオ圧縮技法のコンテキストにおいてラグランジュパラメータを決定するための技法に関する。いくつかの実施形態について、ＤＳＣ規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。たとえば、本明細書で開示する実施形態は、以下の規格、すなわち、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ムービングピクチャエキスパートグループ１（ＭＰＥＧ−１）Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４、および高効率ビデオコーディング（ＨＥＶＣ）のうちの１つまたは複数、ならびにそのような規格の拡張に適用可能であり得る。また、本開示で説明する技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【０００９】
[0013]レートとひずみの両方を考慮することによって、ＤＳＣにおける各モードについて、コスト＝Ｄ＋λＲとして、ラグランジュコストが計算され得、ここで、Ｄは、特定のコーディングモードに関連付けられたひずみを表し、Ｒは、対応するビットレートを表す。ここで、λは、ひずみとレートとのバランスをとるラグランジュ乗数を指すことがある。ラグランジュ乗数（λ）は、コーダ（たとえば、デコーダ）におけるレートひずみ性能の決定に影響を及ぼすことがある。たとえば、λのより小さい値は、極めて小さいひずみを有するコーディングモードの選択を生じる傾向があり、それにより、たとえば、他の可能なコーディングモードに対して、選択されたコーディングモードのレートが極めて高い場合、バッファオーバーフローが生じ得る。一方、λのより高い値は、コーディングモードのうちの、最小レートを有するコーディングモードの選択を生じる傾向があり、それにより、再構成された画像の品質に影響を及ぼし得る。既存の手法は、パラメータλを適切に計算しないことがあり、それにより、準最適コーディング性能が生じ得る。たとえば、既存の手法は、量子化パラメータ（ＱＰ）に基づいてパラメータλを決定し、ビットレートおよび／またはバッファフルネスを考慮しない。したがって、最適コーディング性能を達成するためにパラメータλを計算することが望ましいことがある。
【００１０】
[0014]これらおよび他の課題に対処するために、本技法は、バッファのフルネス（「バッファフルネス」）のレベルおよび／またはビットレートに基づいてラグランジュパラメータを決定する。たとえば、本技法は、コーディングモードのビットレートとバッファフルネスとの関数としてラグランジュ正則化パラメータを計算する。ＤＳＣはいくつかのコーディングモードを有し得、各コーディングモードは、それぞれのコーディングモードに関連付けられたビットレートを有する。本技法は、コーディングモードのビットレートとバッファフルネスとに基づいて各コーディングモードのためのラグランジュパラメータを決定することができる。一実施形態では、ビットレート比に基づいて、第１のラグランジュパラメータまたは乗数（multiplier）が計算され、バッファフルネスに基づいて、第２のラグランジュパラメータまたは乗数が計算される。第１のラグランジュパラメータと第２のラグランジュパラメータとに基づいて（たとえば、乗算または加算することによって）、複合ラグランジュパラメータ（combined Lagrangian parameter）が計算される。複合ラグランジュパラメータ値は、コーディングモードのためのラグランジュコストを決定するために使用され得る。本技法は、異なるコーディングモードのためのラグランジュコストを比較し、それぞれのラグランジュコストに基づいて、適宜に、好適なコーディングモードを選択することができる。
【００１１】
[0015]このようにして、本技法は、ビットレートおよび／またはバッファの状態（たとえば、バッファフルネス）を反映するラグランジュパラメータを決定することができ、それは、所与の状況に適したコーディングモードを選択するのに役立ち得る。ビットレートとバッファの状態とを考慮することが、コーディングモードのラグランジュコストを決定するためのより正確なラグランジュパラメータ値を与えることができる。より正確なラグランジュコストは、最適コーディングモードを選択するのを支援し、より良い画像再構成品質をもたらすことができる。
ビデオコーディング規格
[0016]ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を実行不可能にするであろう。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００１２】
[0017]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４と、そのような規格の拡張を含むＨＥＶＣとを含む。
【００１３】
[0018]さらに、ＶＥＳＡによって、あるビデオコーディング規格、すなわち、ＤＳＣが開発された。ＤＳＣ規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータのすべてを送信するための帯域幅を有しないことがある。したがって、ＤＳＣ規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。
【００１４】
[0019]ＤＳＣ規格は、Ｈ．２６４およびＨＥＶＣなど、他のビデオコーディング規格とは異なる。ＤＳＣは、フレーム内圧縮を含むが、フレーム間圧縮を含まず、これは、ビデオデータをコーディングする際にＤＳＣ規格によって時間的情報が使用されないことがあることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。
ビデオコーディングシステム
[0020]添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載する態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示するどの態様も請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００１５】
[0021]本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのいくつかを例として、図および好適な態様についての以下の説明において示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００１６】
[0022]添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語（たとえば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
【００１７】
[0023]図１Ａは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ（たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（たとえば、ビットストリームを変更、変換、および／または場合によっては操作することができるデバイス）など、他の関係するデバイスに拡張され得る。
【００１８】
[0024]図１Ａに示されているように、ビデオコーディングシステム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。図１Ａの例では、ソースデバイス１２および宛先デバイス１４は、別個のデバイスを構成する。ただし、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
【００１９】
[0025]もう一度図１Ａを参照すると、ソースデバイス１２および宛先デバイス１４は、それぞれ、デスクトップコンピュータ、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２０】
[0026]宛先デバイス１４は、復号されるべき符号化ビデオデータをリンク１６を介して受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図１Ａの例では、リンク１６は、ソースデバイス１２が符号化ビデオデータをリアルタイムで宛先デバイス１４に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２１】
[0027]図１Ａの例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例（applications）に適用され得る。
【００２２】
[0028]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に送信され得る。符号化ビデオデータは、さらに（または代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３１上に記憶され得る。図１Ａおよび図１Ｂに示されているビデオエンコーダ２０は、図２Ａ示されているビデオエンコーダ２０、または本明細書で説明する他のビデオエンコーダを備え得る。
【００２３】
[0029]図１Ａの例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介しておよび／またはストレージデバイス３１から符号化ビデオデータを受信し得る。リンク１６を介して通信され、またはストレージデバイス３１上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するためのビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ記憶された符号化ビデオデータに含まれ得る。
【００２４】
[0030]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２５】
[0031]関係する態様では、図１Ｂは例示的なビデオコーディングシステム１０’を示し、ここにおいて、ソースデバイス１２および宛先デバイス１４はデバイス１１上にあるかまたはそれの一部である。デバイス１１は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス１１は、ソースデバイス１２および宛先デバイス１４と動作可能に通信している（随意に存在する）コントローラ／プロセッサデバイス１３を含み得る。図１Ｂのビデオコーディングシステム１０’およびそれの構成要素（components）は、場合によっては図１Ａのビデオコーディングシステム１０およびそれの構成要素と同様である。
【００２６】
[0032]ビデオエンコーダ２０およびビデオデコーダ３０は、ＤＳＣなど、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、ＨＥＶＣなど、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２７】
[0033]図１Ａおよび図１Ｂの例には示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２８】
[0034]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダの一部として統合され得る。
ビデオコーディングプロセス
[0035]上記で手短に述べたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。
【００２９】
[0036]ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、ＱＰなどのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション（たとえば、コーディングモード）を定義し得る。コーディングオプションは、所望のレートひずみ性能を達成するために選択され得る。
【００３０】
[0037]いくつかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしに独立して復号され得る、画像（たとえば、フレーム）中の空間的に別個の領域を含み得る。各画像またはビデオフレームは単一のスライス中で符号化され得るか、またはそれはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
ＤＳＣビデオエンコーダ
[0038]図２Ａは、本開示で説明する態様による技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法の一部または全部を実行するように構成され得る。
【００３１】
[0039]説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００３２】
[0040]図２Ａの例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、色空間変換器１０５と、バッファ１１０と、平坦度検出器１１５と、レートコントローラ１２０と、予測器、量子化器、および再構成器構成要素１２５と、ラインバッファ１３０と、インデックスカラー履歴１３５と、エントロピーエンコーダ１４０と、サブストリームマルチプレクサ１４５と、レートバッファ１５０とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００３３】
[0041]色空間１０５変換器は、入力色空間をコーディング実装形態において使用される色空間に変換し得る。たとえば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青（ＲＧＢ）色空間中にあり、コーディングは、ルミナンスＹ、クロミナンスグリーンＣｇ、およびクロミナンスオレンジＣｏ（ＹＣｇＣｏ）色空間において実装される。色空間変換は、ビデオデータへのシフトおよび追加を含む（１つまたは複数の）方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間への変換も実行され得ることに留意されたい。
【００３４】
[0042]関係する態様では、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０、および／またはレートバッファ１５０を含み得る。たとえば、バッファ１１０は、色空間変換されたビデオデータを、ビデオエンコーダ２０の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータはＲＧＢ色空間中で記憶され得、色空間変換が必要に応じて実行され得る。
【００３５】
[0043]レートバッファ１５０はビデオエンコーダ２０においてレート制御機構の一部として機能し得、このことについて、レートコントローラ１２０に関して以下でより詳細に説明する。各ブロックを符号化することに費やされるビットは、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ１５０は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、ビットが固定ビットレート（ＣＢＲ）でバッファから取り出されるＣＢＲバッファモデルが採用される。ＣＢＲバッファモデルでは、ビデオエンコーダ２０がビットストリームにあまりに多くのビットを加えた場合、レートバッファ１５０はオーバーフローし得る。一方、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフローを防ぐために、十分なビットを加えなければならない。
【００３６】
[0044]ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下でさらに詳細に説明する図２Ｂを参照）に加えられ得、ビデオデコーダ３０は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
【００３７】
[0045]いくつかの実施形態では、バッファフルネス（ＢＦ）は、バッファに現在あるビットの数を表す値ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅと、レートバッファ１５０のサイズ、すなわち、任意の時点においてレートバッファ１５０に記憶され得るビットの最大数を表すＢｕｆｆｅｒＭａｘＳｉｚｅとに基づいて定義され得る。ＢＦは次のように計算され得る。
【００３８】
【数１】
0006453360.tif 000002
【００３９】
[0046]平坦度検出器１１５は、ビデオデータ中の複雑な（complex）（すなわち、平坦でない）エリアからビデオデータ中の平坦な（flat）（すなわち、単純なまたは均一な）エリアへの変化を検出することができる。「複雑な」および「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用する。したがって、本明細書で使用する「複雑な」という用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０が符号化することが複雑または困難であることを表し、たとえば、テクスチャードビデオデータ、高い空間周波数、および／または符号化することが複雑である他の特徴を含み得る。たとえば、ビデオデータの領域は、領域を符号化するために必要とされるビットの数がしきい値よりも大きいとき、複雑な領域であると決定され得る。本明細書で使用する「平坦な」という用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０がエンコーダすることが単純であることを表し、たとえば、ビデオデータ中の滑らかな勾配、低い空間周波数、および／または符号化することが単純である他の特徴を含み得る。たとえば、ビデオデータの領域は、領域を符号化するために必要とされるビットの数がしきい値よりも小さいとき、平坦な領域であると決定され得る。
【００４０】
[0047]しかしながら、実装形態に応じて、所与の領域が複雑であるのか平坦であるのかの決定は、使用される符号化規格、ビデオエンコーダ２０に含まれる具体的なハードウェア、符号化されるべきビデオデータのタイプなどにも基づいて決定され得る。さらに、ビデオデータ領域のいくつかのプロパティが、領域を符号化するためにいくつのビットが必要とされるかに影響を及ぼし得、たとえば、高いテクスチャおよび／または高い空間周波数領域は、より低いテクスチャおよび／またはより低い空間周波数領域よりも多くのビットが符号化されることを必要とし得る。同様に、ランダムノイズを備える領域は、ビデオデータのより構造化された領域と比較して、多数のビットが符号化されることを必要とし得る。したがって、いくつかの実装形態では、ビデオデータの領域は、テクスチャおよび／または空間周波数の測度（たとえば、複雑度値）を複雑度しきい値と比較することによって、複雑な領域および／または平坦な領域として識別され得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ中の量子化アーティファクトを低減するために、ビデオエンコーダ２０によって使用され得る。詳細には、レートコントローラ１２０、ならびに予測器、量子化器、および再構成器構成要素１２５は、複雑な領域から平坦な領域への遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
【００４１】
[0048]レートコントローラ１２０は、コーディングパラメータのセット、たとえば、ＱＰを決定する。ＱＰは、レートバッファ１５０がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ１５０のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適レートひずみ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション（たとえば、特定のモード）を選択する。レートコントローラ１２０は、再構成された画像のひずみを、それがビットレート制約を満たすように、すなわち、全体的実コーディングレートがターゲットビットレート内に収まるように最小限に抑える。
【００４２】
[0049]予測器、量子化器、および再構成器構成要素１２５は、ビデオエンコーダ２０の少なくとも３つの符号化演算を実行し得る。予測器、量子化器、および再構成器構成要素１２５は、いくつかの異なるモードで予測を実行し得る。１つの例示的なプレディケーションモードは、メディアン適応予測の変更バージョンである。メディアン適応予測はロスレスＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実装され得る。予測器、量子化器、および再構成器構成要素１２５によって実行され得るメディアン適応予測の変更バージョンは、３つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、前に再構成されたピクセルから左側に予測される。ビデオエンコーダ２０およびビデオデコーダ３０は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行することができ、したがって、ビットはブロック予測モードで送られる必要がない。成分範囲の中点を使用してサンプルが予測される中点予測モードも実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の制限を可能にし得る。
【００４３】
[0050]予測器、量子化器、および再構成器構成要素１２５はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実装され得る２のべき乗量子化器（power-of-2 quantizer）を介して実行され得る。２のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。予測器、量子化器、および再構成器構成要素１２５によって実行される量子化は、レートコントローラ１２０によって決定されたＱＰに基づき得る。最終的に、予測器、量子化器、および再構成器構成要素１２５はまた、予測値に逆量子化残差を加算することと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。
【００４４】
[0051]予測器、量子化器、および再構成器構成要素１２５によって実行される予測、量子化、および再構成に対する上記で説明した例示的な手法は、例示的なものにすぎず、他の手法が実装され得ることに留意されたい。また、予測器、量子化器、および再構成器構成要素１２５は、予測、量子化、および／または再構成を実行するための（１つまたは複数の）副構成要素を含み得ることに留意されたい。さらに、予測、量子化、および／または再構成は、予測器、量子化器、および再構成器構成要素１２５の代わりにいくつかの別個のエンコーダ構成要素によって実行され得ることに留意されたい。
【００４５】
[0052]ラインバッファ１３０は、予測器、量子化器、および再構成器構成要素１２５ならびにインデックスカラー履歴１３５が、バッファされたビデオデータを使用することができるように、予測器、量子化器、および再構成器構成要素１２５からの出力を保持する。インデックスカラー履歴１３５は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ２０によって直接参照され得る。
【００４６】
[0053]エントロピーエンコーダ１４０は、インデックスカラー履歴１３５と、平坦度検出器１１５によって識別された平坦度遷移とに基づいて、予測器、量子化器、および再構成器構成要素１２５から受信された予測残差を符号化する。いくつかの例では、エントロピーエンコーダ１４０は、サブストリームエンコーダごとにクロックごとに３つのサンプルを符号化し得る。サブストリームマルチプレクサ１４５は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ３０が並列に３つのエントロピーデコーダを動作させることを可能にし、クロックごとの３つのピクセルの復号を可能にする。サブストリームマルチプレクサ１４５は、パケットがビデオデコーダ３０によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの２のべき乗個のピクセル（たとえば、２つのピクセル／クロックまたは４つのピクセル／クロック）の復号を可能にし得る、エントロピーコーディングに対する異なる手法が実装され得ることに留意されたい。
ＤＳＣビデオデコーダ
[0054]図２Ｂは、本開示で説明する態様による技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ３０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法の一部または全部を実行するように構成され得る。
【００４７】
[0055]説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００４８】
[0056]図２Ｂの例では、ビデオデコーダ３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、レートバッファ１５５と、サブストリームデマルチプレクサ１６０と、エントロピーデコーダ１６５と、レートコントローラ１７０と、予測器、量子化器、および再構成器構成要素１７５と、インデックスカラー履歴１８０と、ラインバッファ１８５と、色空間変換器１９０とを含む。ビデオデコーダ３０の図示された構成要素は、図２Ａ中のビデオエンコーダ２０に関して上記で説明した対応する構成要素に類似する。したがって、ビデオデコーダ３０の構成要素の各々は、上記で説明したビデオエンコーダ２０の対応する構成要素と同様の様式（fashion）で動作し得る。
ＤＳＣにおけるスライス
[0057]上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなしに独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、またはそれはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。
ラグランジュパラメータの計算
[0058]ラグランジュコスト関数によってラグランジュコストが与えられ得る。たとえば、ラグランジュコスト関数は、制約なし最適化問題の形式で、制約付き最適化問題（たとえば、ｇ（ｘ）＝ｃを条件としてｆ（ｘ）を最小化）に対する代替定式化を与え、概して、ｆ（ｘ）＋λｇ（ｘ）の形式であり得る。レートとひずみの両方を考慮することによって、ＤＳＣにおける各モードについて、コスト＝Ｄ＋λＲとして、コストが計算され得、ここで、Ｄは、特定のコーディングモードに関連付けられたひずみを表し、Ｒは、対応するビットレートを表す。ここで、λは、ひずみとレートとのバランスをとるラグランジュ乗数を指すことがある。
【００４９】
[0059]ラグランジュ乗数（λ）は、コーダ（たとえば、デコーダ）におけるレートひずみ性能の決定に影響を及ぼすことがある。たとえば、λのより小さい値は、極めて小さいひずみを有するコーディングモードの選択を生じる傾向があり、それにより、選択されたモードのレートが極めて高い場合、バッファオーバーフローが生じ得る。一方、λのより高い値は、モードのうちの、最小レートを有するモードの選択を生じる傾向があり、それにより、再構成された画像の品質に影響を及ぼし得る。既存の手法は、パラメータλを適切に計算しないことがあり、それにより、準最適コーディング性能が生じ得る。たとえば、既存の手法は、ＱＰに基づいてパラメータλを決定し、ビットレートおよび／またはバッファフルネスを考慮しない。したがって、最適コーディング性能を達成するためにパラメータλを計算することが望ましいことがある。
【００５０】
[0060]これらおよび他の課題に対処するために、本技法は、ビットレートとバッファフルネスとに基づいてラグランジュパラメータを決定する。たとえば、本技法は、コーディングモードのビットレートとバッファフルネスとの関数としてラグランジュ正則化パラメータを計算する。ＤＳＣはいくつかの可能な（または利用可能な）コーディングモードを有し得る。いくつかの態様によれば、コーディングモードの例は、変換モード、ブロック予測モード、（メディアン適応予測に基づく）デルタパルスコード変調（ＤＰＣＭ：delta pulse code modulation）モード、パターンモード、パルスコード変調（ＰＣＭ）モード、平均モード、中点予測モードを含み得る。各コーディングモードは、それぞれのコーディングモードに関連付けられたビットレートを有する。たとえば、ビットレートは、たとえば、ブロックをコーディングするために、モードによって使用されるビットの数を表すことができる。本技法は、コーディングモードのビットレートとバッファフルネスとに基づいて各コーディングモードのためのラグランジュパラメータを決定することができる。一実施形態では、ビットレート比に基づいて、第１のラグランジュパラメータまたは乗数が計算され、バッファフルネスに基づいて、第２のラグランジュパラメータまたは乗数が計算される。第１のラグランジュパラメータと第２のラグランジュパラメータとに基づいて（たとえば、乗算または加算することによって）、複合ラグランジュパラメータが計算される。複合ラグランジュパラメータ値は、コーディングモードのためのラグランジュコストを決定するために使用され得る。本技法は、異なるコーディングモードのためのラグランジュコストを比較し、適宜に、好適なコーディングモードを選択することができる。一実施形態では、最低ラグランジュコストを伴うコーディングモードが選択される。
【００５１】
[0061]このようにして、本技法は、ビットレートおよび／またはバッファの状態を反映するラグランジュパラメータを決定することができ、それは、所与の状況に適したコーディングモードを選択するのに役立ち得る。たとえば、バッファがオーバーフローすることに近い（たとえば、オーバーフローの状態に近い）とき、バッファオーバーフローを回避するために、より小さいビットレートを有するが、より高いひずみを有するコーディングモードを選択することが好ましいことになり、バッファがアンダーフロー状態にあるとき、より高いビットレートを有するが、より低いひずみを有するコーディングモードを選択することがより良い結果をもたらすことになる。ビットレートとバッファの状態とを考慮することが、コーディングモードのラグランジュコストを決定するためのより正確なラグランジュパラメータ値を与えることができる。たとえば、ＤＳＣは厳しいレート制約（たとえば、ＣＢＲ）を有するので、モードのビットレートおよびバッファフルネスは、ＣＢＲを維持する際に重要な役割を果たすことができる。より正確なラグランジュコストは、最適コーディングモードを選択するのを支援し、より良い画像再構成品質をもたらすことがある。
【００５２】
[0062]ＤＳＣにおいてラグランジュパラメータを決定することに関係するいくつかの詳細について、たとえば、例示的な実施形態に関して以下で説明する。本開示で説明するすべての特徴および／または実施形態は、別々に、または組合せで実装され得る。本開示全体にわたって使用される様々な用語は、それらの通常の意味を有する広義の用語である。本明細書で使用し説明する「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ（たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（たとえば、ビットストリームを変更、変換、および／または場合によっては操作することができるデバイス）など、他の関係するデバイスに拡張され得る。
例示的な実施形態
[0063]一実施形態では、ビットレートとバッファフルネスとに基づいてλを計算するための装置および方法が提供される。たとえば、λは、以下で説明するステップに従って計算され得る。例示的な実施形態について、説明の目的で符号化に関して説明するが、本技法は復号にも適用可能である。概して、コーディングは、符号化と復号の両方を指すことがある。いくつかの実施形態では、ラグランジュ乗数およびラグランジュパラメータという用語は互換的に使用され得る。
１．ビットレート比に基づいてラグランジュ乗数を計算する
[0064]いくつかの態様によれば、本技法は、特定のモードを用いて現在ブロックを符号化するためのビットの数を、（ｍａｘＢｉｔｓとして示される）ビットの最大数で除算した比として定義され得る、（ＢＲとして示される）ビットレート比の関数としてλを計算することができる。
【００５３】
【数２】
0006453360.tif 000003
【００５４】
ここで、ｍａｘＢｉｔｓは、圧縮なしに視覚情報を符号化するためのビットの数に対応し得、以下のように計算され得る。
【００５５】
【数３】
0006453360.tif 000004
【００５６】
ビット深度は、単一のピクセルの各色成分を示すためのビットの数、たとえば、ＲＧＢ８８８画像フォーマットの場合、８ビットを指すことがある。
・λ値を計算するために、単調増加関数が使用され得る。たとえば、λの値は、ビットレート比が増加するにつれて増加する。
・一例では、λを計算するために、以下の単調増加関数が使用され得る。
【００５７】
【数４】
0006453360.tif 000005
【００５８】
−ここで、ａ、ｂ、ｃ、およびｄは、設定可能であり得る実定数であり、ＢＲはビットレート比を表す。
・別の例では、ｍａｘＢｉｔｓを計算する間に、圧縮なしに現在ブロックを符号化するために必要とされるビットに加えて、（ここではａｄｄｉｔｉｏｎａｌＢｉｔｓとして示される）モード情報をシグナリングするために必要とされる追加のビットも考慮され得る。追加のビットは、モード情報または他の情報を含むことができる、ヘッダをシグナリングするために使用され得る。たとえば、
【００５９】
【数５】
0006453360.tif 000006
【００６０】
・一例では、ｍａｘＢｉｔｓは、ｍａｘＢｉｔｓと、スライス残っているビットの数、たとえば、スライス中のブロックまたはピクセルの残りを符号化するためにスライス中に残された実際のビットとの間の最小値に等しく設定され得る。
・別の例では、λ値は、ビットレート比ＢＲが１よりも厳密に大きいとき、無限大に設定され得る。
・また別の例では、スライス中の第１のラインのためのλ値は、スライス中のラインの残りにおいて使用されるλの値と比較して同じでないことがある。たとえば、スライス中の第１のラインのためのλ値は、以下を使用して計算され得る。
【００６１】
【数６】
0006453360.tif 000007
【００６２】
−ここで、ｍ1、ｍ2、ｍ3、およびｍ4は、設定可能である実定数であり、ＢＲはビットレート比を表す。
２．バッファフルネスに基づいてラグランジュ乗数を計算する
[0065]ＢＦの関数として、別のλ値が計算され得る。ペナルティ（たとえば、λ）が、バッファがオーバーフローしようとしているときに強くおよび／または大きくなり、バッファがアンダーフローしようとしているときに小さくなるように、ペナルティは、バッファ中で占有されるビットの数が増大するにつれて増加され得る。いくつかの実施形態では、ラグランジュ乗数またはパラメータは、バッファがフルネスに達するとき、レートに関して費用がかかりすぎるモードに対するペナルティとして働く（act）ことができるので、ラグランジュ乗数またはパラメータはペナルティと呼ばれることがある。
・λ値を計算するために、単調増加関数が使用され得、たとえば、λの値は、ＢＦが増加するにつれて増加する。
・一例では、λを計算するために、以下の単調増加関数が使用され得る。
【００６３】
【数７】
0006453360.tif 000008
【００６４】
−ここで、ａ1、ｂ1、ｃ1、およびｄ1は、設定可能である実定数であり得る。
・別の例では、λの値は、値（たとえば、Λ）によって下限が設定され得、これは、ペナルティが極めて小さくなり得ないことを保証し、それにより、バッファが急速に増大するのを防ぐのを助け得る。より正確には、ペナルティは次のように計算され得る。
【００６５】
【数８】
0006453360.tif 000009
【００６６】
・一例では、バッファフルネス値は、以下の式を使用して最も近い整数に丸められ得る。
【００６７】
【数９】
0006453360.tif 000010
【００６８】
−ＢＦは他の方法で計算され得、ＢＦ計算に対する選択された手法は、コンテキストおよび適用例に応じて変化し得る。
・別の例では、ＢＦは、ＢＦを１００で除算することによって０から１に正規化され得る。正規化されたＢＦ値は、λ値を計算するために使用され得る。
・また別の例では、スライス中の第１のラインのためのλ値は、スライス中のラインの残りにおいて使用されるλの値と比較して同じでないことがある。たとえば、スライス中の第１のラインのためのλ値は、以下を使用して計算され得る。
【００６９】
【数１０】
0006453360.tif 000011
【００７０】
−ここで、ｎ1、ｎ2、ｎ3、およびｎ4は、設定可能である実定数であり、ＢＦはバッファフルネスを表す。
３．複合ラグランジュパラメータを計算する
[0066]（たとえば、上記のステップ１および２において計算された）ペナルティは、多数の方法でλを計算するために使用され得る。一実装形態では、ペナルティは、計算されたλ値がビットレートとＢＦとに依存するように、単一のλ値を計算するために乗算され得る。
・たとえば、（ａ＊２(((BR*b)-c)/d)）＊（ａ1＊２(((BF*b1)-c1)/d1)）として、単一のλ値が計算され得る。
・関係する態様では、スライス中のすべてのラインについて同じλ値が使用され得る。
・さらなる関係する態様では、スライス中のラインの残りにおいて使用されるペナルティと比較して、スライス中の第１のラインについて異なるλ値が使用され得る。
・またさらなる関係する態様では、スライス中の第１のラインについて、（ｍ1＊２(((BR*m2)-m3)/m4)）＊（ｎ1＊２(((BF*n2)-n3)/n4)）として、単一のλ値が計算され得る。
・またさらなる関係する態様では、スライス中の第１のラインについて、（ｍ1＊２(((BR*m2)-m3)/m4)）＊（ａ1＊２(((BF*b1)-c1)/d1)）として、単一のλ値が計算され得る。
・関係する態様では、スライス中の第１のラインについて、（ａ＊２(((BR*b)-c)/d)）＊（ｎ1＊２(((BF*n2)-n3)/n4)）として、単一のλ値が計算され得る。
【００７１】
[0067]他の実施形態では、（たとえば、上記のステップ１および２に従って計算された）ペナルティは、計算されたλ値がビットレートとＢＦとに依存するように、単一のλ値を計算するために合計され得る。
・たとえば、（ａ＊２(((BR*b)-c)/d)）＋（ａ1＊２(((BF*b1)-c1)/d1)）として、単一のλ値が計算される。
・関係する態様では、スライス中の第１のラインについて、（ｍ1＊２(((BR*m2)-m3)/m4)）＋（ｎ1＊２(((BF*n2)-n3)/n4)）として、単一のλ値が計算され得る。
・さらなる関係する態様では、スライス中の第１のラインについて、（ｍ1＊２(((BR*m2)-m3)/m4)）＊（ａ1＊２(((BF*b1)-c1)/d1)）として、単一のλ値が計算され得る。
・またさらなる関係する態様では、スライス中の第１のラインについて、（ａ＊２(((BR*b)-c)/d)）＊（ｎ1＊２(((BF*n2)-n3)/n4)）として、単一のλ値が計算され得る。
４．異なるモードのためのラグランジュコストを比較し、モードを選択する
[0068]ＤＳＣにおける各モードについて、（たとえば、上記のステップ３において計算された）ラグランジュパラメータは、ラグランジュコストを決定するために使用され得る。上記で説明したように、ラグランジュコストは、コスト＝Ｄ＋λＲとして計算され得る。本技法は、異なるモードのためのラグランジュコストを比較し、ビデオデータをコーディングするための適切なモードを選択し得る。一実施形態では、最低ラグランジュコストを有するモードが選択される。いくつかの実施形態では、最低ラグランジュコストを有するモードは、あまりに高いレートを有し得、それにより、バッファがオーバーフローすることがある。または、最低ラグランジュコストを有するモードを使用してブロックをコーディングすることは、極めて多くのビットを占め（take up）得るので、スライス中のブロックの残りをコーディングするために、極めて少数のビットのみが残され得る。そのような場合、次善の（next best）モード（たとえば、２番目に低いラグランジュコスト、３番目に低いラグランジュコストなどを有するモード）が選択され得る。たとえば、バッファオーバーフローを防ぐことができるか、またはあまり多くのビットを占めない、次善のモードが選択される。
ＤＳＣにおいてラグランジュパラメータを決定する方法
[0069]図３は、本開示の一実施形態による、ビデオデータをコーディングするためのプロセス３００を示すフローチャートである。本方法は、ラグランジュパラメータを決定することに関する。プロセス３００のブロックは、ビデオエンコーダ（たとえば、図２Ａ中のビデオエンコーダ２０）、ビデオデコーダ（たとえば、図２Ｂ中のビデオデコーダ３０）、またはそれらの（１つまたは複数の）構成要素によって実行され得る。説明の目的で、プロセス３００について、ビデオエンコーダ２０、ビデオデコーダ３０、または別の構成要素であり得る、（単にコーダとも呼ばれる）ビデオコーダによって実行されるものとして説明する。図３に関して説明するすべての実施形態は、別々に、または互いと組み合わせて実装され得る。プロセス３００に関係するいくつかの詳細について上記で説明した。
【００７２】
[0070]プロセスはブロック３０１において開始する。コーダは、ビデオデータを記憶するためのメモリを含むことができる。メモリはバッファを含むことができる。
【００７３】
[0071]ブロック３０２において、コーダは、たとえば、ＤＳＣを介して、コーディングされるべきビデオデータを受信する。
【００７４】
[0072]ブロック３０３において、コーダは、コーディングモードのビットレートとバッファのフルネスとに少なくとも部分的に基づいて、（たとえば、ＤＳＣに関連付けられた）コーディングモードのためのラグランジュパラメータを決定する。一実施形態では、コーダは、現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、ビット比が、コーディングモードを使用して現在ブロックをコーディングするためのビットの数を、圧縮なしに現在ブロックをコーディングするためのビットの数で除算した比である、バッファのフルネスに基づいて第２のラグランジュ乗数を決定することと、第１のラグランジュ乗数と第２のラグランジュ乗数とに少なくとも部分的に基づいてラグランジュパラメータ（たとえば、複合ラグランジュパラメータ）を決定することとを行う。コーダは、第１のラグランジュ乗数と第２のラグランジュ乗数とを乗算することを介してラグランジュパラメータを決定し得る。または、コーダは、第１のラグランジュ乗数と第２のラグランジュ乗数とを加算することを介してラグランジュパラメータを決定し得る。
【００７５】
[0073]別の実施形態では、コーダは、現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、ビット比が、コーディングモードを使用して現在ブロックをコーディングするためのビットの数を、圧縮なしに現在ブロックをコーディングするためのビットの数とコーディングモードに関連付けられた情報をコーディングするためのビットの数との和で除算した比である、バッファのフルネスに基づいて第２のラグランジュ乗数を決定することと、第１のラグランジュ乗数と第２のラグランジュ乗数とに少なくとも部分的に基づいてラグランジュパラメータ（たとえば、複合ラグランジュパラメータ）を決定することとを行う。
【００７６】
[0074]ＤＳＣは複数のコーディングモードを含むことができる。いくつかの実施形態では、コーダは、たとえば、ＤＳＣに関連付けられた、複数のコーディングモードに関連する情報を取得し、複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定し、それぞれのラグランジュパラメータに少なくとも部分的に基づいて複数のコーディングモードのうちの第１のコーディングモードを選択し、第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングする。一実施形態では、複数のコーディングモードの各々について、コーダは、各コーディングモードに関連付けられたラグランジュコストを決定し、ラグランジュコストは、各コーディングモードのひずみ＋各コーディングモードのラグランジュパラメータ＊各コーディングモードのビットレートとして決定される。コーダは、複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードを第１のコーディングモードとして選択し得る。
【００７７】
[0075]いくつかの実施形態では、現在ブロックを含むスライスが複数のラインを含み、複数のラインが第１のラインを含み、第１のラインのためのラグランジュパラメータが、複数のラインのうちの他のラインとは異なる様式（manner）で決定される。他の実施形態では、現在ブロックを含むスライスが複数のラインを含み、複数のラインが第１のラインを含み、第１のラインのためのラグランジュパラメータが、複数のラインのうちの他のラインと同じ様式で決定される。
【００７８】
[0076]プロセス３００はブロック３０４において終了する。ブロックは、実施形態によっては、プロセス３００において追加および／または省略され得、プロセス３００のブロックは、実施形態によっては、異なる順序で実行され得る。
【００７９】
[0077]本開示で説明したいかなる特徴および／または実施形態も、別々に、またはそれらの任意の組合せで実装され得る。たとえば、図１〜図２に関して説明したいかなる特徴および／または実施形態、ならびに本開示の他の部分も、図３に関して説明した任意の特徴および／または実施形態との任意の組合せで実装され得、その逆も同様である。本開示の実施形態は、図３に示されている例にまたはそれによって限定されず、他の変形形態が本開示の趣旨から逸脱することなく実装され得る。
他の考慮事項
[0096]本明細書で開示する情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００８０】
[0097]本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップについて、概してそれらの機能に関して上記で説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【００８１】
[0098]本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明した特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明した方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【００８２】
[0099]プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明した技法の実装に好適な他の構造または装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得、または複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【００８３】
[0100]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素またはユニットについて説明したが、それらの構成要素またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【００８４】
[0101]上記について様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。ただし、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコーディングするための装置であって、
前記ビデオデータを記憶するためのメモリと、前記メモリがバッファを含む、
前記メモリに動作可能に結合され、
コーディングされるべき前記ビデオデータを受信することと、
コーディングモードのビットレートと前記バッファのフルネスとに少なくとも部分的に基づいて前記コーディングモードのためのラグランジュパラメータを決定することと
を行うように構成されたハードウェアプロセッサと
を備える、装置。
［Ｃ２］
前記プロセッサは、
現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、前記ビット比が、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数を、圧縮なしに前記現在ブロックをコーディングするためのビットの数で除算した比である、
前記バッファの前記フルネスに基づいて第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することとを少なくとも部分的に介して、前記コーディングモードのための前記ラグランジュパラメータを決定するように構成された、Ｃ１に記載の装置。
［Ｃ３］
前記プロセッサが、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを乗算することを介して前記ラグランジュパラメータを決定するように構成された、Ｃ２に記載の装置。
［Ｃ４］
前記プロセッサが、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを加算することを介して前記ラグランジュパラメータを決定するように構成された、Ｃ２に記載の装置。
［Ｃ５］
前記プロセッサは、
現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、前記ビット比が、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数を、圧縮なしに前記現在ブロックをコーディングするためのビットの数と前記コーディングモードに関連付けられた情報をコーディングするためのビットの数との和で除算した比である、
前記バッファの前記フルネスに基づいて第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することとを少なくとも部分的に介して、前記コーディングモードのための前記ラグランジュパラメータを決定するように構成された、Ｃ１に記載の装置。
［Ｃ６］
前記プロセッサが、
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
を行うようにさらに構成された、Ｃ１に記載の装置。
［Ｃ７］
前記プロセッサが、
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定するようにさらに構成され、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、Ｃ６に記載の装置。
［Ｃ８］
前記プロセッサが、前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードを前記第１のコーディングモードとして選択するようにさらに構成された、Ｃ７に記載の装置。
［Ｃ９］
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインとは異なる様式で決定される、Ｃ１に記載の装置。
［Ｃ１０］
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインと同じ様式で決定される、Ｃ１に記載の装置。
［Ｃ１１］
ビデオデータをコーディングする方法であって、
前記ビデオデータをメモリに記憶することと、前記メモリがバッファを含む、
コーディングされるべき前記ビデオデータを受信することと、
コーディングモードのビットレートと前記バッファのフルネスとに少なくとも部分的に基づいて前記コーディングモードのためのラグランジュパラメータを決定することと
を備える、方法。
［Ｃ１２］
前記コーディングモードのための前記ラグランジュパラメータを前記決定することは、
現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、前記ビット比が、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数を、圧縮なしに前記現在ブロックをコーディングするためのビットの数で除算した比である、
前記バッファの前記フルネスに基づいて第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することと
を備える、Ｃ１１に記載の方法。
［Ｃ１３］
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも少なくとも部分的に基づいて前記ラグランジュパラメータを前記決定することが、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを乗算することを備える、Ｃ１２に記載の方法。
［Ｃ１４］
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも少なくとも部分的に基づいて前記ラグランジュパラメータを前記決定することが、前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とを加算することを備える、Ｃ１１に記載の方法。
［Ｃ１５］
前記コーディングモードのための前記ラグランジュパラメータを前記決定することは、
現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、前記ビット比が、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数を、圧縮なしに前記現在ブロックをコーディングするためのビットの数と前記コーディングモードに関連付けられた情報をコーディングするためのビットの数との和で除算した比である、
前記バッファの前記フルネスに基づいて第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することと
を備える、Ｃ１１に記載の方法。
［Ｃ１６］
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
をさらに備える、Ｃ１１に記載の方法。
［Ｃ１７］
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定することをさらに備え、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、Ｃ１６に記載の方法。
［Ｃ１８］
前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードが、前記第１のコーディングモードとして選択される、Ｃ１７に記載の方法。
［Ｃ１９］
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインとは異なる様式で決定される、Ｃ１１に記載の方法。
［Ｃ２０］
現在ブロックを含むスライスが複数のラインを含み、前記複数のラインが第１のラインを含み、ここにおいて、前記第１のラインのための前記ラグランジュパラメータが、前記複数のラインのうちの他のラインと同じ様式で決定される、Ｃ１１に記載の方法。
［Ｃ２１］
コンピュータハードウェアを備えるプロセッサ上で実行されたとき、
前記ビデオデータをメモリに記憶することと、前記メモリがバッファを含む、
コーディングされるべき前記ビデオデータを受信することと、
コーディングモードのビットレートと前記バッファのフルネスとに少なくとも部分的に基づいて前記コーディングモードのためのラグランジュパラメータを決定することと
を前記プロセッサに行わせる命令を備える非一時的コンピュータ可読媒体。
［Ｃ２２］
前記命令は、
現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、前記ビット比が、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数を、圧縮なしに前記現在ブロックをコーディングするためのビットの数で除算した比である、
前記バッファの前記フルネスに基づいて第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することとを少なくとも部分的に介して、前記コーディングモードのための前記ラグランジュパラメータを決定することを前記プロセッサにさらに行わせる、Ｃ２１に記載のコンピュータ可読媒体。
［Ｃ２３］
前記命令が、
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
を前記プロセッサにさらに行わせる、Ｃ２１に記載のコンピュータ可読媒体。
［Ｃ２４］
前記命令が、
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定すること
を前記プロセッサにさらに行わせ、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、Ｃ２３に記載のコンピュータ可読媒体。
［Ｃ２５］
前記命令が、前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードを前記第１のコーディングモードとして選択することを前記プロセッサにさらに行わせる、Ｃ２４に記載のコンピュータ可読媒体。
［Ｃ２６］
ビデオ情報をコーディングするための装置であって、
前記ビデオデータをメモリに記憶するための手段と、前記メモリがバッファを含む、
コーディングされるべき前記ビデオデータを受信するための手段と、
コーディングモードのビットレートと前記バッファのフルネスとに少なくとも部分的に基づいて前記コーディングモードのためのラグランジュパラメータを決定するための手段と
を備える、装置。
［Ｃ２７］
前記ラグランジュパラメータを決定するための前記手段は、
現在ブロックのビットレート比に基づいて第１のラグランジュ乗数を決定することと、ここにおいて、前記ビット比が、前記コーディングモードを使用して前記現在ブロックをコーディングするためのビットの数を、圧縮なしに前記現在ブロックをコーディングするためのビットの数で除算した比である、
前記バッファの前記フルネスに基づいて第２のラグランジュ乗数を決定することと、
前記第１のラグランジュ乗数と前記第２のラグランジュ乗数とに少なくとも部分的に基づいて前記ラグランジュパラメータを決定することと
を行うようにさらに構成された、Ｃ２６に記載の装置。
［Ｃ２８］
前記ラグランジュパラメータを決定するための前記手段が、
複数のコーディングモードに関連する情報を取得することと、
前記複数のコーディングモードの各々のためのそれぞれのラグランジュパラメータを決定することと、
前記それぞれのラグランジュパラメータに少なくとも部分的に基づいて前記複数のコーディングモードのうちの第１のコーディングモードを選択することと、
前記第１のコーディングモードを使用してビットストリーム中で現在ブロックをコーディングすることと
を行うようにさらに構成された、Ｃ２６に記載の装置。
［Ｃ２９］
前記ラグランジュパラメータを決定するための前記手段が、
前記複数のコーディングモードの各々について、各コーディングモードに関連付けられたラグランジュコストを決定するようにさらに構成され、前記ラグランジュコストが、各コーディングモードのひずみ＋各コーディングモードの前記ラグランジュパラメータ＊各コーディングモードの前記ビットレートとして決定される、Ｃ２８に記載の装置。
［Ｃ３０］
前記ラグランジュパラメータを決定するための前記手段が、前記複数のコーディングモードのうちの、最低ラグランジュコストを有するコーディングモードを前記第１のコーディングモードとして選択するようにさらに構成された、Ｃ２９に記載の装置。
【図１Ａ】
0006453360.tif 000012
【図１Ｂ】
0006453360.tif 000013
【図２Ａ】
0006453360.tif 000014
【図２Ｂ】
0006453360.tif 000015
【図３】
0006453360.tif 000016