(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
前記ビデオデータのコード化単位（ＣＵ）の予測ブロックのそれぞれのサンプル毎に、
前記それぞれのサンプルを含む領域内の任意のサンプルが前記それぞれのサンプルとは異なる予測単位（ＰＵ）にあると決定することに応答して、前記それぞれのサンプルを遷移ゾーンにあるとして識別することと、ここで、前記領域の領域サイズは、適応的に選択され、前記コード化単位（ＣＵ）は、第１の予測単位（ＰＵ）と第２の予測単位（ＰＵ）とを有する、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルに対する２つの予測を生成することと、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルの代わりに、前記それぞれのサンプルに対する前記２つの予測を融合することから生じるサンプルを、前記予測ブロックに、含めることと、
前記コード化単位（ＣＵ）のための再構成されたサンプルブロックを生成するために、前記コード化単位（ＣＵ）の再構成された残差データと前記コード化単位（ＣＵ）のための前記予測ブロックとを使用することと、
を備える、方法。
【請求項２】
前記領域サイズを指定する領域サイズパラメータを受信することを更に含む、請求項１に記載の方法。
【請求項３】
前記コード化単位（ＣＵ）の特性に基づいて前記領域サイズを選択することを更に備える、請求項１に記載の方法。
【請求項４】
前記コード化単位（ＣＵ）の特性に基づいて前記領域サイズを選択することが、前記コード化単位（ＣＵ）のサイズに基づいて前記領域サイズを選択することを備える、請求項３に記載の方法。
【請求項５】
前記予測単位（ＰＵ）の予測モードに基づいて前記領域サイズを選択することを更に備える、請求項１に記載の方法。
【請求項６】
前記予測単位（ＰＵ）の動きベクトルの偏角に基づいて前記領域サイズを選択することを更に備える、請求項１に記載の方法。
【請求項７】
前記予測ブロック中のサンプルに基づいて前記領域サイズを選択することを更に備える、請求項１に記載の方法。
【請求項８】
前記ビデオデータ中の他のコード化単位（ＣＵ）を符号化した結果に基づいて前記領域サイズを選択することを更に備える、請求項１に記載の方法。
【請求項９】
前記領域が前記それぞれのサンプルを中心とする、請求項１に記載の方法。
【請求項１０】
前記領域が前記それぞれのサンプルを中心としない、請求項１に記載の方法。
【請求項１１】
前記遷移ゾーンは第１の遷移ゾーンであり、
前記方法は、
第２の遷移ゾーン中の前記予測ブロックのサンプルを識別することと、ここで、前記第１の予測単位（ＰＵ）に関連する前記サンプルを含む領域が前記第２の予測単位（ＰＵ）に関連するサンプルを含んでいる場合、前記第１の予測単位（ＰＵ）に関連するサンプルが前記第２の遷移ゾーン中にあり、前記第２の予測単位（ＰＵ）に関連する前記サンプルを含む領域が前記第１の予測単位（ＰＵ）に関連するサンプルを含んでいる場合、前記第２の予測単位（ＰＵ）に関連するサンプルが前記第２の遷移ゾーン中にあり、サンプルが前記第２の遷移ゾーン中にあるかどうかを決定するために使用される前記領域は、サンプルが前記遷移ゾーン中にあるかどうかを決定するために使用される前記領域とは異なるサイズを有する、
前記第２の遷移ゾーン中の前記サンプルに対して平滑化演算を実行することと、をさらに備える、請求項１に記載の方法。
【請求項１２】
前記領域サイズを有する領域が、前記それぞれのサンプルを含み、また前記第１の予測単位（ＰＵ）中のサンプルを含むとき、前記遷移ゾーンが前記第２の予測単位（ＰＵ）中のサンプルを含む、請求項１に記載の方法。
【請求項１３】
前記領域サイズが第１の領域サイズであり、
前記方法は、
前記予測ブロック中の第１のサンプルを選択することと、
前記第１のサンプルが前記第１の予測単位（ＰＵ）に関連することを決定することと、
前記予測ブロック中の第２のサンプルを選択することと、
前記第２のサンプルが前記第２の予測単位（ＰＵ）に関連することを決定することと、
前記第２の予測単位（ＰＵ）が前記第１の領域サイズとは異なる第２の領域サイズに関連すると決定することと、
前記第２の領域サイズを有する領域が、前記第２のサンプルを含み、また前記第１の予測単位（ＰＵ）に関連するサンプルを含むとき、前記第２のサンプルが前記第２の遷移ゾーン内にあることを識別することと、をさらに備える、請求項１に記載の方法。
【請求項１４】
前記コード化単位（ＣＵ）に関連するマルチメディアコンテンツの一部のために以前に選択された領域サイズに基づいて前記領域サイズを選択することを更に備え、前記コード化単位（ＣＵ）に関連する前記マルチメディアコンテンツの前記一部が、現在フレームと、別のコード化単位（ＣＵ）と、コード化単位（ＣＵ）のグループと、サブコード化単位（ＣＵ）のグループと、前記現在フレームのスライスと、前記現在フレームの２つ以上の部分とのうちの１つである、請求項１に記載の方法。
【請求項１５】
ビデオデータを復号するコンピュータ機器であって、
前記ビデオデータのコード化単位（ＣＵ）のための再構成サンプルブロックを記憶するように構成された記憶媒体と、
前記コード化単位（ＣＵ）の予測ブロックのそれぞれのサンプル毎に、
前記それぞれのサンプルを含む領域内の任意のサンプルが前記それぞれのサンプルとは異なる予測単位（ＰＵ）にあると決定することに応答して、前記それぞれのサンプルを遷移ゾーンにあるとして識別することと、ここで、前記領域の領域サイズは、適応的に選択され、前記コード化単位（ＣＵ）は、第１の予測単位（ＰＵ）と第２の予測単位（ＰＵ）とを有する、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルに対する２つの予測を生成することと、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルの代わりに、前記それぞれのサンプルに対する前記２つの予測を融合することから生じるサンプルを、前記予測ブロックに、含めることと、
前記コード化単位（ＣＵ）のための前記再構成されたサンプルブロックを生成するために、前記コード化単位（ＣＵ）の再構成された残差データと前記コード化単位（ＣＵ）のための前記予測ブロックとを使用することと、を行うように構成されたプロセッサと、
を備える、コンピュータ機器。
【請求項１６】
前記プロセッサは、
前記領域サイズを特定する領域サイズパラメータを受信すること、を行うように構成された、請求項１５に記載のコンピュータ機器。
【請求項１７】
前記プロセッサが、前記コード化単位（ＣＵ）の特性に基づいて前記領域サイズを選択するように構成された、請求項１５に記載のコンピュータ機器。
【請求項１８】
前記プロセッサが、前記コード化単位（ＣＵ）のサイズに基づいて前記領域サイズを選択するように構成された、請求項１７に記載のコンピュータ機器。
【請求項１９】
前記プロセッサが、前記第１の予測単位（ＰＵ）の予測モードに基づいて前記領域サイズを選択するように構成された、請求項１５に記載のコンピュータ機器。
【請求項２０】
前記プロセッサが、前記第１の予測単位（ＰＵ）の動きベクトルの偏角に基づいて前記領域サイズを選択するように構成された、請求項１５に記載のコンピュータ機器。
【請求項２１】
前記プロセッサが、前記予測ブロック中のサンプルに基づいて前記領域サイズを選択するように構成された、請求項１５に記載のコンピュータ機器。
【請求項２２】
前記プロセッサが、前記ビデオデータ中の他のコード化単位（ＣＵ）を符号化した結果に基づいて前記領域サイズを選択するように構成された、請求項１５に記載のコンピュータ機器。
【請求項２３】
前記領域が前記それぞれのサンプルを中心とする、請求項１５に記載のコンピュータ機器。
【請求項２４】
前記領域が前記それぞれのサンプルを中心としない、請求項１５に記載のコンピュータ機器。
【請求項２５】
前記遷移ゾーンが第１の遷移ゾーンであり、
前記プロセッサは、
第２の遷移ゾーン中の前記予測ブロックのサンプルを識別することと、ここで、前記サンプルを含む領域が前記第２の予測単位（ＰＵ）に関連するサンプルを含んでいる場合、前記第１の予測単位（ＰＵ）に関連するサンプルが前記第２の遷移ゾーン中にあり、前記サンプルを含む領域が前記第１の予測単位（ＰＵ）と関連するサンプルを含んでいる場合、前記第２の予測単位（ＰＵ）に関連するサンプルが、前記第２の遷移ゾーン中にあり、サンプルが前記第２の遷移ゾーンにあるかどうかを決定するために使用される前記領域が、サンプルが前記遷移ゾーンにあるかどうかを決定するために使用される前記領域とは異なるサイズを有する、
前記第２の遷移ゾーン中の前記サンプルに対して平滑化演算を実行することと、を行うように構成された、請求項１５に記載のコンピュータ機器。
【請求項２６】
前記領域サイズを有する領域が、前記サンプルを含み、また前記第１の予測単位（ＰＵ）中のサンプルを含むとき、前記遷移ゾーンが前記第２の予測単位（ＰＵ）中のサンプルを含む、請求項１５に記載のコンピュータ機器。
【請求項２７】
前記領域が第１の領域であり、
前記プロセッサは、
前記予測ブロック中の第１のサンプルを選択することと、
前記第１のサンプルが前記第１の予測単位（ＰＵ）に関連することを決定することと、
前記予測ブロック中の第２のサンプルを選択することと、
前記第２のサンプルが前記第２の予測単位（ＰＵ）に関連することを決定することと、
前記第２の予測単位（ＰＵ）が前記第１の領域サイズとは異なる第２の領域サイズに関連することを決定することと、
前記第２の領域サイズを有する領域が、前記第２のサンプルを含み、また前記第１の予測単位（ＰＵ）に関連するサンプルを含むとき、前記第２のサンプルが前記遷移ゾーン内にあることを識別することと、を行うようにさらに構成される、請求項１５に記載のコンピュータ機器。
【請求項２８】
前記プロセッサが、前記コード化単位（ＣＵ）に関連するマルチメディアコンテンツの一部のために以前に選択された領域サイズに基づいて前記領域サイズを選択するように構成され、前記コード化単位（ＣＵ）に関連する前記マルチメディアコンテンツの前記一部が、現在フレームと、別のコード化単位（ＣＵ）と、コード化単位（ＣＵ）のグループと、サブコード化単位（ＣＵ）のグループと、前記現在フレームのスライスと、前記現在フレームの２つ以上の部分とのうちの１つである、請求項１５に記載のコンピュータ機器。
【請求項２９】
ビデオデータを復号するコンピュータ機器であって、
前記ビデオデータのコード化単位（ＣＵ）の予測ブロックのそれぞれのサンプル毎に、
前記それぞれのサンプルを含む領域内の任意のサンプルが前記それぞれのサンプルとは異なる予測単位（ＰＵ）にあると決定することに応答して、前記それぞれのサンプルを遷移ゾーンにあるとして識別するための手段と、ここで、前記領域の領域サイズは、適応的に選択され、前記コード化単位（ＣＵ）は、第１の予測単位（ＰＵ）と第２の予測単位（ＰＵ）とを有する、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルに対する２つの予測を生成するための手段と、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルの代わりに、前記それぞれのサンプルに対する前記２つの予測を融合することから生じるサンプルを、前記コード化単位（ＣＵ）のための予測ブロックに、含めるための手段と、
前記コード化単位（ＣＵ）のための再構成されたサンプルブロックを生成するために、前記コード化単位（ＣＵ）の再構成された残差データと前記コード化単位（ＣＵ）のための前記予測ブロックとを使用するための手段と、
を備える、コンピュータ機器。
【請求項３０】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令が、
ビデオデータのコード化単位（ＣＵ）の予測ブロックのそれぞれのサンプル毎に、
前記それぞれのサンプルを含む領域内の任意のサンプルが前記それぞれのサンプルとは異なる予測単位（ＰＵ）にあると決定することに応答して、前記それぞれのサンプルを遷移ゾーンにあるとして識別することと、ここで、前記領域の領域サイズは、適応的に選択され、前記コード化単位（ＣＵ）は、第１の予測単位（ＰＵ）と第２の予測単位（ＰＵ）とを有する、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルに対する２つの予測を生成することと、
前記それぞれのサンプルを前記遷移ゾーンにあるとして識別することに応答して、前記それぞれのサンプルの代わりに、前記それぞれのサンプルに対する前記２つの予測を融合することから生じるサンプルを、前記コード化単位（ＣＵ）のための予測ブロックに、含めることと、
前記コード化単位（ＣＵ）のための再構成されたサンプルブロックを生成するために、前記コード化単位（ＣＵ）の再構成された残差データと前記コード化単位（ＣＵ）のための前記予測ブロックとを使用することと、を１つ以上のプロセッサに行わせる、コンピュータ可読記憶媒体。
【請求項３１】
前記コンピュータ機器は、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信機器のうちの少なくとも１つを備える、請求項１５に記載のコンピュータ機器。
【請求項３２】
前記復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、請求項１９に記載のコンピュータ機器。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１１年１月１０日に出願された米国仮出願第６１／４３１，４０８号、２０１１年３月８日に出願された米国仮出願第６１／４５０，５３２号、２０１１年３月８日に出願された米国仮出願第６１／４５０，５３８号、及び２０１１年９月２１日に出願された米国仮出願第６１／５３７，４５０号の利益を主張する。
【０００２】
本開示は、ビデオコード化に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３又はＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を実行する。ブロックベースのビデオコード化の場合、ビデオフレーム又はスライスはブロックに区分され得る。各ブロックは更に区分され得る。イントラコード化（Ｉ）フレーム又はスライス中のブロックは、隣接ブロックに対する空間的予測を使用して符号化される。インターコード化（Ｐ又はＢ）フレーム又はスライス中のブロックは、同じフレーム又はスライス中の隣接ブロックに対する空間的予測、又は他の参照フレームに対する時間的予測を使用し得る。
【発明の概要】
【０００５】
概して、本開示で説明する技法は、隣接領域サイズを適応的に選択することによってコード化ユニット（ＣＵ：coding unit）のコード化効率を高め得る。本開示で説明するように、ＣＵは、複数の予測単位（ＰＵ：prediction unit）を有し得る。コンピュータ機器は、ＣＵの予測ブロックを生成するために動き補償演算を実行し得る。予測ブロックはサンプルの２次元ブロックであり得る。サンプルの各々は画素値を示し得る。コンピュータ機器が動き補償演算を実行するとき、コンピュータ機器は、ＰＵの動き情報を使用し得る。
【０００６】
いくつかの状況では、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行することによってコード化効率が向上され得る。遷移ゾーンは、ＰＵのうちの異なる１つに関連する予測ブロックのサンプル間の境界に位置する。予測ブロックのサンプルを含んでいる隣接領域が、ＰＵのうちの異なる１つに関連する予測ブロックのサンプルをも含んでいる場合、予測ブロックのサンプルは遷移ゾーン中にあり得る。ＣＵに関連するデータのための異なるコード化効率が、隣接領域のサイズに応じて達成され得る。本開示の技法によれば、ＣＵに関連するデータのコード化効率を向上させるために、隣接領域のサイズはコンピュータ機器によって選択され得る。
【０００７】
一例では、本開示は、ビデオデータをコード化する方法について説明する。本方法は、ビデオデータのフレーム中のＣＵの予測ブロックを生成するために動き補償演算を実行することを備える。ＣＵは、第１のＰＵと第２のＰＵとを有する。本方法はまた、コンピュータ機器が第１の隣接領域サイズを選択することを備える。さらに、本方法は、第１の隣接領域サイズを選択した後に、予測ブロックの第１の遷移ゾーン中のサンプルを識別することを備える。隣接領域が、第１のＰＵに関連するサンプルを含んでおり、また第２のＰＵに関連する予測ブロックのサンプルを含んでいるとき、第１の遷移ゾーンは、第１のＰＵに関連するサンプルを含む。隣接領域は第１の隣接領域サイズを有する。本方法はまた、第１の遷移ゾーン中のサンプルに対して第１の平滑化演算を実行することを備える。
【０００８】
別の例では、本開示は、ビデオデータをコード化するコンピュータ機器について説明する。コンピュータ機器は、ビデオデータのフレーム中のＣＵの予測ブロックを生成するために動き補償演算を実行するように構成されたプロセッサを備える。ＣＵは、第１のＰＵと第２のＰＵとを有する。さらに、プロセッサは、第１の隣接領域サイズを選択するように構成される。プロセッサはまた、第１の隣接領域サイズを選択した後に、プロセッサが予測ブロックの第１の遷移ゾーン中のサンプルを識別するように構成される。隣接領域が、第１のＰＵに関連するサンプルを含んでおり、また第２のＰＵに関連する予測ブロックのサンプルを含んでいるとき、第１の遷移ゾーンは、第１のＰＵに関連するサンプルを含む。隣接領域は第１の隣接領域サイズを有する。さらに、プロセッサは、第１の遷移ゾーン中のサンプルに対して第１の平滑化演算を実行するように構成される。
【０００９】
別の例では、本開示は、ビデオデータをコード化するコンピュータ機器について説明する。コンピュータ機器は、ビデオデータのフレーム中のＣＵの予測ブロックを生成するために動き補償演算を実行するための手段を備える。ＣＵは、第１のＰＵと第２のＰＵとを有する。コンピュータ機器はまた、隣接領域サイズを選択するための手段を備える。さらに、コンピュータ機器は、隣接領域サイズを選択した後に、予測ブロックの遷移ゾーン中のサンプルを識別するための手段を備える。隣接領域が、第１のＰＵに関連するサンプルを含んでおり、また第２のＰＵに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、第１のＰＵに関連するサンプルを含む。隣接領域は隣接領域サイズを有する。さらに、コンピュータ機器は、遷移ゾーン中のサンプルに対して平滑化演算を実行するための手段を備える。
【００１０】
別の例では、本開示は、ビデオデータをコード化するためのコンピュータプログラム製品について説明する。コンピュータプログラム製品は、ビデオデータのフレーム中のＣＵの予測ブロックを生成するために動き補償演算を実行することを１つ以上のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備える。ＣＵは、第１の予測ユニット（ＰＵ）と第２のＰＵとを有する。命令はまた、隣接領域サイズを選択することをプロセッサに行わせる。さらに、隣接領域サイズを選択した後に、命令は、予測ブロックの遷移ゾーン中のサンプルを識別することをプロセッサに行わせる。隣接領域が、第１のＰＵに関連するサンプルを含んでおり、また第２のＰＵに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、第１のＰＵに関連するサンプルを含む。隣接領域は隣接領域サイズを有する。命令はまた、遷移ゾーン中のサンプルに対して平滑化演算を実行することをプロセッサに行わせる。
【００１１】
本発明の１つ以上の実施形態の詳細を添付の図面及び以下の説明に記載する。本発明の他の特徴、目的、及び利点は、これらの説明及び図面、並びに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】例示的なマルチメディアコード化システムを示すブロック図。
【図２】ビデオ中の例示的な一連のフレームを示す概念図。
【図３】符号化ユニットの例示的な構成を示すブロック図。
【図４】ツリーブロックに区分された例示的なフレームを示す概念図。
【図５】ツリーブロックのさらなる例示的な区分を示す概念図。
【図６】インター予測ユニットの例示的な構成を示すブロック図。
【図７】復号ユニットの例示的な構成を示すブロック図。
【図８】インター予測ユニットによって実行される例示的なフレーム間コード化演算を示すフローチャート。
【図９】例示的な矩形区分モードを示す概念図。
【図１０】例示的な幾何学的区分モードを示す概念図。
【図１１】ＣＵの遷移ゾーンを示す概念図。
【図１２】予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算を示すフローチャート。
【図１３】予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。
【図１４】予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。
【図１５】予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。
【図１６】予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。
【図１７】予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。
【図１８】予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。
【図１９】例示的な遷移サンプル識別演算を示すフローチャート。
【図２０】平滑化ユニットの別の例示的な演算を示すフローチャート。
【図２１】別の例示的な遷移サンプル識別演算を示すフローチャート。
【発明を実施するための形態】
【００１３】
添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。添付の図面において、省略符号は、その省略符号によって分離された要素と同様の１つ以上の要素の存在を示す。同様の要素のための参照番号に対するアルファベットの添え字は、それらの要素の特定の数の存在を示すものではない。本開示では、序数ワード（例えば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。そうではなく、そのような序数ワードは、単に、同じ又は同様の種類の異なる要素を指すために使用され得る。
【００１４】
ビデオデータのフレームは、サンプルの１つ以上のブロック（即ち、サンプルブロック）に関連する。サンプルは、画素のルーマ又はクロマ成分など、画素の成分を定義する値であり得る。サンプルブロックは、そのようなサンプルの２次元アレイを指し得る。フレームのサンプルブロックの各々は、フレーム中の画素の異なる成分を指定し得る。エンコーダは、最初に、フレームを「スライス」に区分し得る。スライスは、概して、フレームの単独で復号可能な部分を指すために使用される用語である。
【００１５】
エンコーダは、次に、これらのスライスを「ツリーブロック」に区分し得る。ツリーブロックは最大コード化単位（ＬＣＵ：largest coding unit）と呼ばれることもある。エンコーダは、ツリーブロックを漸進的により小さいサンプルブロックの階層に区分し得、このサンプルブロックの階層は、図示されると階層ツリー構造として表され得、従って「ツリーブロック」という名前を有する。そのような階層ツリー構造のリーフノードは、これらのリーフノードが、コード化されるべきサンプルブロック又は単位を定義するという点で、コード化単位（ＣＵ）に対応し得る。このようにして、ＣＵの各々は、フレームの異なるサンプルブロックに関連する。ツリーブロックをこのように区分することにより、エンコーダは、異なるサイズの動きを取り込むことが可能になり得る。
【００１６】
ＣＵの各々は、１つ以上の予測単位（ＰＵ）を有し得る。ＣＵのサンプルブロックは、ＣＵのＰＵに関連する予測領域に区分される。コーダは、各予測領域の動き情報を生成するために、サンプルブロックの予測領域に関して動き推定演算を実行し得る。予測領域の各々についての動き情報はＰＵとして記憶される。エンコーダ又はデコーダは、ＰＵについて決定された動き情報を使用して、ＣＵの予測ブロックを生成する。本開示では、「コーダ」という用語は、エンコーダ又はデコーダのいずれかを指し得、「コード化」という用語は、符号化又は復号のいずれかを指し得る。
【００１７】
幾つかの事例では、コーダは、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。遷移ゾーンは、概して、異なるＰＵに関連する予測ブロックのサンプル間の境界において生じる。コーダは、この平滑化演算を実行して、ＣＵの残差データの後続のコード化、及び／又はデコーダによって再構成されたときのビデオデータ（そのようなビデオデータは「再構成ビデオデータ」と呼ばれることがある）の得られるビデオ品質を改善し得る。
【００１８】
幾つかの事例では、遷移ゾーン中のサンプルを平滑化することにより、再構成ビデオデータの圧縮性能及び／又は視覚品質が改善されるが、他の事例では、平滑化演算の実行により、圧縮性能を劣化させる人工的な効果が導入される。従って、平滑化演算を実行すると、平滑化演算による追加の残差データの導入により圧縮ビデオデータのサイズがより大きくなり得る。その上、これらの導入された人工的な効果は、閲覧者によって閲覧されたとき、主観的ビデオ品質に影響を及ぼす再構成ビデオデータの主観的知覚を劣化させ得る。幾つかの他の事例では、この平滑化演算を実行することにより、特定のフレームにとって重要であると見なされ得るビデオコンテンツ中のデータが除去され得、それにより、視覚的品質が更に低減され、フレームの再構成のためにこのフレームに依拠する他のフレームの再構成が影響を受け得る。この平滑化演算の実行を介したデータの紛失は、更に、非可逆的であり得、これは、デコーダが紛失したデータを復元することができないことがあることを意味する。
【００１９】
本開示は、視覚品質及び圧縮性能を潜在的に改善する方法で平滑化演算を適応的に実行するための技法を提供する。従来のエンコーダで一般的であるように、あらゆる予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行するのではなく、本技法は、視覚品質又は圧縮性能に関して測定されたとき、それが最も有益であろうとコーダが決定する場合に、コーダが平滑化演算を適応的に実行することを可能にする。例えば、コーダは、ＣＵの１つ以上のＰＵのサイズに基づいて平滑化演算を適応的に実行し得る。
【００２０】
大きく遷移ゾーンでは、より多くのサンプルが操作され得る。しかしながら、あまりに多くのサンプルを処理すると、余分のひずみを導入し得る。小さい遷移ゾーンでは、平滑化演算のパフォーマンスが制限され得る。本開示で説明する幾つかの技法によれば、コーダは隣接領域サイズを適応的に選択する。コーダは、選択された隣接領域サイズの領域を使用して、予測ブロックのサンプルが遷移ゾーン内にあるかどうかを決定する。このようにして、コーダは、平滑化演算のパフォーマンスを最大にするために遷移ゾーンのサイズを選択し得る。
【００２１】
図１は、例示的なマルチメディアコード化システム１００を示すブロック図である。マルチメディアコード化システム１００は、ビデオデータをキャプチャし、キャプチャされたビデオデータを符号化し、符号化されたビデオデータを送信し、符号化されたビデオデータを復号し、次いで、復号されたビデオデータを再生する。
【００２２】
マルチメディアコード化システム１００は、発信源１０２と、符号化ユニット１０４と、復号ユニット１０６と、プレゼンテーションユニット１０８とを備える。発信源１０２はビデオデータを生成する。符号化ユニット１０４はそのビデオデータを符号化する。復号ユニット１０６は、符号化されたビデオデータを復号する。プレゼンテーションユニット１０８は、復号されたビデオデータを提示する。
【００２３】
１つ以上のコンピュータ機器は、発信源１０２と、符号化ユニット１０４と、復号ユニット１０６と、プレゼンテーションユニット１０８とを実施する。本開示では、コンピュータ機器という用語は、情報を処理する物理機器を包含する。コンピュータ機器の例示的なタイプには、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、スマートフォン、タブレットコンピュータ、車載コンピュータ、テレビジョンセットトップボックス、ビデオ会議システム、ビデオ生成機器、ビデオカメラ、ビデオゲーム機、又は情報を処理する他のタイプの機器がある。
【００２４】
幾つかの例では、単一のコンピュータ機器は、発信源１０２と、符号化ユニット１０４と、復号ユニット１０６と、プレゼンテーションユニット１０８とのうちの２つ以上を実施し得る。例えば、単一のコンピュータ機器は、発信源１０２と符号化ユニット１０４とを実施し得る。この例では、別のコンピュータ機器が、復号ユニット１０６とプレゼンテーションユニット１０８とを実施し得る。他の例では、異なるコンピュータ機器が、発信源１０２と、符号化ユニット１０４と、復号ユニット１０６と、プレゼンテーションユニット１０８とを実施する。
【００２５】
図１の例では、コンピュータ機器１０３が符号化ユニット１０４を実施し、コンピュータ機器１０７が復号ユニット１０６を実施する。幾つかの例では、コンピュータ機器１０３は、符号化ユニット１０４の他に機能を提供し得る。更に、幾つかの例では、コンピュータ機器１０７は、復号ユニット１０６の他に機能を提供し得る。
【００２６】
上記で手短に説明したように、発信源１０２は、一連のフレームを表すビデオデータを生成する。フレームは、一般に「ピクチャ」とも呼ばれる。ビデオデータ中の一連のフレームが迅速に連続して（例えば、２４又は２５フレーム毎秒で）ユーザに提示されるとき、ユーザは、フレーム中の被写体が動いていると知覚し得る。
【００２７】
図２は、ビデオデータ中の例示的な一連のフレーム２００Ａ〜２００Ｐを示す概念図である。本開示では、フレーム２００Ａ〜２００Ｐをフレーム２００と総称する。ビデオデータは、自転車レースのシーンを表している。行２０２及び２０４のフレームは、人が自転車のペダルを踏んでいるシーンを示す。行２０６のフレームは、机の後ろに座っている２人の解説者を示す。行２０８のフレームは、上空からの自転車レーサーのシーンを示す。シーン内の各フレームは、先行するフレームと僅かに異なり得る。フレーム２００を迅速に連続して提示することによって、ユーザはこれらのシーンの動きを知覚し得る。
【００２８】
続いて、ここで図１の例の参照をする。様々な例において、発信源１０２は、ビデオデータを様々な方法で生成する。例えば、発信源１０２は、ビデオカメラを備え得る。この例では、ビデオカメラは、視認できる環境から画像を撮影する。別の例では、発信源１０２は、医療、産業、又は科学用撮影のための１つ以上のセンサーを備え得る。そのようなセンサーは、Ｘ線検出器、磁気共鳴画像センサー、粒子検出器などを含み得る。更に別の例では、発信源１０２はアニメーションシステムを備え得る。この例では、１人以上のユーザが、このアニメーションシステムを使用して、彼らの想像からビデオデータのコンテンツを描画、作成、プログラム、又は他の方法でデザインし得る。
【００２９】
符号化ユニット１０４は、発信源１０２によって生成されたビデオデータを受け取る。符号化ユニット１０４は、より少ないデータでビデオデータ中の一連のフレームが表されるようにビデオデータを符号化する。幾つかの事例では、ビデオデータが、ＤＶＤ又はＣＤ−ＲＯＭなど、所与のタイプのコンピュータ可読媒体に記憶され得ることを保証するために、このようにビデオデータを符号化することが必要であり得る。更に、幾つかの事例では、ビデオデータが、インターネットなどの通信ネットワークを介して効率的に送信され得ることを保証するために、このようにビデオデータを符号化することが必要であり得る。
【００３０】
符号化ユニット１０４は、ビデオフレームのシーケンス又は連続としてしばしば表される、ビデオデータを符号化し得る。ビデオデータを符号化するために、符号化ユニット１０４は、これらのフレームを（一般に「スライス」と呼ばれる）単独で復号可能な部分に分割し得、符号化ユニット１０４は、今度は、これらの部分をツリーブロックに分割し得る。これらのツリーブロックは、ある形式の再帰的階層４重ツリー分割（recursive hierarchical quadtree splitting）を受け得る。符号化ユニット１０４は、この分割を実行して、階層ツリー状のデータ構造を生成し得、そのルートノードは「ツリーブロック」と呼ばれる。この階層ツリー状のデータ構造のリーフノードは「コード化ノード」と呼ばれることがある。「コード化単位」又は「ＣＵ」は、コード化ノード、及び動き情報並びに変換情報を含む他のタイプの情報を含む。各コード化ノードは、ツリーブロック内のサンプルブロックを識別する。本開示では、ＣＵに関連するコード化ノードによって識別されるサンプルブロックは、ＣＵのサンプルブロックと呼ばれることがある。
【００３１】
符号化ユニット１０４は、ＣＵのサンプルブロックを予測領域に区分するために矩形及び／又は幾何学的区分モードを使用し得る。符号化ユニット１０４が、ＣＵのサンプルブロックを区分するために幾何学的区分モードを使用したとき、区分領域間の境界がサンプルブロックのエッジと直角に交わらないことがある。符号化ユニット１０４は、予測領域ごとに、動きベクトルなどの動き情報を生成するために、各予測領域に対してある形式の動き推定を実行し得る。ＣＵの「予測単位」又は「ＰＵ」は、ＣＵの予測領域を示す情報、予測領域の動き情報、及び／又は予測領域に関する他の情報を含んでいることがある。符号化ユニット１０４は、動き情報を使用して予測ブロックを生成し得る。
【００３２】
本開示の技法によれば、符号化ユニット１０４は、ＣＵの第１のＰＵのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。遷移ゾーンは、ＣＵの第１のＰＵに関連する予測ブロックのサンプルと、ＣＵの第２のＰＵに関連する予測ブロックのサンプルとの間の境界において生じる。符号化ユニット１０４が平滑化演算を実行すべきであるという決定を行った後に、符号化ユニット１０４は、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行し得る。
【００３３】
更に、本開示の技法によれば、符号化ユニット１０４は、隣接領域サイズを選択することによって予測ブロックのサンプルが遷移ゾーン中にあるかどうかを決定し得る。隣接領域サイズを選択した後に、符号化ユニット１０４は、予測ブロックの遷移ゾーン中のサンプルを識別し得る。隣接領域が、ＣＵの第１のＰＵに関連するサンプルを含んでおり、またＣＵの第２のＰＵに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、ＣＵの第１のＰＵに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。
【００３４】
符号化ユニット１０４は、次いで、ＣＵの元のサンプルブロックを予測ブロックと比較することによって残差データを求める。この残差データを求めた後に、符号化ユニット１０４は、残差データに変換を適用し得る。従って、符号化ユニット１０４は、予測ブロックから導出された残差データに変換を適用する前に、予測ブロックの遷移ゾーン中のサンプルに平滑化演算を適用する。この残差データを変換するために、符号化ユニット１０４は、残差データを１つ以上の変換領域に区分し得る。符号化ユニット１０４は、次いで、残差データの変換領域に１つ以上の変換を適用して、「変換係数ブロック」と呼ばれることもある、変換された残差データを生成する。この変換係数ブロックは、一般に、残差データを変換係数のブロックとして表現する。変換された残差データは、次いで、対応するＣＵの変換単位（ＴＵ）に記憶される。従って、ＣＵは、コード化ノード又はサンプルブロック、ＴＵ及びＣＵ、ならびに、変換された残差データを復号するために必要であり得る他のシンタックス要素を備える。
【００３５】
復号ユニット１０６は、符号化されたビデオデータを受け取る。様々な例において、復号ユニット１０６は、符号化されたビデオデータを様々な方法で受け取り得る。例えば、復号ユニット１０６は、ＤＶＤなど、ビデオデータを記憶したコンピュータ可読媒体を受け取り得る。別の例では、復号ユニット１０６は、インターネット、ローカル領域ネットワーク（ＬＡＮ）、別のコンピュータ機器に接続されたケーブル、又はワイヤレスネットワーキングリンクなどの通信媒体から、符号化されたビデオデータを受け取り得る。
【００３６】
符号化されたビデオデータを受け取った後に、復号ユニット１０６は、その符号化されたビデオデータを復号する。復号ユニット１０６が、符号化されたビデオデータを復号するとき、復号ユニット１０６は、ビデオデータ中のフレームのＣＵのための予測ブロックを生成し得る。復号ユニット１０６は、次いで、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定し得る。予測ブロックの遷移ゾーンは、ＣＵの第１のＰＵに関連する予測ブロックのサンプルと、ＣＵの第２のＰＵに関連する予測ブロックのサンプルとの間の境界にあり得る。復号ユニット１０６が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後に、復号ユニット１０６は、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。
【００３７】
更に、本開示の技法によれば、復号ユニット１０６は、隣接領域サイズを選択することによって予測ブロックのサンプルが遷移ゾーン中にあるかどうかを決定し得る。隣接領域サイズを選択した後に、復号ユニット１０６は、予測ブロックの遷移ゾーン中のサンプルを識別し得る。隣接領域が、ＣＵの第１のＰＵに関連するサンプルを含んでおり、またＣＵの第２のＰＵに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、ＣＵの第１のＰＵに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。
【００３８】
プレゼンテーションユニット１０８は、復号ユニット１０６から、復号されたビデオデータを受け取る。様々な例において、プレゼンテーションユニット１０８は、復号されたビデオデータを様々な方法で受け取る。例えば、単一のコンピュータ機器が、復号ユニット１０６とプレゼンテーションシステム１０８とを設ける場合、プレゼンテーションユニット１０８は、ケーブル又はバスなど、１つ以上の内部通信媒体を介して、復号されたビデオデータを受け取り得る。別の例では、プレゼンテーションユニット１０８は、ネットワーク接続、ＤＶＤ、ＣＤ−ＲＯＭ、固体メモリ機器など、１つ以上のコンピュータ可読媒体から、復号されたビデオデータを受け取り得る。復号されたビデオデータを受け取った後に、プレゼンテーションユニット１０８は、１人以上のユーザに、復号されたビデオデータ中のフレームを提示する。
【００３９】
図３は、符号化ユニット１０４の例示的な構成を示すブロック図である。図３の例では、符号化ユニット１０４は、モード選択ユニット３０２と、インター予測ユニット３０４と、イントラ予測ユニット３０８と、残差生成ユニット３１０と、変換モジュール３１２と、量子化ユニット３１４と、エントロピーコード化ユニット３１６と、逆量子化ユニット３１８と、逆変換ユニット３２０と、再構成ユニット３２２と、参照フレーム記憶部３２４とを設ける。符号化ユニット１０４の幾つかの例は、より多いか、より少ないか、又は異なるユニットを備え得ることを読者は理解されよう。
【００４０】
様々な例において、符号化ユニット１０４は、モード選択ユニット３０２と、インター予測ユニット３０４と、イントラ予測ユニット３０８と、残差生成ユニット３１０と、変換モジュール３１２と、量子化ユニット３１４と、エントロピーコード化ユニット３１６と、逆量子化ユニット３１８と、逆変換ユニット３２０と、再構成ユニット３２２と、参照フレーム記憶部３２４とを、様々な方法で実施する。例えば、符号化ユニット１０４を実施する１つ以上のコンピュータ機器は、この１つ以上のコンピュータ機器のプロセッサが、１つ以上のコンピュータ可読媒体に記憶された幾つかのコンピュータ可読命令を実行するとき、これらのユニットのうちの１つ以上を実施し得る。この例では、これらのユニット又はモジュールは、コンピュータソフトウェアの個別のモジュール部分として、実施されても実施されなくてもよい。別の例では、符号化ユニット１０４を実施する１つ以上のコンピュータ機器は、これらのユニットのうちの１つ以上の機能を実施する１つ以上の特定用途向け集積回路（ＡＳＩＣ）を備え得る。幾つかの例では、これらのユニットの機能は、別個のコンピュータ機器によって提供され得る。
【００４１】
符号化ユニット１０４は、ビデオデータのフレームを表すデータを受け取る。符号化ユニット１０４が、フレームを表すデータを受け取ると、符号化ユニット１０４はそのフレームを符号化する。説明を簡単にするために、本開示では、符号化されているフレームをソースフレームと呼ぶ。ソースフレームを表すデータは、サンプルの１つ以上のブロックを備える。
【００４２】
ソースフレームを符号化するために、モード選択ユニット３０２は、フレームのサンプルブロックを複数のツリーブロックの間で区分する。幾つかの事例では、ツリーブロックは、ルーマサンプルのＮ×Ｎブロックと、クロマサンプルの２つの対応するブロックとであり得る。幾つかの例では、ブロックは、サンプル又は変換係数の２次元アレイである。他の事例では、ツリーブロックは、ルーマサンプル又はクロマサンプルアレイのブロックであり得る。
【００４３】
モード選択ユニット３０２は、ツリーブロックの各々についてクワッドツリーを生成し得る。ツリーブロックのクワッドツリーは、ノードの階層を備える。初期に、所与のツリーブロックのクワッドツリーはルートノードのみを備える。ルートノードは、所与のツリーブロックに対応する。モード選択ユニット３０２は、所与のツリーブロックを複数のより小さいサンプルブロックに区分し得る。モード選択ユニット３０２が、所与のツリーブロックを複数のより小さいサンプルブロックに区分するとき、モード選択ユニット３０２は、所与のツリーブロックのクワッドツリーに子ノードを追加する。子ノードの各々は、これらのより小さいサンプルブロックのうちの異なる１つに対応する。幾つかの例では、モード選択ユニット３０２は、より小さいサンプルブロックのうちの１つ以上を、更により小さいサンプルブロックに再分割し得る。モード選択ユニット３０２が、より小さいサンプルブロックを更により小さいサンプルブロックに区分するとき、モード選択ユニット３０２は、所与のツリーブロックのクワッドツリーに孫ノードを追加し得る。孫ノードの各々は、これらの更により小さいサンプルブロックのうちの１つに対応する。孫ノードは、子ノードの子である。モード選択ユニット３０２は、事前構成された限界まで、適宜に所与のツリーブロックを所与のツリーブロックのクワッドツリーに区分し、ノードを生成し続け得る。本明細書では、子ノードを有しないクワッドツリー中のノード（即ち、リーフノード）をコード化ノードと呼ぶ。
【００４４】
コード化ノードの各々は、異なるＣＵに対応する。ＣＵのコード化ノードは、予測ツリーと変換ツリーとのルートノードである。予測ツリーは、ＣＵのＰＵの情報を記憶する。例えば、予測ツリーは、ＰＵの予測領域のサイズ及び位置を指定し得る。ＣＵのＰＵはまた、追加の関連する予測データを備え得る。変換ツリーは、ＣＵのＴＵに関する情報を記憶する。例えば、変換ツリーは、ＴＵの変換領域のサイズ及び位置を指定し得る。ＣＵのＴＵはまた、追加の関連する変換データを備え得る。
【００４５】
図４は、ツリーブロック４００Ａ〜４００Ｐ（総称して「ツリーブロック４００」）に区分される例示的なフレーム２００Ａを示す概念図である。ツリーブロック４００の各々は、方形であり、同じサイズを有する。例えば、ツリーブロック４００のサンプルブロックは、幅３２サンプル×高さ３２サンプル（即ち、３２×３２）であり得る。別の例では、ツリーブロック４００のサンプルブロックは、６４サンプル幅×６４サンプル高さ（即ち、６４×６４）であり得る。
【００４６】
図５は、ツリーブロック４００のさらなる例示的な区分を示す概念図である。図５の例では、モード選択ユニット３０２は、ツリーブロック４００Ｊのサンプルブロックを４つのより小さいサンプルブロック５００Ａ〜５００Ｄに区分している。更に、図５の例では、モード選択ユニット３０２は、サンプルブロック４００Ｄを４つのサンプルブロック５０２Ａ〜５０４Ｄに区分している。モード選択ユニット３０２は、更に、サンプルブロック５０２Ａを４つのさらなるサンプルブロック５０４Ａ〜５０４Ｄに再分割している。
【００４７】
続いて、ここで図３の例の参照をする。モード選択ユニット３０２がツリーブロックのクワッドツリーを生成した後に、インター予測ユニット３０４は、ツリーブロックのＣＵごとにフレーム間コード化演算を実行する。インター予測ユニット３０４が、ＣＵのためのフレーム間コード化演算を実行するとき、インター予測ユニット３０４は、ＣＵのサンプルブロックを予測領域に区分するために矩形及び／又は幾何学的区分モードを使用する。ＣＵのＰＵはこれらの予測領域を指定する。
【００４８】
インター予測ユニット３０４が、所与の区分モードを使用してサンプルブロックを２つ以上の予測領域に区分した後に、インター予測ユニット３０４は、これらの予測領域に関連するＰＵについての動き情報を生成する動き推定演算を実行し得る。動き推定演算中に、インター予測ユニット３０４は、ＰＵの参照サンプルについて参照フレームを探索する。ＰＵの参照サンプルは、ＰＵの予測領域中のサンプルに対応する参照フレームの部分である。インター予測ユニット３０４は、ＰＵの参照サンプルを示すために、ＰＵについての動き情報を生成する。
【００４９】
インター予測ユニット３０４は、ＣＵのＰＵの参照サンプルを使用してＣＵの予測ブロックを生成する。ＣＵの予測ブロックは予測サンプルのブロックである。ＣＵの予測ブロックは、ＣＵのサンプルブロックとはいくぶん異なり得る。例えば、予測ブロック中のサンプルは、ＣＵのサンプルブロックの対応するサンプルとは色又は輝度が僅かに異なり得る。
【００５０】
本開示の技法によれば、インター予測ユニット３０４は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかの決定を行い得る。インター予測ユニット３０４が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った場合、インター予測ユニット３０４は、遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。更に、インター予測ユニット３０４は、予測ブロックの遷移ゾーン中のサンプルを適応的に識別し得る。例えば、インター予測ユニット３０４は隣接領域サイズを選択し得る。隣接領域サイズを選択した後に、インター予測ユニット３０４は、遷移ゾーン中のサンプルを識別し得る。この例では、隣接領域が、ＣＵの第１のＰＵに関連するサンプルを含んでおり、またＣＵの第２のＰＵに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、ＣＵの第１のＰＵに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。
【００５１】
イントラ予測ユニット３０８は、ＣＵの予測ブロックを生成するために、ソースフレームの他のＣＵのサンプルブロック中のサンプルを使用し得る。様々な例において、イントラ予測ユニット３０８は、予測ブロックを様々な方法で生成する。例えば、イントラ予測ユニット３０８は、隣接ＣＵ中のサンプルが予測ブロックを横切って水平方向に又は予測ブロックを通って垂直下方向に延びるようにＣＵの予測ブロックを生成し得る。イントラ予測ユニット３０８はまた、ＣＵのサンプルブロックに最も良く対応するイントラ予測モードを選択し得る。
【００５２】
インター予測ユニット３０６とイントラ予測ユニット３０８とがＣＵの予測ブロックを生成した後に、モード選択ユニット３０２は、ＣＵの予測ブロックのうちの１つを選択し得る。モード選択ユニット３０２が、イントラ予測ユニット３０８によって生成された予測ブロックを選択する場合、モード選択ユニット３０２は、選択された予測ブロックを生成するときにイントラ予測ユニット３０８が使用したイントラ予測モードを示すために、ＣＵのコード化ノードにシンタックス要素を追加し得る。モード選択ユニット３０２が、インター予測ユニット３０４によって生成された予測ブロックを選択する場合、モード選択ユニット３０２は、ＣＵを符号化するためにインター予測が使用されたことを示すＣＵについてコード化ノードにシンタックス要素を追加し得る。更に、モード選択ユニット３０２は、ＣＵの予測ツリーにシンタックス要素を追加し得る。例えば、モード選択ユニット３０２は、ＣＵのＰＵのサイズ及び位置、ＰＵの動きベクトル、ならびにフレーム間コード化演算中に生成された他のデータを示すシンタックス要素を予測ツリーに追加し得る。更に、モード選択ユニット３０２は、ＣＵの変換ツリーにシンタックス要素を追加し得る。例えば、モード選択ユニット３０２は、ＣＵのＴＵのサイズ及び位置を示すシンタックス要素を変換ツリーに追加し得る。
【００５３】
幾つかの例では、シンタックス要素は、ビットストリーム中に表されたデータの要素である。ビットストリームは、１つ以上のコード化ビデオシーケンスを形成する、コード化ピクチャ及び関連するデータの表現を形成するビットのシーケンスであり得る。コード化ビデオシーケンスはアクセス単位のシーケンスであり得る。アクセス単位は、復号順序が連続しており、ちょうど１つの１次コード化ピクチャを含んでいる、ネットワークアブストラクションレイヤ（ＮＡＬ：Network Abstraction Layer）単位のセットであり得る。ＮＡＬ単位は、後続すべきデータのタイプの指示を含んでいるシンタックス構造と、エミュレーション防止ビットを用いて必要に応じて点在させられた未加工バイトシーケンスペイロードの形式でそのデータを含んでいるバイトとであり得る。１次コード化ピクチャは、ビットストリームのために復号プロセスによって使用されるべきピクチャのコード化表現であり得る。
【００５４】
モード選択ユニット３０２がＣＵの予測ブロックを選択した後に、残差生成ユニット３１０は、ＣＵの元のサンプルブロックと、ＣＵの選択された予測ブロックとを使用して、ＣＵの残差データを生成し得る。幾つかの例では、ＣＵの残差データは、残差データの２次元アレイ（即ち、残差ブロック）として構成され得る。ＣＵの残差データは、ＣＵの元のサンプルブロックと、ＣＵの予測ブロックとの間の差異を表し得る。様々な例において、残差生成ユニット３１０は、残差データを様々な方法で生成し得る。例えば、残差生成ユニット３１０は、ＣＵのサンプルブロック中のサンプルからＣＵの予測ブロック中のサンプルを減算することによってＣＵの残差データを生成し得る。
【００５５】
上記で手短に説明したように、各ＣＵは１つ以上のＴＵを有する。変換単位は、変換ツリー及び関連する変換データを備え得る。変換ツリーは、変換領域のサイズ及び位置を指定し得る。例えば、変換ツリーは、変換領域の左上コーナーの位置を示し得る。この例では、変換領域のサイズは、変換ツリー中の対応するノードの深さから導出され得る。
【００５６】
残差生成ユニット３１０がＣＵの残差データを生成すると、変換モジュール３１２は、ＣＵのＴＵごとに変換演算を実行し得る。変換モジュール３１２がＣＵのＴＵのための変換演算を実行するとき、変換モジュール３１２は、残差データの適用可能なサンプルを空間領域から周波数領域に変換する。変換モジュール３１２は、サンプルを周波数領域に変換係数ブロックとして記憶し得る。残差データの適用可能なサンプルは、ＴＵによって指定された変換領域中に残差データのサンプルを含み得る。変換係数ブロックは変換係数の２次元アレイである。幾つかの例では、変換係数は、復号プロセスの逆変換部分において特定の１次元又は２次元周波数インデックスに関連付けられた、周波数領域中にあると見なされるスカラー量であり得る。
【００５７】
変換モジュール３１２が残差データのサンプルに対して変換演算を実行するとき、変換モジュール３１２は、それらのサンプルに数学的変換を適用する。例えば、変換モジュール３１２は、サンプルを空間領域から周波数領域に変換するために、サンプルに対して離散コサイン変換（ＤＣＴ）を実行し得る。
【００５８】
変換モジュール３１２は、得られた変換係数ブロックを量子化ユニット３１４に与え得る。量子化ユニット３１４は、変換係数ブロックに対して量子化演算を実行し得る。量子化ユニット３１４が量子化演算を実行するとき、量子化ユニット３１４は、変換係数ブロック中の変換係数の各々を量子化し、それによって量子化変換係数ブロックを生成し得る。量子化変換係数ブロックは量子化変換係数の２次元アレイである。様々な例において、量子化ユニット３１４は様々な量子化演算を実行する。例えば、量子化ユニット３１４は、変換係数を量子化パラメータで除算し、次いで、得られた商をクリッピングすることによって変換係数を量子化する、量子化演算を実行し得る。
【００５９】
量子化ユニット３１４がＣＵの変換係数ブロックに対して量子化演算を実行した後、エントロピーコード化ユニット３１６は、ＣＵの量子化変換係数ブロックと、ＣＵのコード化ノードと、ＣＵの予測ツリーと、ＣＵの変換ツリーとに対してエントロピーコード化演算を実行する。エントロピーコード化ユニット３１６は、このエントロピーコード化演算を実行した結果として、ＣＵのエントロピーコード化データを生成する。幾つかの事例では、エントロピーコード化ユニット３１６がエントロピーコード化演算を実行するとき、量子化ユニット３１４は、ＣＵのデータを表すために必要とされるビット数を低減し得る。様々な事例において、エントロピーコード化ユニット３１６は、ＣＵのデータに対して様々なエントロピーコード化演算を実行し得る。例えば、エントロピーコード化ユニット３１６は、ＣＵのデータに対してコンテキスト適応型可変長コード化（ＣＡＶＬＣ）演算又はコンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）演算を実行し得る。
【００６０】
符号化ユニット１０４は、ＣＵのエントロピー符号化データを含むビットストリームを生成する。様々な例において、符号化ユニット１０４は、ＣＵのエントロピー符号化データを含む様々なタイプのビットストリームを生成し得る。例えば、符号化ユニット１０４はＮＡＬ単位ストリームを出力し得る。この例では、ＮＡＬ単位ストリームは、ＮＡＬ単位と呼ばれるシンタックス構造のシーケンスを備える。ＮＡＬ単位は復号順に順序付けられる。ＮＡＬ単位のうちの１つ以上は、ＣＵのエントロピー符号化データを含み得る。別の例では、符号化ユニット１０４はバイトストリームを出力し得る。符号化ユニット１０４は、ＮＡＬ単位を復号順に順序付けし、各ＮＡＬ単位の前に開始コードプレフィックスと０個以上の０値バイトとを付けてバイトのストリームを形成するによって、ＮＡＬ単位ストリームからバイトストリームを構築する。
【００６１】
逆量子化ユニット３１８は、量子化変換係数ブロックに対して逆量子化演算を実行する。この逆量子化演算は、少なくとも部分的に、量子化ユニット３１４によって実行された量子化演算の効果を逆転させ、それによって変換係数ブロックを生成する。
【００６２】
逆変換ユニット３２０は、逆量子化ユニット３１８によって生成された変換係数ブロックに対して逆変換演算を実行する。逆変換ユニット３２０が逆変換演算を実行するとき、逆変換ユニット３２０は、変換モジュール３１２によって実行された変換演算の効果を逆転させ、それによって、再構成された残差データを生成する。
【００６３】
再構成ユニット３２２は、再構成されたサンプルブロックを生成する再構成演算を実行する。再構成ユニット３２２は、再構成された残差データと、インター予測ユニット３０４又はイントラ予測ユニット３０８によって生成された予測ブロックとに基づいて、再構成されたサンプルブロックを生成する。様々な例において、再構成ユニット３２２は様々な再構成演算を実行する。例えば、再構成ユニット３２２は、再構成された残差データ中のサンプルに予測ブロック中の対応するサンプルを加算することによって再構成演算を実行する。
【００６４】
参照フレーム記憶部３２４は、再構成されたサンプルブロックを記憶する。符号化ユニット１０４がソースフレームの各ＣＵについてデータを符号化した後に、符号化ユニット１０４は、ソースフレーム中の各ＣＵについて再構成されたサンプルブロックを生成している。従って、参照フレーム記憶部３２４は、ソースフレームのサンプルブロックの完全な再構成を記憶する。モード選択ユニット３０２は、ソースフレームのサンプルブロックの再構成を参照フレームとしてインター予測ユニット３０４に与え得る。
【００６５】
図６は、インター予測ユニット３０４の例示的な構成を示すブロック図である。図６の例では、インター予測ユニット３０４は、動き推定ユニット６０２と、動き補償ユニット６０４と、ＴＵ生成ユニット６０６とを備える。動き補償ユニット６０４は平滑化ユニット６０８を備える。インター予測ユニット３０４の他の例示的な構成は、より多いか、より少ないか、又は異なる構成要素を含み得ることを読者は理解されよう。
【００６６】
動き推定ユニット６０２は、ＣＵのＰＵごとに動き推定演算を実行し得る。動き補償ユニット６０４は、ＣＵの予測ブロックを生成する動き補償演算を実行し得る。ＴＵ生成ユニット６０６は、ＣＵのＴＵを生成する変換単位選択演算を実行し得る。本開示の技法によれば、平滑化ユニット６０８は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行し得る。更に、平滑化ユニット６０８は、予測ブロックのどのサンプルが遷移ゾーン中にあるかを決定し得る。図１２〜図２１について平滑化ユニット６０８によって実行される演算として説明するが、図１２〜図２１において説明する演算は、復号ユニット１０６の動き補償ユニットによって実行され得る。
【００６７】
動き推定ユニット６０２がＣＵの動き推定演算を実行するとき、動き推定ユニット６０２は、１つ以上の予測ツリーを生成し得る。予測ツリーの各々は、ＣＵの異なるＰＵに関連し得る。予測ツリーの各々は、予測領域の位置及びサイズを指定し得る。説明を簡単にするために、本開示では、ＰＵの予測ツリーによって指定された予測領域の位置又はサイズをＰＵの位置又はサイズと呼ぶことがある。
【００６８】
動き推定ユニット６０２は、参照サンプルについて１つ以上の参照フレームを探索し得る。ＰＵの参照サンプルは、ＰＵの予測領域内に入るＣＵのサンプルブロックの部分に視覚的に対応する参照フレームの領域であり得る。動き推定ユニット６０２が、ＰＵのうちの１つについてそのような参照サンプルを見つけた場合、動き推定ユニット６０２は動きベクトルを生成し得る。この動きベクトルは、ＰＵの参照サンプルの空間位置とＰＵの空間位置との間の差異を記述するデータのセットである。例えば、動きベクトルは、ＰＵの参照サンプルが、ＰＵに対して５サンプル分だけより高く、３サンプル分だけ右側にあることを示し得る。更に、幾つかの状況では、動き推定ユニット６０２は、ＰＵの参照サンプルを識別することができないことがある。そのような状況では、動き推定ユニット６０２は、ＰＵのためにスキップモード又はダイレクトモードを選択し得る。
【００６９】
幾つかの例では、ＰＵの参照サンプルについて探索を実行するのではなく、動き推定ユニット６０２は、ＰＵの動きベクトルを予測し得る。この動きベクトル予測を実行する際に、動き推定ユニット６０２は、ソースフレーム中の空間的に隣接するＣＵについて決定される動きベクトル、又は参照フレーム中のコロケートＣＵについて決定される動きベクトルのうちの１つを選択し得る。動き推定ユニット６０２は、各区分の動きベクトルを決定することに関連する複雑さを低減するために、参照サンプルについて探索するのではなく動きベクトル予測を実行し得る。
【００７０】
動き補償ユニット６０４は、ＣＵの予測ブロックを生成するためにＰＵのインターコード化モードを使用する。動き推定ユニット６０２がＰＵのためにスキップモードを選択した場合、動き補償ユニット６０４は、そのＰＵに関連する予測ブロック中のサンプルが参照フレーム中のコロケートサンプルに一致するようにＣＵの予測ブロックを生成し得る。動き推定ユニット６０２がＰＵのためにダイレクトモードを選択した場合、動き補償ユニット６０４は、そのＰＵに関連する予測ブロック中のサンプルがＣＵのサンプルブロック中のコロケートサンプルに一致するように予測ブロックを生成し得る。動き推定ユニット６０２がＰＵのために動きベクトルを生成した場合、動き補償ユニット６０４は、そのＰＵに関連する予測ブロック中のサンプルが、動きベクトルによって示される参照フレームの部分中のサンプルに対応するように、予測ブロックを生成し得る。動き推定ユニット６０２がＰＵのために複数の動きベクトルを生成した場合、動き補償ユニット６０４は、そのＰＵに関連する予測ブロック中のサンプルが、そのＰＵの動きベクトルによって示される複数の参照フレームの部分中のサンプルに対応するように、予測ブロックを生成し得る。
【００７１】
図７は、復号ユニット１０６の例示的な構成を示すブロック図である。図７の例に示すように、復号ユニット１０６は、エントロピー復号ユニット７００と、動き補償ユニット７０２と、イントラ予測ユニット７０４と、逆量子化ユニット７０８と、逆変換モジュール７１０と、再構成ユニット７１２と、参照フレーム記憶部７１４とを実施する。様々な例において、復号ユニット１０６は、これらの構成要素を様々な方法で実施する。例えば、復号ユニット１０６を与える１つ以上のコンピュータ機器は、このコンピュータ機器のプロセッサが幾つかのコンピュータ可読命令を実行するとき、これらのユニットを実施し得る。この例では、これらのユニット又はモジュールは、コンピュータソフトウェアの個別のモジュール部分として、実施されても実施されなくてもよい。別の例では、復号ユニット１０６を実施する１つ以上のコンピュータ機器は、これらのユニットのうちの１つ以上の機能を提供するＡＳＩＣを備え得る。
【００７２】
復号ユニット１０６は、ビデオデータを表す符号化ビットストリームを受け取る。符号化ビットストリームは、ビデオデータ中のフレームを表すデータを備え得る。例えば、符号化ビットストリームは、フレーム２００（図２）の各々を表すデータを備え得る。復号ユニット１０６が、フレームを表すデータを受け取ると、復号ユニット１０６は、フレームを再構成するためにそのデータを復号する。説明を簡単にするために、本開示では、このフレームをソースフレームと呼ぶことがある。
【００７３】
復号ユニット１０６がソースフレームについてデータを復号するとき、復号ユニット１０６は、ソースフレームの各ＣＵについて符号化データを受け取る。例えば、復号ユニット１０６は、ＣＵの量子化変換係数ブロックの符号化バージョンと、ＣＵのコード化ノードの符号化バージョンと、ＣＵの予測ツリーの符号化バージョンと、ＣＵの変換ツリーの符号化バージョンとを受け取り得る。復号ユニット１０６は、次いで、ソースフレームの各ＣＵのデータを復号する。復号ユニット１０６が所与のＣＵのデータを復号するとき、エントロピー復号ユニット７００は、所与のＣＵの符号化データを受け取る。エントロピー復号ユニット７００は、所与のＣＵの符号化データに対してエントロピー復号演算を実行する。エントロピー復号演算は、エントロピーコード化ユニット３１６（図３）によって実行されたエントロピーコード化演算の効果を逆転させる。
【００７４】
エントロピー復号ユニット７００は、ＣＵの量子化変換係数ブロックを逆量子化ユニット７０８に与える。エントロピー復号ユニット７００は、ＣＵのコード化ノード、予測ツリー、及び変換ツリーなど、ＣＵのコード化データを、動き補償ユニット７０２及び／又はイントラ予測ユニット７０４に与え得る。
【００７５】
動き補償ユニット７０２がＣＵのコード化データを受け取ると、動き補償ユニット７０２は、そのコード化データを使用して、ＣＵの予測ブロックを生成する動き補償演算を実行する。動き補償演算中に、動き補償ユニット７０２は、参照フレーム記憶部７１４から１つ以上の参照フレームを取り出し得る。動き補償ユニット７０２は、次いで、ＣＵのＰＵのための参照サンプルを識別し得る。ＰＵの動きベクトルが、ＰＵの参照サンプルとして参照フレーム内の領域を識別する。ＣＵのＰＵのための参照サンプルを識別した後に、動き補償ユニット７０２は、ＣＵの予測ブロックを生成する。予測ブロックにおいて、ＣＵのＰＵは、ＰＵの参照サンプルを含んでいることがある。
【００７６】
本開示の技法によれば、動き補償ユニット７０２は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行する演算を実行し得る。例えば、動き補償ユニット７０２は、図１２〜図１８及び図２０に示す例示的な演算のうちの１つを実行し得る。更に、幾つかの事例では、動き補償ユニット７０２は、どのサンプルが遷移ゾーン内にあるかを決定し得る。幾つかの例では、動き補償ユニット７０２は、図２０及び図２１に示す例示的な演算を実行することによって、どのサンプルが遷移ゾーン内にあるかを決定し得る。
【００７７】
イントラ予測ユニット７０４がＣＵのコード化データを受け取ると、イントラ予測ユニット７０４は、ソースフレーム中の前に復号されたサンプルブロックの再構成されたサンプルブロックを使用して、ＣＵの予測ブロックを生成する。イントラ予測ユニット７０４は、指示されたイントラ予測モードに従って予測ブロック中のサンプルを修正し得る。
【００７８】
逆量子化ユニット７０８は、各ＣＵについて１つ以上の量子化変換係数ブロックを受け取る。逆量子化ユニット７０８がＣＵの量子化変換係数ブロックを受け取ると、逆量子化ユニット７０８は、少なくとも部分的に、量子化ユニット３１４（図３）によって実行された量子化演算の効果を逆転させ、それによってＣＵの非量子化変換係数ブロックを生成する、逆量子化演算を実行する。
【００７９】
逆変換モジュール７１０は、変換係数ブロックに対して逆変換演算を実行する。この逆変換演算は、変換モジュール３１２（図３）によって実行された変換演算の効果を逆転させ、それによって、再構成された残差データを生成し得る。逆変換モジュール７１０は、再構成された残差データを再構成ユニット７１２に与える。
【００８０】
再構成ユニット７１２は、動き補償ユニット７０２及びイントラ予測ユニット７０４から予測ブロックを受け取る。再構成ユニット７１２はまた、逆変換モジュール７１０から、対応する再構成された残差データを受け取る。再構成ユニット７１２は、ＣＵの再構成された残差データとＣＵの予測ブロックとを使用して、ＣＵのための再構成されたサンプルブロックを生成する、再構成演算を実行する。様々な例において、再構成ユニット７１２は様々な再構成演算を実行し得る。例えば、再構成ユニット７１２は、ＣＵの再構成された残差データ中のサンプルにＣＵの予測ブロック中の対応するサンプルを加算することによって、ＣＵの再構成されたサンプルブロックを生成し得る。
【００８１】
ＣＵのための再構成されたサンプルブロックを生成した後に、再構成ユニット７１２は、再構成されたサンプルブロックを出力する。再構成ユニット７１２はまた、再構成されたサンプルブロックを参照フレーム記憶部７１４に与える。参照フレーム記憶部７１４は、再構成されたサンプルブロックを記憶する。動き補償ユニット７０２及び／又はイントラ予測ユニット７０４は、その後、再構成されたサンプルブロックを使用して追加の予測ブロックを生成し得る。
【００８２】
図８は、インター予測ユニット３０４によって実行される例示的なフレーム間コード化演算８００を示すフローチャートである。符号化ユニット１０４がフレーム間コード化演算８００を開始した後、動き推定ユニット６０２は、ＣＵのＰＵに対して動き推定演算を実行する（８０２）。幾つかの事例では、動き推定ユニット６０２は、ＰＵの参照サンプルについて参照フレームの探索領域内を探索することによってＰＵの動き推定演算を実行し得る。ＰＵの参照サンプルは、ＰＵの予測ツリーによって指定された予測領域に対応する参照フレームの一部分であり得る。動き推定ユニット６０２がＰＵの参照サンプルを見つけた場合、動き推定ユニット６０２は、ＰＵとＰＵの参照サンプルとの間の位置の差異を示す動きベクトルを生成し得る。他の事例では、動き推定ユニット６０２は、ＰＵの動きベクトルを予測し得る。
【００８３】
この一般的な枠組内で、動き推定ユニット６０２の様々な例は、動き推定演算を様々な方法で実行し得る。例えば、ＰＵに対応する参照フレームの部分を探索するとき、動き推定ユニット６０２の異なる例は異なる探索領域を使用し得る。幾つかのそのような例では、符号化ユニット１０４は、動き推定ユニット６０２によって使用される探索領域のサイズを制御する探索領域パラメータを有する。探索領域パラメータの値は、人間のユーザによって、又はコンピュータプログラムによって設定され得る。
【００８４】
ＣＵのＰＵに対して動き推定演算を実行した後に、動き補償ユニット６０４は、動き補償演算を実行してＣＵの予測ブロックを生成する（８０４）。更に、演算８００の実行中に、平滑化ユニット６０８は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行する演算を実行する（８０６）。この平滑化演算は、予測ブロックの遷移ゾーン中のサンプルを平滑化し得る。遷移ゾーンは、ＣＵの異なるＰＵに関連する予測ブロックのサンプル間の境界において生じ得る。例えば、遷移ゾーンは、ＣＵの第１のＰＵに関連する予測ブロックのサンプルと、第２のＰＵに関連する予測ブロックのサンプルとの間の境界において生じ得る。予測ブロックのサンプルが、ＰＵの予測ツリーによって指定された予測領域内にあるとき、そのサンプルはＰＵに関連し得る。
【００８５】
幾つかの例では、遷移領域中のサンプルを平滑化することにより、そのサンプルと、そのサンプルに隣接するサンプルとの間の差異が低減され得る。本開示における他の場所で説明したように、平滑化ユニット６０８は、平滑化演算を実行することによって、ＣＵの復号されたサンプルブロックのコード化効率及び／又は視覚的外観を改善し得る。様々な例において、平滑化ユニット６０８は様々な平滑化演算を実行する。本開示における他の場所で詳細に説明する図１２〜図１８及び図２０に、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するために平滑化ユニット６０８によって実行される例示的な演算を示す。
【００８６】
更に、ＴＵ生成ユニット６０６は、ＣＵのためのＴＵのサイズを選択する変換選択演算を実行する（８０８）。上記で説明したように、変換モジュール３１２はＣＵの残差データを受け取り得る。変換モジュール３１２は、次いで、ＣＵの各ＴＵに対して変換演算を実行し得る。変換モジュール３１２がＴＵに対して変換演算を実行するとき、変換モジュール３１２は、ＴＵに対応する残差データのサンプルに変換を適用し、それによってＴＵの変換係数ブロックを生成し得る。残差データのサンプルが、ＴＵの変換ツリーによって指定された変換領域内にあるとき、そのサンプルはＴＵに対応し得る。符号化ユニット１０４中の逆変換ユニット３２０及び復号ユニット１０６中の逆変換モジュール７１０はまた、変換係数ブロックをサンプルブロックに変換するとき、選択された変換サイズを有する変換を使用する。
【００８７】
更に、インター予測ユニット３０４はインター予測シンタックス要素を生成する（８１０）。インター予測シンタックス要素は、ＣＵと予測ブロックとに関する情報を提供し得る。例えば、インター予測シンタックス要素は、ＣＵが２つ以上のＰＵを有するかどうかを示すシンタックス要素を含み得る。この例では、ＣＵが２つ以上のＰＵを有する場合、インター予測シンタックス要素はまた、ＰＵの予測領域のサイズ、形状、及び／又は位置を示し得る。別の例では、インター予測シンタックス要素は、ＣＵのＰＵのためのインター予測モードを指定し得る。更に、インター予測シンタックス要素は、ＣＵのＰＵのうちの１つ以上の動きベクトルに基づくデータを含み得る。別の例では、インター予測シンタックス要素は、ＣＵのＴＵのサイズ及び／又は位置を示し得る。幾つかの例では、インター予測シンタックス要素のセットは、Ｈ．２６４  ＭＰＥＧ  Ｐａｒｔ１０規格によって指定されたインター予測シンタックス要素の一部又は全部を含む。
【００８８】
モード選択ユニット３０２が、ステップ８０４において生成された予測ブロックを選択した場合、インター予測ユニット３０４は、予測ブロックを残差生成ユニット３１０及び再構成ユニット３２２に出力し得る。更に、モード選択ユニット３０２が、ステップ８０４において生成された予測ブロックを選択した場合、モード選択ユニット３０２は、ＣＵのコード化ノード、予測ツリー及び／又は変換ツリーにインター予測シンタックス要素を含め得る。
【００８９】
図９は、例示的な矩形区分モードを示す概念図である。上記で手短に説明したように、動き推定ユニット６０２は、ＣＵのための１つ以上のＰＵを生成し得る。ＰＵの各々は、予測領域のサイズ及び位置を指定する予測ツリーを有し得る。予測領域の各々は、ＣＵのサンプルブロックの異なる区分に対応し得る。説明を簡単にするために、本開示では、ＰＵの予測ツリーによって指定された予測領域が、ＣＵのサンプルブロックの区分に対応するとき、ＰＵはＣＵのサンプルブロックの区分に対応すると説明することがある。
【００９０】
様々な例において、動き推定ユニット６０２は、ＣＵのＰＵを生成するために様々な区分モードを使用し得る。そのような区分モードは矩形区分モードを含み得る。矩形区分モードでは、ＰＵは、ＣＵのサンプルブロックの矩形区分に対応する。幾つかの例では、動き推定ユニット６０２は、Ｈ．２６４  ＭＰＥＧ  Ｐａｒｔ１０規格において定義されている一部又は全部の矩形区分モードを使用することが可能である。
【００９１】
図９の例は、矩形区分モード９００Ａ〜Ｈ（総称して「矩形区分モード９００」）を示している。矩形区分モード９００Ａでは、動き推定ユニット６０２は、ＣＵのための単一のＰＵを生成する。このＰＵの予測領域は、ＣＵのサンプルブロックと同じサイズである。矩形区分モード９００Ｂでは、動き推定ユニット６０２は、ＣＵのための４つのＰＵを生成する。矩形区分モード９００Ｂを使用して生成されたＰＵは、ＣＵのサンプルブロックの４つの等しいサイズの区分に対応する。
【００９２】
矩形区分モード９００Ｃ〜９００Ｈでは、動き推定ユニット６０２は、ＣＵのための２つのＰＵを生成する。矩形区分モード９００Ｃを使用して生成されたＰＵは、ＣＵのサンプルブロックの等しいサイズの水平方向に分割された区分に対応する。矩形区分モード９００Ｄを使用して生成されたＰＵは、ＣＵのサンプルブロックの等しいサイズの垂直方向に分割された区分に対応する。
【００９３】
矩形区分モード９００Ｅを使用して生成されたＰＵは、サンプルブロックの水平方向に分割された区分に対応し、下のほうの区分が上のほうの区分よりも大きい。幾つかの例では、動き推定ユニット６０２は、サンプルブロックの水平中央線より上方でサンプルブロック中の任意のサンプルにおいて水平方向にサンプルブロックを区分し得る。矩形区分モード９００Ｆを使用して生成されたＰＵは、サンプルブロックの水平方向に分割された区分に対応し、下のほうの区分が上のほうの区分よりも小さい。幾つかの例では、動き推定ユニット６０２は、サンプルブロックの水平中央線より下方でサンプルブロック中の任意のサンプルにおいて水平方向にサンプルブロックを区分し得る。
【００９４】
矩形区分モード９００Ｇを使用して生成されたＰＵは、サンプルブロックの垂直方向に分割された区分に対応し、左区分が右区分よりも小さい。幾つかの例では、動き推定ユニット６０２は、サンプルブロックの垂直中央線の左側でサンプルブロック中の任意のサンプルにおいて垂直方向にサンプルブロックを区分し得る。矩形区分モード９００Ｈを使用して生成されたＰＵは、サンプルブロックの垂直方向に分割された区分に対応し、左区分が右区分よりも大きい。幾つかの例では、動き推定ユニット６０２は、サンプルブロックの垂直中央線の右側でサンプルブロック中の任意のサンプルにおいて垂直方向にサンプルブロックを区分し得る。
【００９５】
図１０は、例示的な幾何学的区分モードを示す概念図である。幾つかの例では、動き推定ユニット６０２は、ＣＵのための２つのＰＵを生成するために幾何学的区分モードを使用する。動き推定ユニット６０２が、ＣＵのためのＰＵを生成するために幾何学的区分モードを使用するとき、ＰＵはＣＵのサンプルブロックの区分に対応し、サンプルブロックの境界は必ずしもサンプルブロックのエッジに直角に交わるとは限らない。
【００９６】
図１０の例では、動き推定ユニット６０２は、幾何学的区分モードを使用して、サンプルブロック１０００を第１の区分１００２と第２の区分１００４とに区分している。区分線１００６が第１の区分１００２と第２の区分１００４とを分離する。説明を簡単にするために、図１０は、サンプルブロック１０００の垂直中央線１００８と水平中央線１０１０とを示している。２つのパラメータが、サンプルブロック１０００を区分するために使用される幾何学的区分モードを定義する。本開示では、これらの２つのパラメータをθ及びρと呼ぶ。θパラメータは、線１０１４がサンプルブロック１０００の中心点から展開する角度１０１２を示す。ρパラメータは、線１０１４の長さ１０１６を示す。従って、θ及びρパラメータは、サンプルブロック１０００内の点１０１８を示す極座標として働く。区分線１００６は、区分線１００６が線１０１４に直角に交わるように定義される。図１０の例では、区分線１００６がサンプルブロック１０００のエッジに交わる角度１０２０は直角でない。このようにして、θ及びρパラメータは区分線１００６の位置を定義する。θ及びρパラメータの様々な値を使用することによって、動き推定ユニット６０２は、サンプルブロック１０００を区分する様々な線を定義し得る。
【００９７】
区分線１００６及び線１０１４は、必ずしもサンプルブロック１０００中に視覚的に存在するとは限らず、図１０では、サンプルブロック１０００がどのように幾何学的に区分されるかを示すために図示されている。
【００９８】
図１１は、ＣＵの予測ブロック１２０２の遷移ゾーン１２００を示す概念図である。図１１の例では、予測ブロック１２０２は、ＣＵの第１のＰＵに関連するサンプル１２０４と、ＣＵの第２のＰＵに関連するサンプル１２０６とを含む。区分線１２０８がサンプル１２０４をサンプル１２０６から分離している。遷移ゾーン１２００は、サンプル１２０４とサンプル１２０６との間の境界において生じる予測ブロック１２０２の部分である。図１１の例では、遷移ゾーン１２００中のサンプルはブロックとして示されている。
【００９９】
以下で詳細に説明する図１２〜図１８及び図２０に、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算を示す。これらの例示的な演算の各々において、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。幾つかの状況では、ＣＵのコード化効率は、遷移ゾーン中のサンプルを平滑化することによって高められ得る。他の状況では、ＣＵのコード化効率は、遷移ゾーン中のサンプルを平滑化することによって減少させられ得る。従って、遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行することによって、符号化ユニット１０４は、ＣＵのコード化効率を高め得る。
【０１００】
図１２は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算１２５０を示すフローチャートである。平滑化ユニット６０８は、図１３〜図１８及び図２０に示す例示的な演算の代替として演算１２５０を実行し得る。
【０１０１】
上記で説明したように、残差生成ユニット３１０は、残差データを生成するために、ＣＵのサンプルから予測ブロックのサンプルを減算し得る。インター予測ユニット３０４は、ＣＵのための１つ以上のＴＵを生成し得る。ＴＵの各々は変換領域を指定する。ＣＵの残差データはＴＵの間で区分される。説明を簡単にするために、本開示では、ＴＵの変換領域内のＣＵの残差データの部分がＴＵ内にあるものとして説明することがある。各ＴＵについて、変換モジュール３１２は、ＴＵの変換係数ブロックを生成するために、ＴＵ中のＣＵの残差データの部分に変換を適用する。
【０１０２】
ＴＵの変換領域がＰＵの予測領域と重複するとき、ＣＵのＴＵは、ＣＵの２つ以上のＰＵにわたり得る。ＣＵのＴＵがＣＵの２つ以上のＰＵにわたるとき、ＰＵ間の区分線の両側にあるサンプル間に色又は輝度の鋭い不連続性がある可能性が高い。幾つかの例では、変換モジュール３１２が、鋭い不連続性をもつサンプルを有しないＴＵに変換を適用するときよりも、変換モジュール３１２が、鋭い不連続性をもつサンプルを有するＴＵに変換を適用するときに、変換モジュール３１２は、より多くの有効（即ち、非０）係数を有する変換係数ブロックを生成する。
【０１０３】
遷移ゾーン中のサンプルに平滑化フィルタを適用することにより、異なるＰＵに関連する予測ブロックの部分間の区分線の両側にあるサンプル間の色又は輝度の不連続性が低減され得る。平滑化フィルタを適用することによって不連続性が低減され得るので、変換モジュール３１２はより少ない有効係数を有する変換係数ブロックを生成し得る。
【０１０４】
しかしながら、ＴＵが完全に１つのＰＵ内で生じる場合、ＴＵ中のサンプルに平滑化フィルタを適用することにより、ＣＵの予測ブロックとＣＵの元のサンプルブロックとの間の差異が増加し得、その結果、残差データがより複雑になり得る。変換モジュール３１２は、より複雑な残差データのためにより多くの有効係数を有する変換係数ブロックを生成し得る。
【０１０５】
平滑化ユニット６０８が演算１２５０を開始した後、平滑化ユニット６０８は、ＣＵのＴＵがＣＵの複数のＰＵにわたるかどうかを決定する（１２５２）。ＣＵのＴＵがＣＵの複数のＰＵにわたると平滑化ユニット６０８が決定した場合、平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、ＣＵのＴＵがＣＵの複数のＰＵにわたると平滑化ユニット６０８が決定した場合（１２５２の「ＹＥＳ」）、平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーン中のサンプルを識別し（１２５４）、遷移ゾーン中のサンプルに対して平滑化演算を実行する（１２５６）。そうではなく、ＴＵが複数のＰＵにわたらないと平滑化ユニット６０８が決定した場合（１２５２の「ＮＯ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない（１２５８）。
【０１０６】
様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別するために、図２０に示す例示的な遷移サンプル識別演算、又は図２１に示す例示的な遷移サンプル識別演算を使用し得る。
【０１０７】
様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して重複ブロック動き補償（ＯＢＭＣ：Overlapped-Block Motion Compensation）平滑化演算を実行し得る。ＯＢＭＣ平滑化演算では、平滑化ユニット６０８は、遷移ゾーン中のサンプルの各々について２つの予測を生成する。平滑化ユニット６０８は、ＰＵのうちの１つの動きベクトルによって示される参照フレームのサンプルを識別することによって、所与のサンプルのための第１の予測を生成する。平滑化ユニット６０８は、ＰＵのうちの他方の１つの動きベクトルによって示される参照フレームのサンプルを識別することによって、所与のサンプルのための第２の予測を生成する。ＰＵのうちの１つが動きベクトルを有しない場合、平滑化ユニット６０８は、所与のサンプルと同じ空間的位置において参照フレームのサンプルを識別することによって予測を生成し得る。
【０１０８】
更に、ＯＢＭＣ平滑化演算では、平滑化ユニット６０８は、遷移ゾーン中の各サンプル毎に複数の予測を融合（blend）する。様々な例において、平滑化ユニット６０８は、所与のサンプルの予測を様々な方法で融合する。例えば、平滑化ユニット６０８は、予測の重み付き平均を計算することによって所与のサンプルの予測を融合し得る。様々な例において、平滑化ユニット６０８は予測に異なる重みを与え得る。例えば、平滑化ユニット６０８は、所与のサンプルを含んでいるＰＵの動きベクトルに基づいて予測に３／４の重みを与え得、他方のＰＵの動きベクトルに基づいて予測に１／４の重みを与え得る。
【０１０９】
他の例では、平滑化ユニット６０８は、フィルタベースの平滑化演算を実行し得る。平滑化ユニット６０８がフィルタベースの平滑化演算を実行するとき、平滑化ユニット６０８は、遷移ゾーン中のサンプルに１つ以上のフィルタを適用し得る。そのようなフィルタベースの平滑化演算では、平滑化ユニット６０８は、遷移ゾーン中の識別されたサンプルに様々な平滑化フィルタを適用し得る。この例では、平滑化ユニット６０８は、遷移ゾーン中の各サンプルに以下の３×３平滑化フィルタを適用し得る。
【数１】
0005823538.tif 000002
【０１１０】
この例では、平滑化ユニット６０８が所与のサンプルに平滑化フィルタを適用するとき、所与のサンプルの新しい値の１／１５が所与のサンプルの上方左側のサンプルに基づき、新しい値の２／１５が所与のサンプルの上方のサンプルに基づき、新しい値の１／１５が所与のサンプルの上方右側のサンプルに基づき、新しい値の２／１５が所与のサンプルの左側のサンプルに基づき、新しい値の３／１５が所与のサンプルの現在値に基づき、新しい値の２／１５が所与のサンプルの右側のサンプルに基づき、新しい値の１／１５が所与のサンプルの下方左側のサンプルに基づき、新しい値の２／１５が所与のサンプルの下方のサンプルに基づき、新しい値の１／１５が所与のサンプルの下方右側のサンプルに基づく。平滑化ユニット６０８は、遷移ゾーン中のサンプルに他の平滑化フィルタを適用し得る。例えば、平滑化ユニット６０８は、異なる重みをもつ平滑化フィルタを適用し得る。別の例では、平滑化ユニット６０８は、他のサイズ、例えば、５×５、７×７などの平滑化フィルタを適用し得る。
【０１１１】
幾つかの例では、演算１２５０は、ビデオデータをコード化するための方法の一部である。本方法は、ビデオデータのフレームのＣＵのための予測ブロックを生成することを備える。本方法はまた、ＣＵのＴＵがＣＵの複数のＰＵにわたるかどうかに基づいて、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかをコンピュータ機器が決定することを備える。遷移ゾーンは、ＣＵの第１のＰＵに関連する予測ブロックのサンプルと、ＣＵの第２のＰＵに関連する予測ブロックのサンプルとの間の境界にある。本方法はまた、コンピュータ機器が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行することを備える。
【０１１２】
幾つかの例では、平滑化ユニット６０８は、ＴＵが複数のＰＵにわたるかどうかに基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット６０８は、ＴＵが複数のＰＵにわたるかどうかに基づいて、及びＣＵのＰＵのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。
【０１１３】
図１３は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算１３００を示すフローチャートである。平滑化ユニット６０８は、図１２、図１４〜図１８、及び図２０に示す例示的な演算を実行することの代替として演算１３００を実行し得る。
【０１１４】
平滑化ユニット６０８は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定するために演算１３００を実行し得る。演算１３００では、平滑化ユニット６０８は、ＣＵのＰＵのサイズに基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかの決定を行う。幾つかの事例では、ＣＵのＰＵは比較的小さくなり得る。そのような事例では、ＰＵ間の遷移ゾーン中のサンプルを平滑化しても、画像品質が改善されないか又はコード化効率があまり高まらないことがある。
【０１１５】
平滑化ユニット６０８が演算１３００を開始した後、平滑化ユニット６０８は、ＰＵのうちの１つのサイズが所与のしきい値を下回るかどうかを決定する（１３０２）。幾つかの例では、ＰＵのサイズは、ＰＵの予測ツリーによって指定された予測領域のサイズである。様々な例において、平滑化ユニット６０８は、ＰＵのサイズが様々なしきい値を下回るかどうかを決定し得る。例えば、ＰＵがサイズＭ×Ｎを有する場合、平滑化ユニット６０８は、Ｍ又はＮのいずれかかが４よりも小さいかどうかを決定し得る。幾つかの例では、所与のしきい値が符号化ユニット１０４及び復号ユニット１０６中に事前構成される。他の例では、符号化ユニット１０４及び復号ユニット１０６は、所与のしきい値をプログラム的に決定する。
【０１１６】
様々な例において、平滑化ユニット６０８は、ＰＵのうちの１つのサイズが所与のしきい値を下回るかどうかを様々な方法で決定し得る。例えば、符号化ユニット１０４はルックアップテーブルを記憶し得る。ルックアップテーブルは、異なるＰＵサイズに対応するエントリを含んでいる。エントリの各々は、対応するＰＵサイズが所与のしきい値を上回る又は下回るかどうかを示す。
【０１１７】
ＰＵのサイズが所与のしきい値を下回らない場合（１３０２の「ＮＯ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。例えば、ＰＵがサイズＭ×Ｎを有する場合、平滑化ユニット６０８は、Ｍ又はＮのいずれかが４以上であるとき、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行い得る。従って、ＰＵのサイズが所与のしきい値を下回らない場合（１３０２の「ＮＯ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別し（１３０４）、次いで、遷移ゾーン中のサンプルに対して平滑化演算を実行する（１３０６）。そうではなく、ＰＵのうちの１つのサイズが所与のしきい値を下回る場合（１３０２の「ＹＥＳ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきでないという決定を行う（１３０８）。様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別するために、図１９及び図２１に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット６０８は、図１２に関して上記で説明したように、１つ以上のＯＢＭＣベース又はフィルタベースの平滑化演算を実行し得る。
【０１１８】
他の例では、平滑化ユニット６０８は、平滑化ユニット６０８が、ＰＵのサイズがしきい値を下回るかどうかを決定することの代わりに、変換のサイズがしきい値を下回るかどうかを決定する演算１３００のバージョンを実行し得る。変換モジュール３１２は、予測ブロックに基づいて残差データを空間領域から周波数領域に変換するときに変換を使用し得る。従って、平滑化ユニット６０８は、変換のサイズに基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定し得る。
【０１１９】
幾つかの例では、演算１３００は、ビデオデータをコード化するための方法の一部である。本方法は、ビデオデータのフレームのＣＵのための予測ブロックを生成することを備える。本方法はまた、コンピュータ機器が、ＣＵのＰＵのサイズに基づいて、又は変換のサイズに基づいて、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定することを備える。遷移ゾーンは、ＣＵの第１のＰＵに関連する予測ブロックのサンプルと、ＣＵの第２のＰＵに関連する予測ブロックのサンプルとの間の境界にある。本方法はまた、コンピュータ機器が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行することを備える。
【０１２０】
幾つかの例では、平滑化ユニット６０８は、ＰＵ又は変換のサイズに基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット６０８は、ＰＵ又は変換のサイズに基づいて、及びＣＵのＰＵの動きベクトルに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。
【０１２１】
図１４は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算１４００を示すフローチャートである。平滑化ユニット６０８は、図１２、図１３、図１５〜図１８、及び図２０に示す例示的な演算を実行することの代替として演算１４００を実行し得る。
【０１２２】
動き推定ユニット６０２がＣＵのＰＵに対して動き推定演算を実行するとき、動き推定ユニット６０２は、ＰＵの各々について動きベクトルを生成し得る。例えば、ＣＵが第１のＰＵと第２のＰＵとを有する場合、動き推定ユニット６０２は、第１の動きベクトルと第２の動きベクトルとを生成し得る。第１の動きベクトルは、第１のＰＵと第１の参照サンプルとの間の空間的位置の差異を示す。第１の参照サンプルは、参照フレーム内の第１のＰＵに対応する領域である。第２の動きベクトルは、第２の区分単位と第２の参照サンプルとの間の空間的位置の差異を示す。第２の参照サンプルは、参照フレーム内の第２のＰＵに対応する領域である。
【０１２３】
平滑化ユニット６０８が演算１４００を開始した後、平滑化ユニット６０８は、ＣＵのＰＵのための動きベクトルを受け取る（１４０２）。平滑化ユニット６０８は、次いで、ＰＵの動きベクトルに関数を適用する（１４０４）。この関数は結果値を生成する。様々な例において、平滑化ユニット６０８は動きベクトルに様々な関数を適用し得る。例えば、平滑化ユニット６０８は、他の動きベクトルから動きベクトルのうちの１つを減算した絶対値を計算する関数を適用し得る。別の例では、平滑化ユニット６０８は、隣接ＰＵについて決定される動きベクトルと予測動きベクトルとの偏角に基づいて関数を適用し得る。この例では、予測動きベクトルは、隣接予測単位について決定される動きベクトルと、参照フレーム中にコロケートされた予測単位について決定される動きベクトルとのうちの１つ以上から予測され得る。
【０１２４】
動きベクトルに関数を適用した後に、平滑化ユニット６０８は、結果値がしきい値を超えたかどうかを決定する（１４０６）。様々な例において、平滑化ユニット６０８は、結果値が様々なしきい値を超えたかどうかを決定し得る。例えば、結果が動きベクトル間の差異の絶対値である場合、平滑化ユニット６０８は、結果値がしきい値よりも大きいかどうかを決定し得る。この例では、しきい値は１つの整数画素であり得る。幾つかの例では、しきい値は、符号化ユニット１０４と復号ユニット１０６の両方において設定される所定のパラメータである。他の例では、符号化ユニット１０４は、しきい値を指定するシンタックス要素を生成し、そのシンタックス要素を復号ユニット１０６に与え得る。例えば、符号化ユニット１０４は、ＣＵに関連するシーケンスパラメータセット中のシンタックス要素としてしきい値を復号ユニット１０６に与え得る。
【０１２５】
関数の結果値が所与のしきい値を超えた場合（１４０６の「ＹＥＳ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、関数の結果値が所与のしきい値を超えた場合（１４０６の「ＹＥＳ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別し（１４０８）、遷移ゾーン中のサンプルに対して平滑化演算を実行する（１４１０）。そうではなく、関数の結果値が所与のしきい値を超えない場合（１４０６の「ＮＯ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない（１４１２）。このようにして、平滑化ユニット６０８は、第１の動きベクトルと第２の動きベクトルとに少なくとも部分的に基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別するために、図１９及び図２１に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット６０８は、図１２に関して上記で説明したように、１つ以上のＯＢＭＣベース又はフィルタベースの平滑化演算を実行し得る。
【０１２６】
幾つかの例では、平滑化ユニット６０８は、動きベクトルに基づいて、及び他の要素に基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット６０８は、動きベクトルに基づいて、及びＣＵのＰＵのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット６０８は、動きベクトル間の差異が所与のしきい値よりも大きく、ＣＵ中のＰＵのサイズがしきい値を超えたとき、平滑化演算を実行すべきであるという決定を行い得る。
【０１２７】
図１５は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算１５００を示すフローチャートである。インター予測ユニット３０４は、図１２〜１４、図１６〜図１８、及び図２０に示す例示的な演算を実行することの代替として平滑化決定演算１５００を実行し得る。図１５の例では、平滑化ユニット６０８は、所与のＣＵのＰＵのインター予測方向性に基づいて、所与のＣＵの残差データの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。ＰＵのインター予測方向性により、ＰＵに関連するＣＵの予測ブロックの部分が、１つ又は２つの参照フレームからの参照サンプルに基づくかどうかが決定され得る。
【０１２８】
符号化ユニット１０４は、フレームを、イントラフレーム（即ち、「Ｉフレーム」）、予測フレーム（即ち、「Ｐフレーム」）、又は双方向予測フレーム化（即ち、「Ｂフレーム」）として符号化し得る。同様に、符号化ユニット１０４は、フレームのスライスを、イントラスライス（即ち、「Ｉスライス」）、予測スライス（即ち、「Ｐスライス」）、又は双方向スライス（即ち、「Ｂスライス」）として符号化し得る。符号化ユニット１０４がフレーム又はスライスをＩフレーム又はＩスライスとして符号化する場合、フレーム又はスライス内のＰＵはイントラ予測ＰＵのみであり得る。符号化ユニット１０４がフレーム又はスライスをＰフレーム又はＰスライスとして符号化する場合、フレーム又はスライス内のＰＵは、イントラ予測ＰＵ又は単予測ＰＵであり得る。符号化ユニット１０４がフレーム又はスライスをＢフレーム又はＢスライスとして符号化する場合、フレーム又はスライス内のＰＵは、イントラ予測ＰＵ、単予測ＰＵ、又は双予測ＰＵであり得る。動き補償ユニット６０４及び／又は動き補償ユニット７０２は、他のフレーム又はスライスと無関係にイントラ予測ＰＵに関連する予測ブロックの部分を生成し得る。動き補償ユニット６０４及び／又は動き補償ユニット７０２は、ビデオデータ中の単一の参照フレームに基づいて単予測ＰＵに関連する予測ブロックの部分を生成し得る。幾つかの事例では、単予測ＰＵのみを有するＣＵは、単予測（uni-predicted）ＣＵ又は単予測（uni-prediction）ＣＵと呼ばれることがある。動き補償ユニット６０４及び／又は動き補償ユニット７０２は、２つの参照フレームに基づいて双予測ＰＵに関連する予測ブロックの部分を生成し得る。幾つかの事例では、１つ以上の双予測ＰＵを含むＣＵは、双予測（bi-predicted）ＣＵ又は双予測（bi-prediction）ＣＵと呼ばれることがある。
【０１２９】
例えば、所与のＰＵが単予測ＰＵであるとき、符号化ユニット１０４は、所与のＰＵの参照サンプルについて単一の参照フレームを探索する。この単一の参照フレームは、時間的に所与のＰＵのフレームの前又は後に生じ得る。言い換えれば、単一の参照フレームは、ＬＩＳＴ＿０又はＬＩＳＴ＿１中にあり得る。符号化ユニット１０４は、次いで、所与のＰＵの参照サンプルを使用して、所与のＰＵに関連するＣＵの予測ブロックの部分を生成し得る。
【０１３０】
所与のＰＵが双予測ＰＵ（bi-predicted PU）であるとき、符号化ユニット１０４は、所与のＰＵのための２つの参照サンプルを取得するために２つの参照フレームを探索し得る。参照フレームのうちの１つは、時間的に所与のＰＵのフレームの前に生じ得、参照フレームのうちの１つは、時間的に所与のＰＵのフレームの後に生じ得る。ＣＵの予測ブロックを生成するために、符号化ユニット１０４は、所与のＰＵに対してブレンディング演算を実行し得る。符号化ユニット１０４が所与のＰＵに対してブレンディング演算を実行するとき、符号化ユニット１０４は、所与のＰＵの２つの参照サンプルに基づいて所与のＰＵに関連する予測ブロックの部分を生成し得る。例えば、符号化ユニット１０４は、所与のＰＵの２つの参照サンプル中のサンプルの重み付き平均に基づいて所与のＰＵに関連する予測ブロックの部分を生成し得る。
【０１３１】
双予測ＰＵを含まないＣＵの予測ブロック中のサンプルに対してＯＢＭＣ平滑化演算を実行するよりも、双予測ＰＵを含むＣＵ（即ち、双予測ＣＵ）の予測ブロック中のサンプルに対してＯＢＭＣ平滑化演算を実行するほうが、メモリから比較的より多くのデータが取り出される必要があり得る。従って、ＣＵが双予測ＰＵを含むときに平滑化演算を実行するのを控えることにより、メモリから取り出されるデータの量が減少し、符号化プロセス又は復号プロセスが加速され得る。
【０１３２】
図１５の例に示すように、平滑化ユニット６０８は、ＣＵが双予測ＰＵを有するかどうかを決定する（１５０２）。ＣＵが双予測ＰＵを有しない場合（１５０２の「ＮＯ」）、平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーンのサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、ＣＵが双予測ＰＵを有しない場合（１５０２の「ＮＯ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別し（１５０４）、遷移ゾーン中のサンプルに対して平滑化演算を実行する（１５０６）。他の例では、平滑化ユニット６０８は、ＣＵが双予測ＰＵを有するとき、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行い得る。別の例では、ＣＵは２つのＰＵを有し得、それらのＰＵのうちの１つは双予測ＰＵである。ＯＢＭＣ平滑化演算を実行するために、平滑化ユニット６０８は、（前に説明したように、メモリから取り出されるデータの量を増加させ得る）双予測ＰＵの２つの参照サンプルを使用して遷移領域中のサンプルのサブセットを導出する必要があり得る。従って、この例では、平滑化ユニット６０８は、双予測ＰＵに関連する遷移領域のサンプルのサブセットに対してＯＢＭＣ平滑化演算を実行すべきでないという決定を行い得る。平滑化ユニット６０８はまた、他のＰＵが双予測ＰＵであるかどうかに基づいて、他のＰＵに関連する遷移領域の他のサンプルに対してＯＢＭＣ平滑化演算を実行すべきであるという決定を行い得る。
【０１３３】
様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別するために、図１９及び図２１に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット６０８は、図１２に関して上記で説明したように、１つ以上のＯＢＭＣベース又はフィルタベースの平滑化演算を実行し得る。
【０１３４】
そうではなく、ＣＵが双予測ＰＵを有する場合（１５０２の「ＹＥＳ」）、平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行しない（１５０８）。従って、ＣＵが双予測ＰＵを有する場合、平滑化ユニット６０８は、予測ブロックの遷移ゾーン中のサンプルに平滑化演算を適用しない。このようにして、平滑化ユニット６０８は、ＣＵのＰＵのインター予測方向性、及び、従ってＣＵのインター予測方向性に基づいて、平滑化演算を実行すべきかどうかの決定を行う。
【０１３５】
幾つかの例では、平滑化ユニット６０８は、ＣＵのＰＵのインター予測方向性に基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット６０８は、ＰＵのインター予測方向性に基づいて、及びＣＵのＰＵのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット６０８は、ＣＵが双予測ＰＵを有しなく、ＣＵ中のＰＵのサイズがしきい値を超えたとき、平滑化演算を実行すべきであるという決定を行い得る。
【０１３６】
図１６は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算１６００を示すフローチャートである。平滑化ユニット６０８は、図１２〜図１５、図１７、図１８、及び図２０の例に示す演算を実行することの代替として演算１６００を実行し得る。
【０１３７】
インター予測ユニット３０４が演算１６００を実行すると、平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーン中のサンプルを識別する（１６０２）。様々な例において、平滑化ユニット６０８は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別するために、図１９及び図２１に示す例示的な演算を使用し得る。
【０１３８】
遷移ゾーン中のサンプルを識別した後に、平滑化ユニット６０８は、ＣＵの異なるＰＵに関連する遷移ゾーン中のサンプル間の差異の量を決定する（１６０４）。例えば、平滑化ユニット６０８は、ＣＵの第１のＰＵに関連する遷移ゾーン中のサンプルと、ＣＵの第２のＰＵに関連する遷移ゾーン中のサンプルとの間の差異の量を決定し得る。
【０１３９】
平滑化ユニット６０８は、次いで、区分線の両側にあるサンプル間の差異の量が所与のしきい値を超えるかどうかを決定する（１６０６）。異なる例では、平滑化ユニット６０８は、差異の量が様々なしきい値を超えるかどうかを決定する。例えば、平滑化ユニット６０８は、区分線の両側にある対応するサンプル間の差異の量が２よりも大きいかどうかを決定し得る。幾つかの例では、人間のユーザが所与のしきい値を構成し得る。他の例では、符号化ユニット１０４及び復号ユニット１０６は、プログラム的に所与のしきい値を決定する。
【０１４０】
区分線の両側にあるサンプル間の差異が所与のしきい値を超えた場合（１６０６の「ＹＥＳ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行し得る（１６０８）。例えば、平滑化ユニット６０８は、区分線の両側にある対応するサンプル間の差異が２以下である場合、遷移ゾーン中のサンプルに対して平滑化演算を実行し得る。様々な例において、平滑化ユニット６０８はサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット６０８は、図１２に関して上記で説明したように、遷移ゾーン中のサンプルに対してＯＢＭＣベース又はフィルタベースの平滑化演算を実行し得る。そうではなく、区分線の両側にあるサンプル間の差異が所与のしきい値を超えない場合（１６０６の「ＮＯ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない（１６１０）。このようにして、平滑化ユニット６０８は、ＣＵの１つのＰＵに関連する遷移ゾーン中のサンプルと、ＣＵの別のＰＵに関連する遷移ゾーン中のサンプルとの間の差異の量に少なくとも部分的に基づいて、平滑化演算を実行すべきかどうかを決定し得る。
【０１４１】
幾つかの例では、平滑化ユニット６０８は、異なるＰＵに関連する遷移ゾーン中のサンプル間の差異の量に基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット６０８は、異なるＰＵに関連する遷移ゾーン中のサンプル間の差異の量に基づいて、及びＣＵのＰＵのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。
【０１４２】
図１７は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算１７００を示すフローチャートである。平滑化ユニット６０８は、図１２〜１６、図１８、及び図２０に示す例示的な演算を実行することの代替として演算１７００を実行し得る。インター予測ユニット３０４が演算１７００を実行するとき、インター予測ユニット３０４は、遷移ゾーン中のサンプルに対して平滑化演算を選択的に実行し得る。言い換えれば、インター予測ユニット３０４は、必ずしも遷移ゾーン中のすべてのサンプルを平滑化するとは限らない。
【０１４３】
インター予測ユニット３０４が演算１７００を実行すると、平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算を実行する（１７０２）。様々な例において、平滑化ユニット６０８は様々な遷移サンプル識別演算を実行し得る。例えば、平滑化ユニット６０８は、図１９に示す例示的な遷移サンプル識別演算、又は図２１に示す例示的な遷移サンプル識別演算を実行し得る。
【０１４４】
遷移ゾーン中のサンプルを識別した後に、平滑化ユニット６０８は、遷移ゾーン中に残りのサンプルがあるかどうかを決定する（１７０４）。遷移ゾーン中に１つ以上の残りのサンプルがある場合（１７０４の「ＹＥＳ」）、平滑化ユニット６０８は、遷移ゾーン中の残りのサンプルのうちの１つを選択する（１７０６）。平滑化ユニット６０８がそのサンプルを選択した後に、平滑化ユニット６０８は、そのサンプルを残りのサンプルであると見なさないことがある。
【０１４５】
平滑化ユニット６０８は、次いで、選択されたサンプルが特定の基準を満たすかどうかを決定する（１７０８）。選択されたサンプルがその基準を満たす場合（１７０８の「ＹＥＳ」）、平滑化ユニット６０８は、選択されたサンプルに対して平滑化演算を実行する（１７１０）。例えば、平滑化ユニット６０８は、選択されたサンプルに対してＯＢＭＣベース又はフィルタベースの平滑化演算を実行し得る。選択されたサンプルが基準を満たさない場合（１７０８の「ＮＯ」）、平滑化ユニット６０８は、選択されたサンプルに対して平滑化演算を実行しない（１７１２）。いずれの場合も、平滑化ユニット６０８は、遷移ゾーン中に残りのサンプルがあるかどうかを再び決定する（１７０４）。遷移ゾーン中に残りのサンプルがある場合、平滑化ユニット６０８は、残りのサンプルに関してステップ１７０６、１７０８、１７１０、及び１７１２を繰り返し得る。
【０１４６】
様々な例において、平滑化ユニット６０８は、選択されたサンプルが様々な基準を満たすかどうかを決定し得る。例えば、平滑化ユニット６０８は、選択されたサンプルがＣＵの所与のＰＵ中にある場合、選択されたサンプルが基準を満たすと決定し得る。この例では、平滑化ユニット６０８は、選択されたサンプルがＣＵの別のＰＵ中にある場合、選択されたサンプルが基準を満たさないと決定し得る。このようにして、平滑化ユニット６０８は、他のＰＵ中のサンプルにではなく、所与のＰＵ中のサンプルに対して平滑化演算を実行し得る。例えば、平滑化ユニット６０８が平滑化演算を実行するとき、平滑化ユニット６０８は、ＣＵの第１のＰＵに関連する遷移ゾーン中のサンプルは修正するが、ＣＵの第２のＰＵに関連する遷移ゾーン中のサンプルは修正しない。
【０１４７】
別の例では、平滑化ユニット６０８はシーケンスパラメータセット（ＳＰＳ：sequence parameter set）を受け取り得る。この例では、平滑化ユニット６０８は、ＳＰＳがサンプルを指定した場合、サンプルは基準を満たすと決定し得る。この例では、平滑化ユニット６０８は、ＳＰＳがサンプルを指定しない場合、サンプルは基準を満たさないと決定し得る。
【０１４８】
図１８は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算１８００を示すフローチャートである。インター予測ユニット３０４は、図１２〜１７及び図２０に示す例示的な演算を実行することの代替として演算１８００を実行し得る。図１８の例では、平滑化ユニット６０８は、複数の利用可能な平滑化演算の中から平滑化演算を適応的に選定する。幾つかの例では、複数の利用可能な平滑化演算の中から平滑化演算を適応的に選定することにより、コード化効率及び／又は画像品質がより高くなり得る。
【０１４９】
平滑化ユニット６０８が演算１８００を開始した後、平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーン中のサンプルに対して第１の平滑化演算を実行すべきかどうかを決定する（１８０２）。平滑化ユニット６０８が、遷移ゾーン中のサンプルに対して第１の平滑化演算を実行すべきであるという決定を行った場合、（１８０２の「ＹＥＳ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別し（１８０４）、次いで、遷移ゾーン中のサンプルに対して第１の平滑化演算を実行する（１８０６）。様々な例において、平滑化ユニット６０８は、第１の平滑化演算を実行すべきであるという決定を様々な方法で行い得る。例えば、平滑化ユニット６０８は、第１の平滑化演算を実行すべきかどうかの決定を行うために、図１２〜図１７に示す例示的な演算を使用し得る。この例では、平滑化ユニット６０８は、ＣＵのサイズが３２×３２又は１６×１６である場合、遷移ゾーン中のサンプルに第１の平滑化演算を適用すべきであるという決定を行い得る。
【０１５０】
そうではなく、平滑化ユニット６０８が、第１の平滑化演算を実行すべきでないという決定を行った場合（１８０２の「ＮＯ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して第２の平滑化演算を実行すべきかどうかを決定する（１８０８）。平滑化ユニット６０８が、遷移ゾーン中のサンプルに対して第２の平滑化演算を実行すべきであるという決定を行った場合、（１８０８の「ＹＥＳ」）、平滑化ユニット６０８は、遷移ゾーン中のサンプルを識別し（１８１０）、遷移ゾーン中のサンプルに対して第２の平滑化演算を実行する（１８１２）。様々な例において、平滑化ユニット６０８は、第２の平滑化演算を実行すべきであるという決定を様々な方法で行い得る。例えば、平滑化ユニット６０８は、第２の平滑化演算を実行すべきであるという決定を行うために、図１２〜図１７に示す例示的な演算を使用し得る。この例では、平滑化ユニット６０８は、ＣＵのサイズが８×８である場合であって、ＣＵのインター予測方向が双予測ＣＵである場合、遷移ゾーン中のサンプルに第２の平滑化演算を適用すべきであるという決定を行い得る。従って、平滑化ユニット６０８が演算１８００を実行するとき、平滑化ユニット６０８は、上記で説明した演算の組合せに基づいて平滑化演算を実行すべきかどうかを決定し得る。
【０１５１】
第１の平滑化演算を実行した後に、第２の平滑化演算を実行した後に、又は第２の平滑化演算を実行すべきでないとう決定を行った後に、平滑化ユニット６０８は、遷移ゾーン中のサンプルに対して、もしあったら、どの平滑化演算が実行されたかを示すシンタックス要素を出力する（１８１４）。符号化ユニット１０４中の動き補償ユニット６０４は、ＣＵを参照フレームの一部として再構成するときにこのシンタックス要素を使用し得る。更に、復号ユニット１０６中の動き補償ユニット７０２は、ＣＵの予測ブロックを再構成するときにこのシンタックス要素を使用し得る。
【０１５２】
第１の平滑化演算及び第２の平滑化演算は、同じタイプ又は異なるタイプの平滑化演算であり得る。例えば、第１の平滑化カーネルが第１の平滑化演算を構成し、第２の平滑化カーネルが第２の平滑化演算を構成し得る。この例では、カーネルは、平滑化フィルタによって実行される平滑化のタイプ及び範囲を定義する。この例では、平滑化ユニット６０８は、変換のサイズと、ＣＵのＰＵのサイズと、隣接ＰＵについて決定される動きベクトル及び予測動きベクトルの偏角とに基づいて、第１の平滑化演算を実行すべきかどうかの決定を行い得る。この例では、動きベクトルは、隣接予測単位について決定される動きベクトルと、参照フレーム中において同位置の予測単位に対して決定される動きベクトルとのうちの１つ以上から予測され得る。
【０１５３】
別の例では、第１の平滑化演算はＯＢＭＣベースの平滑化演算であり得、第２の平滑化演算はフィルタベースの平滑化演算であり得る。第１の平滑化演算及び第２の平滑化演算は異なるタイプの平滑化演算であり得るので、第１の平滑化演算及び第２の平滑化演算は、互いに異なる予測ブロックのバージョンを生成し得る。
【０１５４】
図１９は、例示的な遷移サンプル識別演算２１００を示すフローチャートである。平滑化ユニット６０８は、予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算２１００を実行し得る。平滑化ユニット６０８が遷移サンプル識別演算２１００を開始した後、平滑化ユニット６０８は隣接領域のサイズを選択する（２１０２）。言い換えれば、平滑化ユニット６０８は隣接領域サイズを選択する。様々な例において、平滑化ユニット６０８は様々な隣接領域サイズを選択し得る。例えば、平滑化ユニット６０８は、隣接領域サイズとして、３×３、５×５、７×７、又は別のサイズを選択し得る。
【０１５５】
様々な例において、平滑化ユニット６０８は隣接領域サイズを様々な方法で選択する。例えば、符号化ユニット１０４及び復号ユニット１０６は、サイズを示す所定の隣接領域サイズシンタックス要素を記憶し得る。この例では、符号化ユニット１０４及び復号ユニット１０６は、隣接領域サイズシンタックス要素を読み取り、その隣接領域サイズシンタックス要素を使用して隣接領域サイズを選択する。
【０１５６】
別の例では、符号化ユニット１０４は、サイズを示す隣接領域サイズパラメータを記憶する。幾つかの例では、符号化ユニット１０４及び／又は復号ユニット１０６は、人間のユーザから隣接領域サイズパラメータを受け取る。他の例では、隣接領域サイズパラメータはプログラム的に設定される。符号化ユニット１０４は、隣接領域サイズパラメータを使用して隣接領域サイズを選択する。更に、符号化ユニット１０４は、隣接領域サイズを復号ユニット１０６にシグナリングする。例えば、符号化ユニット１０４は、隣接領域サイズを示すピクチャパラメータセット（ＰＰＳ：picture parameter set）又はスライスパラメータセット（ＳＰＳ：slice parameter set）中にシンタックス要素を出力し得る。
【０１５７】
別の例では、符号化ユニット１０４は、平滑化ユニット６０８が遷移サンプル識別演算２１００を実行するより前に、マルチメディアコンテンツのフレーム、現在フレーム、別のＣＵ、ＣＵのグループ、サブＣＵのグループ、現在フレームのスライス、現在フレームの２つ以上の部分、又はマルチメディアコンテンツの別の一部を含むピクチャのグループのための隣接領域サイズを選択し得る。この例では、符号化ユニット１０４は、幾つかの基準に基づいて隣接領域サイズを選択し、選択されたネイバーサイズをデコーダに明示的にシグナリングし得る。平滑化ユニット６０８は、ＣＵに関連するマルチメディアコンテンツの一部のために以前に選択された隣接領域サイズに基づいて隣接領域サイズを選択する。
【０１５８】
更に別の例では、平滑化ユニット６０８は、ＣＵの特性に基づいて隣接領域サイズを選択し得る。様々な例において、平滑化ユニット６０８は、ＣＵの様々な特性に基づいて隣接領域サイズを選択し得る。例えば、平滑化ユニット６０８は、ＣＵのサイズに基づいて隣接領域サイズを選択し得る。別の例では、平滑化ユニット６０８は、ＣＵ中のＰＵの動きベクトルに基づいて隣接領域サイズを選択し得る。この例では、平滑化ユニット６０８は、動きベクトルの偏角に基づいて隣接領域サイズを選択し得る。更に別の例では、平滑化ユニット６０８は、ＣＵのＰＵの予測モード（即ち、スキップモード、ダイレクトモード、フレーム間モード、又はフレーム内モード）に基づいて隣接領域サイズを選択し得る。更に別の例では、平滑化ユニット６０８は、予測ブロック中のサンプルの差異に基づいて隣接領域サイズを選択し得る。
【０１５９】
更に別の例では、平滑化ユニット６０８は、ビデオデータ中の他のＣＵを符号化した結果に基づいて隣接領域サイズを選択し得る。例えば、平滑化ユニット６０８は、より大きい隣接領域サイズを使用して他のＣＵについて生成される予測ブロックが、より小さい隣接領域サイズを使用して生成される予測ブロックよりも少ないひずみを生じると決定し得、又はその逆も同様である。他の例では、隣接領域サイズは、前の１つの符号化ＣＵの区分モード、前の複数の符号化ＣＵの区分モード、前の符号化ＣＵの動きベクトルに基づいて決定され得る。この決定に基づいて、平滑化ユニット６０８は、最も低いひずみレベルとともに予測ブロックを生成する傾向がある隣接領域サイズを選択し得る。
【０１６０】
隣接領域サイズを選択した後に、平滑化ユニット６０８は遷移ゾーン中のサンプルを識別する。以下で説明するように、隣接領域が、ＣＵの所与のＰＵに関連するサンプルを含んでおり、またＣＵの別のＰＵに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、ＣＵの所与のＰＵに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。遷移ゾーン中のサンプルを識別するために、平滑化ユニット６０８は、予測ブロック中に残りのサンプルがあるかどうかを決定する（２１０４）。予測ブロック中に１つ以上の残りのサンプルがある場合（２１０４の「ＹＥＳ」）、平滑化ユニット６０８は残りのサンプルのうちの１つを選択する（２１０６）。平滑化ユニット６０８がそのサンプルを選択した後に、平滑化ユニット６０８は、そのサンプルを予測ブロックの残りのサンプルであると見なさない。平滑化ユニット６０８は、次いで、選択されたサンプルに関連するＰＵを識別する（２１０８）。
【０１６１】
次に、平滑化ユニット６０８は、隣接領域中のサンプルを識別する（２１１０）。隣接領域は、選択された隣接領域サイズを有し、選択されたサンプルを含んでいる予測ブロックのゾーンである（２１１０）。幾つかの例では、隣接領域は、選択されたサンプルを中心とする。例えば、隣接領域が３×３方形である場合、選択されたサンプルは、３×３方形の中央サンプルであり得る。別の例では、隣接領域は、選択されたサンプルを中心としない。例えば、隣接領域が３×３方形である場合、選択されたサンプルは、３×３方形の上端、下端、左端、又は右端にあり得る。従って、隣接領域が、選択されたサンプルを中心としない場合、遷移ゾーンは、他のＰＵよりも１つのＰＵ中に更に展開し得る。
【０１６２】
幾つかの例では、インター予測ユニット３０４は、平滑化ユニット６０８を使用して遷移サンプル識別演算２１００を複数回実行し得る。例えば、平滑化ユニット６０８は、１回は、選択されたサンプルを中心とする隣接領域とともに、１回は、選択されたゾーンを中心としない隣接領域とともに、遷移サンプル識別演算２１００を実行し得る。インター予測ユニット３０４は、隣接領域が選択されたサンプルを中心とするとき、又は隣接領域が選択されたサンプルを中心としないとき、予測ブロックがより少ないひずみを有するかどうかを評価し得る。インター予測ユニット３０４は、より少ないひずみを有する予測ブロックを選択し得る。
【０１６３】
隣接領域中のサンプルを識別した後に、平滑化ユニット６０８は、隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるＰＵ中にあるかどうかを決定する（２１１２）。隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるＰＵ中にある場合（２１１２の「ＹＥＳ」）、平滑化ユニット６０８は、選択されたサンプルが遷移ゾーン中にあると識別する（２１１４）。そうではなく、隣接領域中のサンプルのいずれも、選択されたサンプルとは異なるＰＵ中にない場合（２１１２の「ＮＯ」）、平滑化ユニット６０８は、選択されたサンプルが遷移ゾーン中にないと識別する（２１１６）。いずれの場合も、平滑化ユニット６０８は、予測ブロック中に残りのサンプルがあるかどうかを再び決定する（２１０４）。
【０１６４】
予測ブロック中に残りのサンプルがある場合、平滑化ユニット６０８は、予測ブロック中の残りのサンプルに関してステップ２１０６、２１０８、２１１０、２１１２、２１１４、及び２１１６を繰り返し得る。予測ブロック中に残りのサンプルがない場合（２１０４の「ＮＯ」）、平滑化ユニット６０８は遷移サンプル識別演算２１００を終了する。
【０１６５】
図２０は、平滑化ユニット６０８の別の例示的な演算２２００を示すフローチャートである。平滑化ユニット６０８が演算２２００を開始した後、平滑化ユニット６０８は、ＣＵの予測ブロックの第１の遷移ゾーン中のサンプルを識別する（２２０２）。様々な例において、平滑化ユニット６０８は、第１の遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット６０８は、予測ブロック中のサンプルをテストし得る。平滑化ユニット６０８が所与のサンプルをテストするとき、平滑化ユニット６０８は、隣接領域中のサンプルが、所与のサンプルとは異なる、ＣＵのＰＵに関連するかどうかを決定し得る。この例では、隣接領域は様々なサイズを有し得る。例えば、隣接領域は３×３方形であり得る。
【０１６６】
平滑化ユニット６０８は、次いで、予測ブロックの第２の遷移ゾーン中のサンプルを識別する（２２０４）。様々な例において、平滑化ユニット６０８は、第２の遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット６０８は、予測ブロック中のサンプルをテストし得る。この例では、平滑化ユニット６０８が所与のサンプルをテストするとき、平滑化ユニット６０８は、隣接領域中のサンプルが、所与のサンプルとは異なる、ＣＵのＰＵに関連するかどうかを決定する。この例では、平滑化ユニット６０８は、第２の遷移ゾーン中の予測ブロックのサンプルを識別し得、ＣＵの第１のＰＵに関連するサンプルを含んでいる隣接領域が、ＣＵの第２のＰＵに関連するサンプルを含んでいる場合、ＣＵの第１のＰＵに関連するサンプルは第２の遷移ゾーン中にある。この例では、第２のＰＵに関連するサンプルを含んでいる隣接領域が、第１のＰＵに関連するサンプルを含んでいる場合、第２のＰＵに関連するサンプルは第２の遷移ゾーン中にある。この例では、隣接領域は、所与のサンプルを含む予測ブロックのゾーンである。隣接領域のサイズは、第１の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズとは異なり得る。例えば、第１の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズは３×３であり得、第２の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズは５×５であり得る。
【０１６７】
平滑化ユニット６０８は、次いで、第１の遷移ゾーン中のサンプルに対して第１の平滑化演算を実行する（２２０６）。平滑化ユニット６０８は、第２の遷移ゾーン中のサンプルに対して第２の平滑化演算を実行する（２２０８）。第２の平滑化演算は第１の平滑化演算とは異なり得る。例えば、第１の平滑化演算と第２の平滑化演算は、両方ともＯＢＭＣベースの平滑化演算であり得る。但し、この例では、ＯＢＭＣベースの平滑化演算は、予測サンプルを別様に融合し得る。例えば、ＯＢＭＣベースの平滑化演算は、異なるＰＵからの予測に対して異なる重みを使用し得る。例えば、この例では、サンプルが、ＣＵの第１のＰＵに関連し、また第１の遷移ゾーン中にある場合、平滑化ユニット６０８は、第１のＰＵからの予測に対して重み３／４を使用し、ＣＵの第２のＰＵからの予測に対して１／４の重みを使用し得る。この例では、サンプルが、第１のＰＵに関連し、また第２の遷移ゾーン中にある場合、平滑化ユニット６０８は、第１のＰＵからの予測に対して７／８の重みを使用し、第２のＰＵからの予測に対して１／８の重みを使用し得る。別の例では、平滑化演算のうちの１つはＯＢＭＣベースの平滑化演算であり得、平滑化演算のうちの１つはフィルタベースの平滑化演算であり得る。更に別の例では、第１の平滑化演算と第２の平滑化演算は、両方ともフィルタベースの平滑化演算であり得る。但し、この例では、第１の平滑化演算と第２の平滑化演算とにおいて使用されるフィルタは異なり得る。
【０１６８】
このようにして、平滑化ユニット６０８は、予測ブロックの異なる部分を異なる方法で平滑化し得る。これにより、コード化効率が高まり、及び／又はひずみの量が低くなり得る。
【０１６９】
図２１は、別の例示的な遷移サンプル識別演算２３００を示すフローチャートである。平滑化ユニット６０８は、ＣＵの予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算２３００を実行し得る。平滑化ユニット６０８が遷移サンプル識別演算２３００を開始した後、平滑化ユニット６０８は、予測ブロック中に残りのサンプルがあるかどうかを決定する（２３０２）。予測ブロック中に１つ以上の残りのサンプルがある場合（２３０４の「ＹＥＳ」）、平滑化ユニット６０８は残りのサンプルのうちの１つを選択する（２３０４）。平滑化ユニット６０８がそのサンプルを選択した後に、平滑化ユニット６０８は、そのサンプルを予測ブロックの残りのサンプルであると見なさない。平滑化ユニット６０８は、次いで、選択されたサンプルに関連するＣＵのＰＵを識別する（２３０６）。
【０１７０】
次に、平滑化ユニット６０８は、選択されたサンプルに関連するＰＵに関連する隣接領域サイズを選択する（２３０８）。異なるＰＵは異なる隣接領域サイズに関連し得る。例えば、ＣＵは、第１のＰＵと、第２のＰＵとを有し得る。この例では、第１のＰＵは３×３サンプルの隣接領域サイズに関連し得、第２の領域ＰＵは５×５サンプルの隣接領域サイズに関連し得る。この例では、選択されたサンプルが第１のＰＵに関連する場合、平滑化ユニット６０８は、３×３サンプルの隣接領域サイズを選択する。この例では、選択されたサンプルが第２のＰＵに関連する場合、平滑化ユニット６０８は、５×５サンプルの隣接領域サイズを選択する。
【０１７１】
様々な例において、ＰＵは、隣接領域サイズに様々な方法で関連し得る。例えば、符号化ユニット１０４及び復号ユニット１０６は、ＰＵに関連する隣接領域サイズを別々に示すデータを記憶し及び／又は受け取り得る。別の例では、符号化ユニット１０４及び復号ユニット１０６は、第１のＰＵに関連する隣接領域サイズを示すデータを記憶し及び／又は受け取り得る。この例では、符号化ユニット１０４及び復号ユニット１０６は、第１のＰＵに関連する隣接領域サイズから、第２のＰＵに関連する隣接領域サイズを導出し得る。
【０１７２】
平滑化ユニット６０８は、次いで、隣接領域中のサンプルを識別する（２３１０）。隣接領域は、選択された隣接領域サイズを有し、選択されたサンプルを含んでいる予測ブロックのゾーンである。上記で説明した例示的な遷移サンプル識別演算２１００と同様に、隣接領域は、選択されたサンプルを中心とすることも、又は選択されたサンプルを中心としないこともある。
【０１７３】
隣接領域中のサンプルを識別した後に、平滑化ユニット６０８は、隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるＰＵに関連するかどうかを決定する（２３１２）。隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるＰＵに関連する場合（２３１２の「ＹＥＳ」）、平滑化ユニット６０８は、選択されたサンプルが遷移ゾーン中にあると識別する（２３１４）。そうではなく、隣接領域中のサンプルのいずれも、選択されたサンプルとは異なるＰＵに関連しない場合（２３１２の「ＮＯ」）、平滑化ユニット６０８は、選択されたサンプルが遷移ゾーン中にないと識別する（２３１６）。いずれの場合も、平滑化ユニット６０８は、予測ブロック中に残りのサンプルがあるかどうかを再び決定する（２３０２）。
【０１７４】
予測ブロック中に残りのサンプルがある場合、平滑化ユニット６０８は、予測ブロック中の残りのサンプルに関してステップ２３０４、２３０６、２３０８、２３１０、２３１２、２３１４、及び２３１６を繰り返し得る。予測ブロック中に残りのサンプルがない場合（２３０２の「ＮＯ」）、平滑化ユニット６０８は遷移サンプル識別演算２３００を終了する。
【０１７５】
幾つかの事例では、遷移サンプル識別演算２３００は、ビデオデータのフレーム中のＣＵのための予測ブロックを生成することであって、ＣＵが第１のＰＵと第２のＰＵとを有する、生成することを備える方法を実施する。本方法はまた、予測ブロック中の第１のサンプルを選択することと、第１のサンプルが第１のＰＵに関連すると決定することとを備える。本方法はまた、第１のＰＵが第１の隣接領域サイズに関連すると決定することによって第１の隣接領域サイズをコンピュータ機器が選択することを備える。本方法はまた、第１の隣接領域サイズを有する隣接領域が、第１のサンプルを含んでおり、また第２のＰＵに関連するサンプルを含んでいるとき、第１のサンプルが第１の遷移ゾーン内にあると識別することを備える。本方法はまた、予測ブロック中の第２のサンプルを選択することと、第２のサンプルが第２のＰＵに関連すると決定することと、第２のＰＵが第２の隣接領域サイズに関連する決定することとを備える。第２の隣接領域サイズは第１の隣接領域サイズとは異なる。本方法はまた、第２の隣接領域サイズを有する隣接領域が、第２のサンプルを含んでおり、また第１のＰＵに関連するサンプルを含んでいるとき、第２のサンプルが第１の遷移ゾーン内にあると識別することを備える。本方法はまた、第１の遷移ゾーン中のサンプルに対して第１の平滑化演算を実行することを備える。
【０１７６】
１つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータあるいは１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７７】
１つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、又は（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータあるいは１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７８】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスク記憶装置、磁気ディスク記憶装置、若しくは他の磁気記憶装置機器、フラッシュメモリ、又は命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１７９】
命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実施に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つ以上の回路又は論理要素中に十分に実施され得る。
【０１８０】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明した１つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【０１８１】
様々な例について説明した。これら及び他の例は、以下の特許請求の範囲によって定義された本発明の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
［１］  ビデオデータをコード化する方法であって、前記ビデオデータのフレーム中において第１の予測単位（ＰＵ）と第２のＰＵとを有するコード化単位（ＣＵ）のための予測ブロックを生成するために動き補償演算を実行することと、コンピュータ機器が第１の隣接領域サイズを選択することと、前記第１の隣接領域サイズを選択した後に、前記予測ブロックの第１の遷移ゾーン中のサンプルを識別することと、ここで、隣接領域が、前記第１のＰＵに関連するサンプルを含み、また前記第２のＰＵに関連する前記予測ブロックのサンプルを含み、前記第１の隣接領域サイズを有するとき、前記第１の遷移ゾーンが、前記第１のＰＵに関連する前記サンプルを含む、識別することと、前記第１の遷移ゾーン中の前記サンプルに対して第１の平滑化演算を実行することとを備える、方法。
［２］  前記方法は、ユーザから前記第１の隣接領域サイズを指定する隣接領域サイズパラメータを受信することを更に含み、前記第１の隣接領域サイズを選択することが、前記第１の隣接領域サイズを選択するために前記隣接領域サイズシンタックス要素を使用することを含む、［１］に記載の方法。
［３］  前記第１の隣接領域サイズを選択することが、前記ＣＵの特性に基づいて前記第１の隣接領域サイズを選択することを備える、［１］に記載の方法。
［４］  前記ＣＵの特性に基づいて前記第１の隣接領域サイズを選択することが、前記ＣＵのサイズに基づいて前記第１の隣接領域サイズを選択することを備える、［３］に記載の方法。
［５］  前記ＣＵの特性に基づいて前記第１の隣接領域サイズを選択することが、前記第１のＰＵの予測モードに基づいて前記第１の隣接領域サイズを選択することを備える、［１］に記載の方法。
［６］  前記ＣＵの特性に基づいて前記第１の隣接領域サイズを選択することが、前記第１のＰＵの動きベクトルに基づいて前記第１の隣接領域サイズを選択することを備える、［１］に記載の方法。
［７］  前記ＣＵの特性に基づいて前記第１の隣接領域サイズを選択することが、前記予測ブロック中のサンプルの差異に基づいて前記第１の隣接領域サイズを選択することを備える、［１］に記載の方法。
［８］  前記第１の隣接領域サイズを選択することが、前記ビデオデータ中の他のＣＵを符号化した結果に基づいて前記第１の隣接領域サイズを選択することを備える、［１］に記載の方法。
［９］  前記第１の遷移ゾーン中のサンプルを識別することは、前記第１のＰＵに関連する所与のサンプルを含んでいる所与の隣接領域が、前記第２のＰＵに関連するサンプルを含んでおり、前記所与の隣接領域が前記所与のサンプルを中心とするとき、前記所与のサンプルが前記第１の遷移ゾーン中にあると決定することを備える、［１］に記載の方法。
［１０］  前記第１の遷移ゾーン中のサンプルを識別することは、前記第１のＰＵに関連する所与のサンプルを含んでいる所与の隣接領域が、前記第２のＰＵに関連するサンプルを含んでおり、前記所与の隣接領域が前記所与のサンプルを中心としないとき、前記所与のサンプルが前記第１の遷移ゾーン中にあると決定することを備える、［１］に記載の方法。
［１１］  第２の遷移ゾーン中の前記予測ブロックのサンプルを識別することと、ここで、前記第１のＰＵに関連するサンプルを含んでいる隣接領域が、前記第２のＰＵに関連するサンプルを含んでいる場合、前記第１のＰＵに関連する前記サンプルが前記第２の遷移ゾーン中にあり、前記第２のＰＵに関連するサンプルを含んでいる隣接領域が、前記第１のＰＵに関連するサンプルを含んでいる場合、前記第２のＰＵに関連する前記サンプルが前記第２の遷移ゾーン中にあり、サンプルが前記第２の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域は、サンプルが前記第１の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域とは異なるサイズを有する、前記第２の遷移ゾーン中の前記サンプルに対して前記第１の平滑化演算とは異なる第２の平滑化演算を実行することと、をさらに備える、［１］に記載の方法。
［１２］  前記第１の隣接領域サイズを有する隣接領域が、前記第２のＰＵ中のサンプルを含み、また前記第１のＰＵ中のサンプルを含むとき、前記第１の遷移ゾーンが前記第２のＰＵ中の前記サンプルを含む、［１］に記載の方法。
［１３］  前記方法は、前記予測ブロック中の第１のサンプルを選択することと、前記第１のサンプルが前記第１のＰＵに関連すると決定することと、前記予測ブロック中の第２のサンプルを選択することと、前記第２のサンプルが前記第２のＰＵに関連すると決定することと、前記第２のＰＵが前記第１の隣接領域サイズとは異なる第２の隣接領域サイズに関連すると決定することと、前記第２の隣接領域サイズを有する隣接領域が、前記第２のサンプルを含み、また前記第１のＰＵに関連するサンプルを含むとき、前記第２のサンプルが前記第１の遷移ゾーン内にあると識別することとをさらに備え、前記第１の隣接領域サイズを選択することは、前記第１のＰＵが前記第１の隣接領域サイズに関連すると決定することによって前記第１の隣接領域サイズを選択することを備え、前記第１の遷移ゾーン内にある前記第１のＰＵ中のサンプルを識別することは、前記第１の隣接領域サイズを有する隣接領域が、前記第１のサンプルを含み、また前記第２のＰＵに関連するサンプルを含むとき、前記第１のサンプルが前記第１の遷移ゾーン内にあると識別することを備える、［１］に記載の方法。
［１４］  前記第１の隣接領域サイズを選択することが、前記ＣＵに関連するマルチメディアコンテンツの一部のために以前に選択された隣接領域サイズに基づいて前記第１の隣接領域サイズを選択することを備え、前記ＣＵに関連する前記マルチメディアコンテンツの前記一部が、現在フレームと、別のＣＵと、ＣＵのグループと、サブＣＵのグループと、前記現在フレームのスライスと、前記現在フレームの２つ以上の部分とのうちの１つである、［１］に記載の方法。
［１５］  前記ビデオデータをコード化することが、前記ビデオデータを符号化することを備え、前記方法が、前記ＣＵの残差データを生成するために前記ＣＵの元のサンプルブロックと前記予測ブロックとを使用することをさらに備える、［１］に記載の方法。
［１６］  前記ビデオデータをコード化することが、前記ビデオデータを復号することを備え、前記方法が、前記ＣＵのための再構成されたサンプルブロックを生成するために、前記ＣＵの再構成された残差データと前記予測ブロックとを使用することをさらに備える、
［１］に記載の方法。
［１７］  ビデオデータをコード化するコンピュータ機器であって、前記ビデオデータのフレーム中において第１の予測ユニット（ＰＵ）と第２のＰＵとを有するコード化単位（ＣＵ）のための予測ブロックを生成するために動き補償演算を実行することと、第１の隣接領域サイズを選択することと、前記第１の隣接領域サイズを選択した後に、前記予測ブロックの第１の遷移ゾーン中のサンプルを識別することと、ここで、隣接領域が、前記第１のＰＵに関連するサンプルを含み、また前記第２のＰＵに関連する前記予測ブロックのサンプルを含み、前記第１の隣接領域サイズを有するとき、前記第１の遷移ゾーンが、前記第１のＰＵに関連する前記サンプルを含む、前記第１の遷移ゾーン中の前記サンプルに対して第１の平滑化演算を実行することと、を行うように構成されたプロセッサを備える、コンピュータ機器。
［１８］  前記プロセッサは、ユーザから前記第１の隣接領域サイズを指定する隣接領域サイズパラメータを受信することと、前記第１の隣接領域サイズを選択するために前記隣接領域サイズパラメータを使用することとを行うように構成された、［１７］に記載のコンピュータ機器。
［１９］  前記プロセッサが、前記ＣＵの特性に基づいて前記第１の隣接領域サイズを選択するように構成された、［１７］に記載のコンピュータ機器。
［２０］  前記プロセッサが、前記ＣＵのサイズに基づいて前記第１の隣接領域サイズを選択するように構成された、［１９］に記載のコンピュータ機器。
［２１］  前記プロセッサが、前記第１のＰＵの予測モードに基づいて前記第１の隣接領域サイズを選択するように構成された、［１９］に記載のコンピュータ機器。
［２２］  前記プロセッサが、前記第１のＰＵの動きベクトルに基づいて前記第１の隣接領域サイズを選択するように構成された、［１９］に記載のコンピュータ機器。
［２３］  前記プロセッサが、前記予測ブロック中のサンプルの差異に基づいて前記第１の隣接領域サイズを選択するように構成された、［１９］に記載のコンピュータ機器。
［２４］  前記プロセッサが、前記ビデオデータ中の他のＣＵを符号化した結果に基づいて前記第１の隣接領域サイズを選択するように構成された、［１９］に記載のコンピュータ機器。
［２５］  前記プロセッサは、前記第１のＰＵ中の所与のサンプルを含んでいる所与の隣接領域が、前記第２のＰＵに関連するサンプルを含み、前記所与の隣接領域が前記所与のサンプルを中心とするとき、前記所与のサンプルが前記第１の遷移ゾーン中にあると決定するように構成された、［１９］に記載のコンピュータ機器。
［２６］  前記プロセッサは、前記第１のＰＵに関連する所与のサンプルを含む所与の隣接領域が、前記第２のＰＵに関連するサンプルを含み、前記所与の隣接領域が前記所与のサンプルを中心としないとき、前記所与のサンプルが前記第１の遷移ゾーン中にあると決定するように構成された、［１９］に記載のコンピュータ機器。
［２７］  前記プロセッサは、第２の遷移ゾーン中の前記予測ブロックのサンプルを識別することと、ここで、前記第１のＰＵに関連するサンプルを含む隣接領域が、前記第２のＰＵに関連するサンプルを含む場合、前記第１のＰＵに関連する前記サンプルが前記第２の遷移ゾーン中にあり、前記第２のＰＵに関連するサンプルを含む隣接領域が、前記第１のＰＵに関連するサンプルを含む場合、前記第２のＰＵに関連する前記サンプルが前記第２の遷移ゾーン中にあり、サンプルが前記第２の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域は、サンプルが前記第１の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域とは異なるサイズを有する、前記第２の遷移ゾーン中の前記サンプルに対して前記第１の平滑化演算とは異なる第２の平滑化演算を実行することと、を行うように構成された、［１９］に記載のコンピュータ機器。
［２８］  前記第１の隣接領域サイズを有する隣接領域が、前記第２のＰＵ中のサンプルを含み、また前記第１のＰＵ中のサンプルを含むとき、前記第１の遷移ゾーンが前記第２のＰＵ中の前記サンプルを含む、［１９］に記載のコンピュータ機器。
［２９］  前記プロセッサは、前記予測ブロック中の第１のサンプルを選択することと、前記第１のサンプルが前記第１のＰＵに関連すると決定することと、前記予測ブロック中の第２のサンプルを選択することと、前記第２のサンプルが前記第２のＰＵに関連すると決定することと、前記第２のＰＵが前記第１の隣接領域サイズとは異なる第２の隣接領域サイズに関連すると決定することと、前記第２の隣接領域サイズを有する隣接領域が、前記第２のサンプルを含み、また前記第１のＰＵに関連するサンプルを含むとき、前記第２のサンプルが前記第１の遷移ゾーン内にあると識別することとを行うようにさらに構成され、前記プロセッサは、前記第１の隣接領域サイズを有する隣接領域が、前記第１のサンプルを含み、また前記第２のＰＵに関連するサンプルを含むとき、前記第１のサンプルが前記第１の遷移ゾーン内にあると識別するように構成された、［１９］に記載のコンピュータ機器。
［３０］  前記プロセッサが、前記ＣＵに関連するマルチメディアコンテンツの一部のために以前に選択された隣接領域サイズに基づいて前記第１の隣接領域サイズを選択するように構成され、前記ＣＵに関連する前記マルチメディアコンテンツの前記一部が、現在フレームと、別のＣＵと、ＣＵのグループと、サブＣＵのグループと、前記現在フレームのスライスと、前記現在フレームの２つ以上の部分とのうちの１つである、［１７］に記載のコンピュータ機器。
［３１］  前記コンピュータ機器が前記ビデオデータを符号化し、前記プロセッサが、前記ＣＵの残差データを生成するために前記ＣＵの元のサンプルブロックと前記予測ブロックとを使用するようにさらに構成された、［１７］に記載のコンピュータ機器。
［３２］  前記コンピュータ機器が前記ビデオデータを復号し、前記プロセッサが、前記ＣＵのための再構成されたサンプルブロックを生成するために、前記ＣＵの再構成された残差データと前記予測ブロックとを使用するようにさらに構成された、
［１７］に記載のコンピュータ機器。
［３３］  ビデオデータをコード化するコンピュータ機器であって、前記ビデオデータのフレーム中において第１の予測単位（ＰＵ）と第２のＰＵとを有するコード化単位（ＣＵ）のための予測ブロックを生成するために動き補償演算を実行するための手段と、隣接領域サイズを選択するための手段と、前記隣接領域サイズを選択した後に、前記予測ブロックの遷移ゾーン中のサンプルを識別するための手段と、ここで、隣接領域が、前記第１のＰＵに関連するサンプルを含み、また前記第２のＰＵに関連する前記予測ブロックのサンプルを含み、前記隣接領域が前記隣接領域サイズを有するとき、前記遷移ゾーンが、前記第１のＰＵに関連する前記サンプルを含む、前記遷移ゾーン中の前記サンプルに対して平滑化演算を実行するための手段とを備える、コンピュータ機器。
［３４］  ビデオデータをコード化するためのコンピュータプログラム製品であって、前記ビデオデータのフレーム中において第１の予測ユニット（ＰＵ）と第２のＰＵとを有するコード化ユニット（ＣＵ）のための予測ブロックを生成するために動き補償演算を実行することと、隣接領域サイズを選択することと、前記隣接領域サイズを選択した後に、前記予測ブロックの遷移ゾーン中のサンプルを識別することと、ここで隣接領域が、前記第１のＰＵに関連するサンプルを含み、また前記第２のＰＵに関連する前記予測ブロックのサンプルを含み、前記隣接領域が前記隣接領域サイズを有するとき、前記遷移ゾーンが、前記第１のＰＵに関連する前記サンプルを含む、前記遷移ゾーン中の前記サンプルに対して平滑化演算を実行することとを１つ以上のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備える、コンピュータプログラム製品。
【図１】
0005823538.tif 000003
【図２】
0005823538.tif 000004
【図３】
0005823538.tif 000005
【図４】
0005823538.tif 000006
【図５】
0005823538.tif 000007
【図６】
0005823538.tif 000008
【図７】
0005823538.tif 000009
【図８】
0005823538.tif 000010
【図９】
0005823538.tif 000011
【図１０】
0005823538.tif 000012
【図１１】
0005823538.tif 000013
【図１２】
0005823538.tif 000014
【図１３】
0005823538.tif 000015
【図１４】
0005823538.tif 000016
【図１５】
0005823538.tif 000017
【図１６】
0005823538.tif 000018
【図１７】
0005823538.tif 000019
【図１８】
0005823538.tif 000020
【図１９】
0005823538.tif 000021
【図２０】
0005823538.tif 000022
【図２１】
0005823538.tif 000023