ビデオデータをコード化する方法であって、前記ビデオデータのフレーム中において第1の予測単位PUと第2のPUとを有するコード化単位CUのための予測ブロックを生成するために動き補償演算を実行することと、コンピュータ機器が第1の隣接領域サイズを選択することと、前記第1の隣接領域サイズを選択した後に、前記予測ブロックの第1の遷移ゾーン中のサンプルを識別することと、ここで、隣接領域が、前記第1のPUに関連するサンプルを含み、また前記第2のPUに関連する前記予測ブロックのサンプルを含み、前記第1の隣接領域サイズを有するとき、前記第1の遷移ゾーンが、前記第1のPUに関連する前記サンプルを含む、識別することと、前記第1の遷移ゾーン中の前記サンプルに対して第1の平滑化演算を実行することとを備える、方法。前記方法は、ユーザから前記第1の隣接領域サイズを指定する隣接領域サイズパラメータを受信することを更に含み、前記第1の隣接領域サイズを選択することが、前記第1の隣接領域サイズを選択するために前記隣接領域サイズシンタックス要素を使用することを含む、請求項1に記載の方法。前記第1の隣接領域サイズを選択することが、前記CUの特性に基づいて前記第1の隣接領域サイズを選択することを備える、請求項1に記載の方法。前記CUの特性に基づいて前記第1の隣接領域サイズを選択することが、前記CUのサイズに基づいて前記第1の隣接領域サイズを選択することを備える、請求項3に記載の方法。前記CUの特性に基づいて前記第1の隣接領域サイズを選択することが、前記第1のPUの予測モードに基づいて前記第1の隣接領域サイズを選択することを備える、請求項1に記載の方法。前記CUの特性に基づいて前記第1の隣接領域サイズを選択することが、前記第1のPUの動きベクトルに基づいて前記第1の隣接領域サイズを選択することを備える、請求項1に記載の方法。前記CUの特性に基づいて前記第1の隣接領域サイズを選択することが、前記予測ブロック中のサンプルの差異に基づいて前記第1の隣接領域サイズを選択することを備える、請求項1に記載の方法。前記第1の隣接領域サイズを選択することが、前記ビデオデータ中の他のCUを符号化した結果に基づいて前記第1の隣接領域サイズを選択することを備える、請求項1に記載の方法。前記第1の遷移ゾーン中のサンプルを識別することは、前記第1のPUに関連する所与のサンプルを含んでいる所与の隣接領域が、前記第2のPUに関連するサンプルを含んでおり、前記所与の隣接領域が前記所与のサンプルを中心とするとき、前記所与のサンプルが前記第1の遷移ゾーン中にあると決定することを備える、請求項1に記載の方法。前記第1の遷移ゾーン中のサンプルを識別することは、前記第1のPUに関連する所与のサンプルを含んでいる所与の隣接領域が、前記第2のPUに関連するサンプルを含んでおり、前記所与の隣接領域が前記所与のサンプルを中心としないとき、前記所与のサンプルが前記第1の遷移ゾーン中にあると決定することを備える、請求項1に記載の方法。第2の遷移ゾーン中の前記予測ブロックのサンプルを識別することと、ここで、前記第1のPUに関連するサンプルを含んでいる隣接領域が、前記第2のPUに関連するサンプルを含んでいる場合、前記第1のPUに関連する前記サンプルが前記第2の遷移ゾーン中にあり、前記第2のPUに関連するサンプルを含んでいる隣接領域が、前記第1のPUに関連するサンプルを含んでいる場合、前記第2のPUに関連する前記サンプルが前記第2の遷移ゾーン中にあり、サンプルが前記第2の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域は、サンプルが前記第1の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域とは異なるサイズを有する、前記第2の遷移ゾーン中の前記サンプルに対して前記第1の平滑化演算とは異なる第2の平滑化演算を実行することと、をさらに備える、請求項1に記載の方法。前記第1の隣接領域サイズを有する隣接領域が、前記第2のPU中のサンプルを含み、また前記第1のPU中のサンプルを含むとき、前記第1の遷移ゾーンが前記第2のPU中の前記サンプルを含む、請求項1に記載の方法。前記方法は、前記予測ブロック中の第1のサンプルを選択することと、前記第1のサンプルが前記第1のPUに関連すると決定することと、前記予測ブロック中の第2のサンプルを選択することと、前記第2のサンプルが前記第2のPUに関連すると決定することと、前記第2のPUが前記第1の隣接領域サイズとは異なる第2の隣接領域サイズに関連すると決定することと、前記第2の隣接領域サイズを有する隣接領域が、前記第2のサンプルを含み、また前記第1のPUに関連するサンプルを含むとき、前記第2のサンプルが前記第1の遷移ゾーン内にあると識別することとをさらに備え、前記第1の隣接領域サイズを選択することは、前記第1のPUが前記第1の隣接領域サイズに関連すると決定することによって前記第1の隣接領域サイズを選択することを備え、前記第1の遷移ゾーン内にある前記第1のPU中のサンプルを識別することは、前記第1の隣接領域サイズを有する隣接領域が、前記第1のサンプルを含み、また前記第2のPUに関連するサンプルを含むとき、前記第1のサンプルが前記第1の遷移ゾーン内にあると識別することを備える、請求項1に記載の方法。前記第1の隣接領域サイズを選択することが、前記CUに関連するマルチメディアコンテンツの一部のために以前に選択された隣接領域サイズに基づいて前記第1の隣接領域サイズを選択することを備え、前記CUに関連する前記マルチメディアコンテンツの前記一部が、現在フレームと、別のCUと、CUのグループと、サブCUのグループと、前記現在フレームのスライスと、前記現在フレームの2つ以上の部分とのうちの1つである、請求項1に記載の方法。前記ビデオデータをコード化することが、前記ビデオデータを符号化することを備え、前記方法が、前記CUの残差データを生成するために前記CUの元のサンプルブロックと前記予測ブロックとを使用することをさらに備える、請求項1に記載の方法。前記ビデオデータをコード化することが、前記ビデオデータを復号することを備え、前記方法が、前記CUのための再構成されたサンプルブロックを生成するために、前記CUの再構成された残差データと前記予測ブロックとを使用することをさらに備える、請求項1に記載の方法。ビデオデータをコード化するコンピュータ機器であって、前記ビデオデータのフレーム中において第1の予測ユニットPUと第2のPUとを有するコード化単位CUのための予測ブロックを生成するために動き補償演算を実行することと、第1の隣接領域サイズを選択することと、前記第1の隣接領域サイズを選択した後に、前記予測ブロックの第1の遷移ゾーン中のサンプルを識別することと、ここで、隣接領域が、前記第1のPUに関連するサンプルを含み、また前記第2のPUに関連する前記予測ブロックのサンプルを含み、前記第1の隣接領域サイズを有するとき、前記第1の遷移ゾーンが、前記第1のPUに関連する前記サンプルを含む、前記第1の遷移ゾーン中の前記サンプルに対して第1の平滑化演算を実行することと、を行うように構成されたプロセッサを備える、コンピュータ機器。前記プロセッサは、ユーザから前記第1の隣接領域サイズを指定する隣接領域サイズパラメータを受信することと、前記第1の隣接領域サイズを選択するために前記隣接領域サイズパラメータを使用することとを行うように構成された、請求項17に記載のコンピュータ機器。前記プロセッサが、前記CUの特性に基づいて前記第1の隣接領域サイズを選択するように構成された、請求項17に記載のコンピュータ機器。前記プロセッサが、前記CUのサイズに基づいて前記第1の隣接領域サイズを選択するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサが、前記第1のPUの予測モードに基づいて前記第1の隣接領域サイズを選択するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサが、前記第1のPUの動きベクトルに基づいて前記第1の隣接領域サイズを選択するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサが、前記予測ブロック中のサンプルの差異に基づいて前記第1の隣接領域サイズを選択するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサが、前記ビデオデータ中の他のCUを符号化した結果に基づいて前記第1の隣接領域サイズを選択するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサは、前記第1のPU中の所与のサンプルを含んでいる所与の隣接領域が、前記第2のPUに関連するサンプルを含み、前記所与の隣接領域が前記所与のサンプルを中心とするとき、前記所与のサンプルが前記第1の遷移ゾーン中にあると決定するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサは、前記第1のPUに関連する所与のサンプルを含む所与の隣接領域が、前記第2のPUに関連するサンプルを含み、前記所与の隣接領域が前記所与のサンプルを中心としないとき、前記所与のサンプルが前記第1の遷移ゾーン中にあると決定するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサは、第2の遷移ゾーン中の前記予測ブロックのサンプルを識別することと、ここで、前記第1のPUに関連するサンプルを含む隣接領域が、前記第2のPUに関連するサンプルを含む場合、前記第1のPUに関連する前記サンプルが前記第2の遷移ゾーン中にあり、前記第2のPUに関連するサンプルを含む隣接領域が、前記第1のPUに関連するサンプルを含む場合、前記第2のPUに関連する前記サンプルが前記第2の遷移ゾーン中にあり、サンプルが前記第2の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域は、サンプルが前記第1の遷移ゾーン中にあるかどうかを決定するために使用される前記隣接領域とは異なるサイズを有する、前記第2の遷移ゾーン中の前記サンプルに対して前記第1の平滑化演算とは異なる第2の平滑化演算を実行することと、を行うように構成された、請求項19に記載のコンピュータ機器。前記第1の隣接領域サイズを有する隣接領域が、前記第2のPU中のサンプルを含み、また前記第1のPU中のサンプルを含むとき、前記第1の遷移ゾーンが前記第2のPU中の前記サンプルを含む、請求項19に記載のコンピュータ機器。前記プロセッサは、前記予測ブロック中の第1のサンプルを選択することと、前記第1のサンプルが前記第1のPUに関連すると決定することと、前記予測ブロック中の第2のサンプルを選択することと、前記第2のサンプルが前記第2のPUに関連すると決定することと、前記第2のPUが前記第1の隣接領域サイズとは異なる第2の隣接領域サイズに関連すると決定することと、前記第2の隣接領域サイズを有する隣接領域が、前記第2のサンプルを含み、また前記第1のPUに関連するサンプルを含むとき、前記第2のサンプルが前記第1の遷移ゾーン内にあると識別することとを行うようにさらに構成され、前記プロセッサは、前記第1の隣接領域サイズを有する隣接領域が、前記第1のサンプルを含み、また前記第2のPUに関連するサンプルを含むとき、前記第1のサンプルが前記第1の遷移ゾーン内にあると識別するように構成された、請求項19に記載のコンピュータ機器。前記プロセッサが、前記CUに関連するマルチメディアコンテンツの一部のために以前に選択された隣接領域サイズに基づいて前記第1の隣接領域サイズを選択するように構成され、前記CUに関連する前記マルチメディアコンテンツの前記一部が、現在フレームと、別のCUと、CUのグループと、サブCUのグループと、前記現在フレームのスライスと、前記現在フレームの2つ以上の部分とのうちの1つである、請求項17に記載のコンピュータ機器。前記コンピュータ機器が前記ビデオデータを符号化し、前記プロセッサが、前記CUの残差データを生成するために前記CUの元のサンプルブロックと前記予測ブロックとを使用するようにさらに構成された、請求項17に記載のコンピュータ機器。前記コンピュータ機器が前記ビデオデータを復号し、前記プロセッサが、前記CUのための再構成されたサンプルブロックを生成するために、前記CUの再構成された残差データと前記予測ブロックとを使用するようにさらに構成された、請求項17に記載のコンピュータ機器。ビデオデータをコード化するコンピュータ機器であって、0前記ビデオデータのフレーム中において第1の予測単位PUと第2のPUとを有するコード化単位CUのための予測ブロックを生成するために動き補償演算を実行するための手段と、隣接領域サイズを選択するための手段と、前記隣接領域サイズを選択した後に、前記予測ブロックの遷移ゾーン中のサンプルを識別するための手段と、ここで、隣接領域が、前記第1のPUに関連するサンプルを含み、また前記第2のPUに関連する前記予測ブロックのサンプルを含み、前記隣接領域が前記隣接領域サイズを有するとき、前記遷移ゾーンが、前記第1のPUに関連する前記サンプルを含む、前記遷移ゾーン中の前記サンプルに対して平滑化演算を実行するための手段とを備える、コンピュータ機器。ビデオデータをコード化するためのコンピュータプログラム製品であって、前記ビデオデータのフレーム中において第1の予測ユニットPUと第2のPUとを有するコード化ユニットCUのための予測ブロックを生成するために動き補償演算を実行することと、隣接領域サイズを選択することと、前記隣接領域サイズを選択した後に、前記予測ブロックの遷移ゾーン中のサンプルを識別することと、ここで隣接領域が、前記第1のPUに関連するサンプルを含み、また前記第2のPUに関連する前記予測ブロックのサンプルを含み、前記隣接領域が前記隣接領域サイズを有するとき、前記遷移ゾーンが、前記第1のPUに関連する前記サンプルを含む、前記遷移ゾーン中の前記サンプルに対して平滑化演算を実行することとを1つ以上のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備える、コンピュータプログラム製品。添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。添付の図面において、省略符号は、その省略符号によって分離された要素と同様の1つ以上の要素の存在を示す。同様の要素のための参照番号に対するアルファベットの添え字は、それらの要素の特定の数の存在を示すものではない。本開示では、序数ワード例えば、第1の、第2の、第3のなどで始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。そうではなく、そのような序数ワードは、単に、同じ又は同様の種類の異なる要素を指すために使用され得る。ビデオデータのフレームは、サンプルの1つ以上のブロック即ち、サンプルブロックに関連する。サンプルは、画素のルーマ又はクロマ成分など、画素の成分を定義する値であり得る。サンプルブロックは、そのようなサンプルの2次元アレイを指し得る。フレームのサンプルブロックの各々は、フレーム中の画素の異なる成分を指定し得る。エンコーダは、最初に、フレームをスライスに区分し得る。スライスは、概して、フレームの単独で復号可能な部分を指すために使用される用語である。エンコーダは、次に、これらのスライスをツリーブロックに区分し得る。ツリーブロックは最大コード化単位LCU:largestcodingunitと呼ばれることもある。エンコーダは、ツリーブロックを漸進的により小さいサンプルブロックの階層に区分し得、このサンプルブロックの階層は、図示されると階層ツリー構造として表され得、従ってツリーブロックという名前を有する。そのような階層ツリー構造のリーフノードは、これらのリーフノードが、コード化されるべきサンプルブロック又は単位を定義するという点で、コード化単位CUに対応し得る。このようにして、CUの各々は、フレームの異なるサンプルブロックに関連する。ツリーブロックをこのように区分することにより、エンコーダは、異なるサイズの動きを取り込むことが可能になり得る。CUの各々は、1つ以上の予測単位PUを有し得る。CUのサンプルブロックは、CUのPUに関連する予測領域に区分される。コーダは、各予測領域の動き情報を生成するために、サンプルブロックの予測領域に関して動き推定演算を実行し得る。予測領域の各々についての動き情報はPUとして記憶される。エンコーダ又はデコーダは、PUについて決定された動き情報を使用して、CUの予測ブロックを生成する。本開示では、コーダという用語は、エンコーダ又はデコーダのいずれかを指し得、コード化という用語は、符号化又は復号のいずれかを指し得る。幾つかの事例では、コーダは、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。遷移ゾーンは、概して、異なるPUに関連する予測ブロックのサンプル間の境界において生じる。コーダは、この平滑化演算を実行して、CUの残差データの後続のコード化、及び/又はデコーダによって再構成されたときのビデオデータそのようなビデオデータは再構成ビデオデータと呼ばれることがあるの得られるビデオ品質を改善し得る。幾つかの事例では、遷移ゾーン中のサンプルを平滑化することにより、再構成ビデオデータの圧縮性能及び/又は視覚品質が改善されるが、他の事例では、平滑化演算の実行により、圧縮性能を劣化させる人工的な効果が導入される。従って、平滑化演算を実行すると、平滑化演算による追加の残差データの導入により圧縮ビデオデータのサイズがより大きくなり得る。その上、これらの導入された人工的な効果は、閲覧者によって閲覧されたとき、主観的ビデオ品質に影響を及ぼす再構成ビデオデータの主観的知覚を劣化させ得る。幾つかの他の事例では、この平滑化演算を実行することにより、特定のフレームにとって重要であると見なされ得るビデオコンテンツ中のデータが除去され得、それにより、視覚的品質が更に低減され、フレームの再構成のためにこのフレームに依拠する他のフレームの再構成が影響を受け得る。この平滑化演算の実行を介したデータの紛失は、更に、非可逆的であり得、これは、デコーダが紛失したデータを復元することができないことがあることを意味する。本開示は、視覚品質及び圧縮性能を潜在的に改善する方法で平滑化演算を適応的に実行するための技法を提供する。従来のエンコーダで一般的であるように、あらゆる予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行するのではなく、本技法は、視覚品質又は圧縮性能に関して測定されたとき、それが最も有益であろうとコーダが決定する場合に、コーダが平滑化演算を適応的に実行することを可能にする。例えば、コーダは、CUの1つ以上のPUのサイズに基づいて平滑化演算を適応的に実行し得る。大きく遷移ゾーンでは、より多くのサンプルが操作され得る。しかしながら、あまりに多くのサンプルを処理すると、余分のひずみを導入し得る。小さい遷移ゾーンでは、平滑化演算のパフォーマンスが制限され得る。本開示で説明する幾つかの技法によれば、コーダは隣接領域サイズを適応的に選択する。コーダは、選択された隣接領域サイズの領域を使用して、予測ブロックのサンプルが遷移ゾーン内にあるかどうかを決定する。このようにして、コーダは、平滑化演算のパフォーマンスを最大にするために遷移ゾーンのサイズを選択し得る。図1は、例示的なマルチメディアコード化システム100を示すブロック図である。マルチメディアコード化システム100は、ビデオデータをキャプチャし、キャプチャされたビデオデータを符号化し、符号化されたビデオデータを送信し、符号化されたビデオデータを復号し、次いで、復号されたビデオデータを再生する。マルチメディアコード化システム100は、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とを備える。発信源102はビデオデータを生成する。符号化ユニット104はそのビデオデータを符号化する。復号ユニット106は、符号化されたビデオデータを復号する。プレゼンテーションユニット108は、復号されたビデオデータを提示する。1つ以上のコンピュータ機器は、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とを実施する。本開示では、コンピュータ機器という用語は、情報を処理する物理機器を包含する。コンピュータ機器の例示的なタイプには、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、スマートフォン、タブレットコンピュータ、車載コンピュータ、テレビジョンセットトップボックス、ビデオ会議システム、ビデオ生成機器、ビデオカメラ、ビデオゲーム機、又は情報を処理する他のタイプの機器がある。幾つかの例では、単一のコンピュータ機器は、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とのうちの2つ以上を実施し得る。例えば、単一のコンピュータ機器は、発信源102と符号化ユニット104とを実施し得る。この例では、別のコンピュータ機器が、復号ユニット106とプレゼンテーションユニット108とを実施し得る。他の例では、異なるコンピュータ機器が、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とを実施する。図1の例では、コンピュータ機器103が符号化ユニット104を実施し、コンピュータ機器107が復号ユニット106を実施する。幾つかの例では、コンピュータ機器103は、符号化ユニット104の他に機能を提供し得る。更に、幾つかの例では、コンピュータ機器107は、復号ユニット106の他に機能を提供し得る。上記で手短に説明したように、発信源102は、一連のフレームを表すビデオデータを生成する。フレームは、一般にピクチャとも呼ばれる。ビデオデータ中の一連のフレームが迅速に連続して例えば、24又は25フレーム毎秒でユーザに提示されるとき、ユーザは、フレーム中の被写体が動いていると知覚し得る。図2は、ビデオデータ中の例示的な一連のフレーム200A~200Pを示す概念図である。本開示では、フレーム200A~200Pをフレーム200と総称する。ビデオデータは、自転車レースのシーンを表している。行202及び204のフレームは、人が自転車のペダルを踏んでいるシーンを示す。行206のフレームは、机の後ろに座っている2人の解説者を示す。行208のフレームは、上空からの自転車レーサーのシーンを示す。シーン内の各フレームは、先行するフレームと僅かに異なり得る。フレーム200を迅速に連続して提示することによって、ユーザはこれらのシーンの動きを知覚し得る。続いて、ここで図1の例の参照をする。様々な例において、発信源102は、ビデオデータを様々な方法で生成する。例えば、発信源102は、ビデオカメラを備え得る。この例では、ビデオカメラは、視認できる環境から画像を撮影する。別の例では、発信源102は、医療、産業、又は科学用撮影のための1つ以上のセンサーを備え得る。そのようなセンサーは、X線検出器、磁気共鳴画像センサー、粒子検出器などを含み得る。更に別の例では、発信源102はアニメーションシステムを備え得る。この例では、1人以上のユーザが、このアニメーションシステムを使用して、彼らの想像からビデオデータのコンテンツを描画、作成、プログラム、又は他の方法でデザインし得る。符号化ユニット104は、発信源102によって生成されたビデオデータを受け取る。符号化ユニット104は、より少ないデータでビデオデータ中の一連のフレームが表されるようにビデオデータを符号化する。幾つかの事例では、ビデオデータが、DVD又はCD-ROMなど、所与のタイプのコンピュータ可読媒体に記憶され得ることを保証するために、このようにビデオデータを符号化することが必要であり得る。更に、幾つかの事例では、ビデオデータが、インターネットなどの通信ネットワークを介して効率的に送信され得ることを保証するために、このようにビデオデータを符号化することが必要であり得る。符号化ユニット104は、ビデオフレームのシーケンス又は連続としてしばしば表される、ビデオデータを符号化し得る。ビデオデータを符号化するために、符号化ユニット104は、これらのフレームを一般にスライスと呼ばれる単独で復号可能な部分に分割し得、符号化ユニット104は、今度は、これらの部分をツリーブロックに分割し得る。これらのツリーブロックは、ある形式の再帰的階層4重ツリー分割recursivehierarchicalquadtreesplittingを受け得る。符号化ユニット104は、この分割を実行して、階層ツリー状のデータ構造を生成し得、そのルートノードはツリーブロックと呼ばれる。この階層ツリー状のデータ構造のリーフノードはコード化ノードと呼ばれることがある。コード化単位又はCUは、コード化ノード、及び動き情報並びに変換情報を含む他のタイプの情報を含む。各コード化ノードは、ツリーブロック内のサンプルブロックを識別する。本開示では、CUに関連するコード化ノードによって識別されるサンプルブロックは、CUのサンプルブロックと呼ばれることがある。符号化ユニット104は、CUのサンプルブロックを予測領域に区分するために矩形及び/又は幾何学的区分モードを使用し得る。符号化ユニット104が、CUのサンプルブロックを区分するために幾何学的区分モードを使用したとき、区分領域間の境界がサンプルブロックのエッジと直角に交わらないことがある。符号化ユニット104は、予測領域ごとに、動きベクトルなどの動き情報を生成するために、各予測領域に対してある形式の動き推定を実行し得る。CUの予測単位又はPUは、CUの予測領域を示す情報、予測領域の動き情報、及び/又は予測領域に関する他の情報を含んでいることがある。符号化ユニット104は、動き情報を使用して予測ブロックを生成し得る。本開示の技法によれば、符号化ユニット104は、CUの第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界において生じる。符号化ユニット104が平滑化演算を実行すべきであるという決定を行った後に、符号化ユニット104は、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行し得る。更に、本開示の技法によれば、符号化ユニット104は、隣接領域サイズを選択することによって予測ブロックのサンプルが遷移ゾーン中にあるかどうかを決定し得る。隣接領域サイズを選択した後に、符号化ユニット104は、予測ブロックの遷移ゾーン中のサンプルを識別し得る。隣接領域が、CUの第1のPUに関連するサンプルを含んでおり、またCUの第2のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの第1のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。符号化ユニット104は、次いで、CUの元のサンプルブロックを予測ブロックと比較することによって残差データを求める。この残差データを求めた後に、符号化ユニット104は、残差データに変換を適用し得る。従って、符号化ユニット104は、予測ブロックから導出された残差データに変換を適用する前に、予測ブロックの遷移ゾーン中のサンプルに平滑化演算を適用する。この残差データを変換するために、符号化ユニット104は、残差データを1つ以上の変換領域に区分し得る。符号化ユニット104は、次いで、残差データの変換領域に1つ以上の変換を適用して、変換係数ブロックと呼ばれることもある、変換された残差データを生成する。この変換係数ブロックは、一般に、残差データを変換係数のブロックとして表現する。変換された残差データは、次いで、対応するCUの変換単位TUに記憶される。従って、CUは、コード化ノード又はサンプルブロック、TU及びCU、ならびに、変換された残差データを復号するために必要であり得る他のシンタックス要素を備える。復号ユニット106は、符号化されたビデオデータを受け取る。様々な例において、復号ユニット106は、符号化されたビデオデータを様々な方法で受け取り得る。例えば、復号ユニット106は、DVDなど、ビデオデータを記憶したコンピュータ可読媒体を受け取り得る。別の例では、復号ユニット106は、インターネット、ローカル領域ネットワークLAN、別のコンピュータ機器に接続されたケーブル、又はワイヤレスネットワーキングリンクなどの通信媒体から、符号化されたビデオデータを受け取り得る。符号化されたビデオデータを受け取った後に、復号ユニット106は、その符号化されたビデオデータを復号する。復号ユニット106が、符号化されたビデオデータを復号するとき、復号ユニット106は、ビデオデータ中のフレームのCUのための予測ブロックを生成し得る。復号ユニット106は、次いで、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定し得る。予測ブロックの遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界にあり得る。復号ユニット106が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後に、復号ユニット106は、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。更に、本開示の技法によれば、復号ユニット106は、隣接領域サイズを選択することによって予測ブロックのサンプルが遷移ゾーン中にあるかどうかを決定し得る。隣接領域サイズを選択した後に、復号ユニット106は、予測ブロックの遷移ゾーン中のサンプルを識別し得る。隣接領域が、CUの第1のPUに関連するサンプルを含んでおり、またCUの第2のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの第1のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。プレゼンテーションユニット108は、復号ユニット106から、復号されたビデオデータを受け取る。様々な例において、プレゼンテーションユニット108は、復号されたビデオデータを様々な方法で受け取る。例えば、単一のコンピュータ機器が、復号ユニット106とプレゼンテーションシステム108とを設ける場合、プレゼンテーションユニット108は、ケーブル又はバスなど、1つ以上の内部通信媒体を介して、復号されたビデオデータを受け取り得る。別の例では、プレゼンテーションユニット108は、ネットワーク接続、DVD、CD-ROM、固体メモリ機器など、1つ以上のコンピュータ可読媒体から、復号されたビデオデータを受け取り得る。復号されたビデオデータを受け取った後に、プレゼンテーションユニット108は、1人以上のユーザに、復号されたビデオデータ中のフレームを提示する。図3は、符号化ユニット104の例示的な構成を示すブロック図である。図3の例では、符号化ユニット104は、モード選択ユニット302と、インター予測ユニット304と、イントラ予測ユニット308と、残差生成ユニット310と、変換モジュール312と、量子化ユニット314と、エントロピーコード化ユニット316と、逆量子化ユニット318と、逆変換ユニット320と、再構成ユニット322と、参照フレーム記憶部324とを設ける。符号化ユニット104の幾つかの例は、より多いか、より少ないか、又は異なるユニットを備え得ることを読者は理解されよう。様々な例において、符号化ユニット104は、モード選択ユニット302と、インター予測ユニット304と、イントラ予測ユニット308と、残差生成ユニット310と、変換モジュール312と、量子化ユニット314と、エントロピーコード化ユニット316と、逆量子化ユニット318と、逆変換ユニット320と、再構成ユニット322と、参照フレーム記憶部324とを、様々な方法で実施する。例えば、符号化ユニット104を実施する1つ以上のコンピュータ機器は、この1つ以上のコンピュータ機器のプロセッサが、1つ以上のコンピュータ可読媒体に記憶された幾つかのコンピュータ可読命令を実行するとき、これらのユニットのうちの1つ以上を実施し得る。この例では、これらのユニット又はモジュールは、コンピュータソフトウェアの個別のモジュール部分として、実施されても実施されなくてもよい。別の例では、符号化ユニット104を実施する1つ以上のコンピュータ機器は、これらのユニットのうちの1つ以上の機能を実施する1つ以上の特定用途向け集積回路ASICを備え得る。幾つかの例では、これらのユニットの機能は、別個のコンピュータ機器によって提供され得る。符号化ユニット104は、ビデオデータのフレームを表すデータを受け取る。符号化ユニット104が、フレームを表すデータを受け取ると、符号化ユニット104はそのフレームを符号化する。説明を簡単にするために、本開示では、符号化されているフレームをソースフレームと呼ぶ。ソースフレームを表すデータは、サンプルの1つ以上のブロックを備える。ソースフレームを符号化するために、モード選択ユニット302は、フレームのサンプルブロックを複数のツリーブロックの間で区分する。幾つかの事例では、ツリーブロックは、ルーマサンプルのN×Nブロックと、クロマサンプルの2つの対応するブロックとであり得る。幾つかの例では、ブロックは、サンプル又は変換係数の2次元アレイである。他の事例では、ツリーブロックは、ルーマサンプル又はクロマサンプルアレイのブロックであり得る。モード選択ユニット302は、ツリーブロックの各々についてクワッドツリーを生成し得る。ツリーブロックのクワッドツリーは、ノードの階層を備える。初期に、所与のツリーブロックのクワッドツリーはルートノードのみを備える。ルートノードは、所与のツリーブロックに対応する。モード選択ユニット302は、所与のツリーブロックを複数のより小さいサンプルブロックに区分し得る。モード選択ユニット302が、所与のツリーブロックを複数のより小さいサンプルブロックに区分するとき、モード選択ユニット302は、所与のツリーブロックのクワッドツリーに子ノードを追加する。子ノードの各々は、これらのより小さいサンプルブロックのうちの異なる1つに対応する。幾つかの例では、モード選択ユニット302は、より小さいサンプルブロックのうちの1つ以上を、更により小さいサンプルブロックに再分割し得る。モード選択ユニット302が、より小さいサンプルブロックを更により小さいサンプルブロックに区分するとき、モード選択ユニット302は、所与のツリーブロックのクワッドツリーに孫ノードを追加し得る。孫ノードの各々は、これらの更により小さいサンプルブロックのうちの1つに対応する。孫ノードは、子ノードの子である。モード選択ユニット302は、事前構成された限界まで、適宜に所与のツリーブロックを所与のツリーブロックのクワッドツリーに区分し、ノードを生成し続け得る。本明細書では、子ノードを有しないクワッドツリー中のノード即ち、リーフノードをコード化ノードと呼ぶ。コード化ノードの各々は、異なるCUに対応する。CUのコード化ノードは、予測ツリーと変換ツリーとのルートノードである。予測ツリーは、CUのPUの情報を記憶する。例えば、予測ツリーは、PUの予測領域のサイズ及び位置を指定し得る。CUのPUはまた、追加の関連する予測データを備え得る。変換ツリーは、CUのTUに関する情報を記憶する。例えば、変換ツリーは、TUの変換領域のサイズ及び位置を指定し得る。CUのTUはまた、追加の関連する変換データを備え得る。図4は、ツリーブロック400A~400P総称してツリーブロック400に区分される例示的なフレーム200Aを示す概念図である。ツリーブロック400の各々は、方形であり、同じサイズを有する。例えば、ツリーブロック400のサンプルブロックは、幅32サンプル×高さ32サンプル即ち、32×32であり得る。別の例では、ツリーブロック400のサンプルブロックは、64サンプル幅×64サンプル高さ即ち、64×64であり得る。図5は、ツリーブロック400のさらなる例示的な区分を示す概念図である。図5の例では、モード選択ユニット302は、ツリーブロック400Jのサンプルブロックを4つのより小さいサンプルブロック500A~500Dに区分している。更に、図5の例では、モード選択ユニット302は、サンプルブロック400Dを4つのサンプルブロック502A~504Dに区分している。モード選択ユニット302は、更に、サンプルブロック502Aを4つのさらなるサンプルブロック504A~504Dに再分割している。続いて、ここで図3の例の参照をする。モード選択ユニット302がツリーブロックのクワッドツリーを生成した後に、インター予測ユニット304は、ツリーブロックのCUごとにフレーム間コード化演算を実行する。インター予測ユニット304が、CUのためのフレーム間コード化演算を実行するとき、インター予測ユニット304は、CUのサンプルブロックを予測領域に区分するために矩形及び/又は幾何学的区分モードを使用する。CUのPUはこれらの予測領域を指定する。インター予測ユニット304が、所与の区分モードを使用してサンプルブロックを2つ以上の予測領域に区分した後に、インター予測ユニット304は、これらの予測領域に関連するPUについての動き情報を生成する動き推定演算を実行し得る。動き推定演算中に、インター予測ユニット304は、PUの参照サンプルについて参照フレームを探索する。PUの参照サンプルは、PUの予測領域中のサンプルに対応する参照フレームの部分である。インター予測ユニット304は、PUの参照サンプルを示すために、PUについての動き情報を生成する。インター予測ユニット304は、CUのPUの参照サンプルを使用してCUの予測ブロックを生成する。CUの予測ブロックは予測サンプルのブロックである。CUの予測ブロックは、CUのサンプルブロックとはいくぶん異なり得る。例えば、予測ブロック中のサンプルは、CUのサンプルブロックの対応するサンプルとは色又は輝度が僅かに異なり得る。本開示の技法によれば、インター予測ユニット304は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかの決定を行い得る。インター予測ユニット304が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った場合、インター予測ユニット304は、遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。更に、インター予測ユニット304は、予測ブロックの遷移ゾーン中のサンプルを適応的に識別し得る。例えば、インター予測ユニット304は隣接領域サイズを選択し得る。隣接領域サイズを選択した後に、インター予測ユニット304は、遷移ゾーン中のサンプルを識別し得る。この例では、隣接領域が、CUの第1のPUに関連するサンプルを含んでおり、またCUの第2のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの第1のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。イントラ予測ユニット308は、CUの予測ブロックを生成するために、ソースフレームの他のCUのサンプルブロック中のサンプルを使用し得る。様々な例において、イントラ予測ユニット308は、予測ブロックを様々な方法で生成する。例えば、イントラ予測ユニット308は、隣接CU中のサンプルが予測ブロックを横切って水平方向に又は予測ブロックを通って垂直下方向に延びるようにCUの予測ブロックを生成し得る。イントラ予測ユニット308はまた、CUのサンプルブロックに最も良く対応するイントラ予測モードを選択し得る。インター予測ユニット306とイントラ予測ユニット308とがCUの予測ブロックを生成した後に、モード選択ユニット302は、CUの予測ブロックのうちの1つを選択し得る。モード選択ユニット302が、イントラ予測ユニット308によって生成された予測ブロックを選択する場合、モード選択ユニット302は、選択された予測ブロックを生成するときにイントラ予測ユニット308が使用したイントラ予測モードを示すために、CUのコード化ノードにシンタックス要素を追加し得る。モード選択ユニット302が、インター予測ユニット304によって生成された予測ブロックを選択する場合、モード選択ユニット302は、CUを符号化するためにインター予測が使用されたことを示すCUについてコード化ノードにシンタックス要素を追加し得る。更に、モード選択ユニット302は、CUの予測ツリーにシンタックス要素を追加し得る。例えば、モード選択ユニット302は、CUのPUのサイズ及び位置、PUの動きベクトル、ならびにフレーム間コード化演算中に生成された他のデータを示すシンタックス要素を予測ツリーに追加し得る。更に、モード選択ユニット302は、CUの変換ツリーにシンタックス要素を追加し得る。例えば、モード選択ユニット302は、CUのTUのサイズ及び位置を示すシンタックス要素を変換ツリーに追加し得る。幾つかの例では、シンタックス要素は、ビットストリーム中に表されたデータの要素である。ビットストリームは、1つ以上のコード化ビデオシーケンスを形成する、コード化ピクチャ及び関連するデータの表現を形成するビットのシーケンスであり得る。コード化ビデオシーケンスはアクセス単位のシーケンスであり得る。アクセス単位は、復号順序が連続しており、ちょうど1つの1次コード化ピクチャを含んでいる、ネットワークアブストラクションレイヤNAL:NetworkAbstractionLayer単位のセットであり得る。NAL単位は、後続すべきデータのタイプの指示を含んでいるシンタックス構造と、エミュレーション防止ビットを用いて必要に応じて点在させられた未加工バイトシーケンスペイロードの形式でそのデータを含んでいるバイトとであり得る。1次コード化ピクチャは、ビットストリームのために復号プロセスによって使用されるべきピクチャのコード化表現であり得る。モード選択ユニット302がCUの予測ブロックを選択した後に、残差生成ユニット310は、CUの元のサンプルブロックと、CUの選択された予測ブロックとを使用して、CUの残差データを生成し得る。幾つかの例では、CUの残差データは、残差データの2次元アレイ即ち、残差ブロックとして構成され得る。CUの残差データは、CUの元のサンプルブロックと、CUの予測ブロックとの間の差異を表し得る。様々な例において、残差生成ユニット310は、残差データを様々な方法で生成し得る。例えば、残差生成ユニット310は、CUのサンプルブロック中のサンプルからCUの予測ブロック中のサンプルを減算することによってCUの残差データを生成し得る。上記で手短に説明したように、各CUは1つ以上のTUを有する。変換単位は、変換ツリー及び関連する変換データを備え得る。変換ツリーは、変換領域のサイズ及び位置を指定し得る。例えば、変換ツリーは、変換領域の左上コーナーの位置を示し得る。この例では、変換領域のサイズは、変換ツリー中の対応するノードの深さから導出され得る。残差生成ユニット310がCUの残差データを生成すると、変換モジュール312は、CUのTUごとに変換演算を実行し得る。変換モジュール312がCUのTUのための変換演算を実行するとき、変換モジュール312は、残差データの適用可能なサンプルを空間領域から周波数領域に変換する。変換モジュール312は、サンプルを周波数領域に変換係数ブロックとして記憶し得る。残差データの適用可能なサンプルは、TUによって指定された変換領域中に残差データのサンプルを含み得る。変換係数ブロックは変換係数の2次元アレイである。幾つかの例では、変換係数は、復号プロセスの逆変換部分において特定の1次元又は2次元周波数インデックスに関連付けられた、周波数領域中にあると見なされるスカラー量であり得る。変換モジュール312が残差データのサンプルに対して変換演算を実行するとき、変換モジュール312は、それらのサンプルに数学的変換を適用する。例えば、変換モジュール312は、サンプルを空間領域から周波数領域に変換するために、サンプルに対して離散コサイン変換DCTを実行し得る。変換モジュール312は、得られた変換係数ブロックを量子化ユニット314に与え得る。量子化ユニット314は、変換係数ブロックに対して量子化演算を実行し得る。量子化ユニット314が量子化演算を実行するとき、量子化ユニット314は、変換係数ブロック中の変換係数の各々を量子化し、それによって量子化変換係数ブロックを生成し得る。量子化変換係数ブロックは量子化変換係数の2次元アレイである。様々な例において、量子化ユニット314は様々な量子化演算を実行する。例えば、量子化ユニット314は、変換係数を量子化パラメータで除算し、次いで、得られた商をクリッピングすることによって変換係数を量子化する、量子化演算を実行し得る。量子化ユニット314がCUの変換係数ブロックに対して量子化演算を実行した後、エントロピーコード化ユニット316は、CUの量子化変換係数ブロックと、CUのコード化ノードと、CUの予測ツリーと、CUの変換ツリーとに対してエントロピーコード化演算を実行する。エントロピーコード化ユニット316は、このエントロピーコード化演算を実行した結果として、CUのエントロピーコード化データを生成する。幾つかの事例では、エントロピーコード化ユニット316がエントロピーコード化演算を実行するとき、量子化ユニット314は、CUのデータを表すために必要とされるビット数を低減し得る。様々な事例において、エントロピーコード化ユニット316は、CUのデータに対して様々なエントロピーコード化演算を実行し得る。例えば、エントロピーコード化ユニット316は、CUのデータに対してコンテキスト適応型可変長コード化CAVLC演算又はコンテキスト適応型バイナリ算術コード化CABAC演算を実行し得る。符号化ユニット104は、CUのエントロピー符号化データを含むビットストリームを生成する。様々な例において、符号化ユニット104は、CUのエントロピー符号化データを含む様々なタイプのビットストリームを生成し得る。例えば、符号化ユニット104はNAL単位ストリームを出力し得る。この例では、NAL単位ストリームは、NAL単位と呼ばれるシンタックス構造のシーケンスを備える。NAL単位は復号順に順序付けられる。NAL単位のうちの1つ以上は、CUのエントロピー符号化データを含み得る。別の例では、符号化ユニット104はバイトストリームを出力し得る。符号化ユニット104は、NAL単位を復号順に順序付けし、各NAL単位の前に開始コードプレフィックスと0個以上の0値バイトとを付けてバイトのストリームを形成するによって、NAL単位ストリームからバイトストリームを構築する。逆量子化ユニット318は、量子化変換係数ブロックに対して逆量子化演算を実行する。この逆量子化演算は、少なくとも部分的に、量子化ユニット314によって実行された量子化演算の効果を逆転させ、それによって変換係数ブロックを生成する。逆変換ユニット320は、逆量子化ユニット318によって生成された変換係数ブロックに対して逆変換演算を実行する。逆変換ユニット320が逆変換演算を実行するとき、逆変換ユニット320は、変換モジュール312によって実行された変換演算の効果を逆転させ、それによって、再構成された残差データを生成する。再構成ユニット322は、再構成されたサンプルブロックを生成する再構成演算を実行する。再構成ユニット322は、再構成された残差データと、インター予測ユニット304又はイントラ予測ユニット308によって生成された予測ブロックとに基づいて、再構成されたサンプルブロックを生成する。様々な例において、再構成ユニット322は様々な再構成演算を実行する。例えば、再構成ユニット322は、再構成された残差データ中のサンプルに予測ブロック中の対応するサンプルを加算することによって再構成演算を実行する。参照フレーム記憶部324は、再構成されたサンプルブロックを記憶する。符号化ユニット104がソースフレームの各CUについてデータを符号化した後に、符号化ユニット104は、ソースフレーム中の各CUについて再構成されたサンプルブロックを生成している。従って、参照フレーム記憶部324は、ソースフレームのサンプルブロックの完全な再構成を記憶する。モード選択ユニット302は、ソースフレームのサンプルブロックの再構成を参照フレームとしてインター予測ユニット304に与え得る。図6は、インター予測ユニット304の例示的な構成を示すブロック図である。図6の例では、インター予測ユニット304は、動き推定ユニット602と、動き補償ユニット604と、TU生成ユニット606とを備える。動き補償ユニット604は平滑化ユニット608を備える。インター予測ユニット304の他の例示的な構成は、より多いか、より少ないか、又は異なる構成要素を含み得ることを読者は理解されよう。動き推定ユニット602は、CUのPUごとに動き推定演算を実行し得る。動き補償ユニット604は、CUの予測ブロックを生成する動き補償演算を実行し得る。TU生成ユニット606は、CUのTUを生成する変換単位選択演算を実行し得る。本開示の技法によれば、平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行し得る。更に、平滑化ユニット608は、予測ブロックのどのサンプルが遷移ゾーン中にあるかを決定し得る。図12~図21について平滑化ユニット608によって実行される演算として説明するが、図12~図21において説明する演算は、復号ユニット106の動き補償ユニットによって実行され得る。動き推定ユニット602がCUの動き推定演算を実行するとき、動き推定ユニット602は、1つ以上の予測ツリーを生成し得る。予測ツリーの各々は、CUの異なるPUに関連し得る。予測ツリーの各々は、予測領域の位置及びサイズを指定し得る。説明を簡単にするために、本開示では、PUの予測ツリーによって指定された予測領域の位置又はサイズをPUの位置又はサイズと呼ぶことがある。動き推定ユニット602は、参照サンプルについて1つ以上の参照フレームを探索し得る。PUの参照サンプルは、PUの予測領域内に入るCUのサンプルブロックの部分に視覚的に対応する参照フレームの領域であり得る。動き推定ユニット602が、PUのうちの1つについてそのような参照サンプルを見つけた場合、動き推定ユニット602は動きベクトルを生成し得る。この動きベクトルは、PUの参照サンプルの空間位置とPUの空間位置との間の差異を記述するデータのセットである。例えば、動きベクトルは、PUの参照サンプルが、PUに対して5サンプル分だけより高く、3サンプル分だけ右側にあることを示し得る。更に、幾つかの状況では、動き推定ユニット602は、PUの参照サンプルを識別することができないことがある。そのような状況では、動き推定ユニット602は、PUのためにスキップモード又はダイレクトモードを選択し得る。幾つかの例では、PUの参照サンプルについて探索を実行するのではなく、動き推定ユニット602は、PUの動きベクトルを予測し得る。この動きベクトル予測を実行する際に、動き推定ユニット602は、ソースフレーム中の空間的に隣接するCUについて決定される動きベクトル、又は参照フレーム中のコロケートCUについて決定される動きベクトルのうちの1つを選択し得る。動き推定ユニット602は、各区分の動きベクトルを決定することに関連する複雑さを低減するために、参照サンプルについて探索するのではなく動きベクトル予測を実行し得る。動き補償ユニット604は、CUの予測ブロックを生成するためにPUのインターコード化モードを使用する。動き推定ユニット602がPUのためにスキップモードを選択した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルが参照フレーム中のコロケートサンプルに一致するようにCUの予測ブロックを生成し得る。動き推定ユニット602がPUのためにダイレクトモードを選択した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルがCUのサンプルブロック中のコロケートサンプルに一致するように予測ブロックを生成し得る。動き推定ユニット602がPUのために動きベクトルを生成した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルが、動きベクトルによって示される参照フレームの部分中のサンプルに対応するように、予測ブロックを生成し得る。動き推定ユニット602がPUのために複数の動きベクトルを生成した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルが、そのPUの動きベクトルによって示される複数の参照フレームの部分中のサンプルに対応するように、予測ブロックを生成し得る。図7は、復号ユニット106の例示的な構成を示すブロック図である。図7の例に示すように、復号ユニット106は、エントロピー復号ユニット700と、動き補償ユニット702と、イントラ予測ユニット704と、逆量子化ユニット708と、逆変換モジュール710と、再構成ユニット712と、参照フレーム記憶部714とを実施する。様々な例において、復号ユニット106は、これらの構成要素を様々な方法で実施する。例えば、復号ユニット106を与える1つ以上のコンピュータ機器は、このコンピュータ機器のプロセッサが幾つかのコンピュータ可読命令を実行するとき、これらのユニットを実施し得る。この例では、これらのユニット又はモジュールは、コンピュータソフトウェアの個別のモジュール部分として、実施されても実施されなくてもよい。別の例では、復号ユニット106を実施する1つ以上のコンピュータ機器は、これらのユニットのうちの1つ以上の機能を提供するASICを備え得る。復号ユニット106は、ビデオデータを表す符号化ビットストリームを受け取る。符号化ビットストリームは、ビデオデータ中のフレームを表すデータを備え得る。例えば、符号化ビットストリームは、フレーム200図2の各々を表すデータを備え得る。復号ユニット106が、フレームを表すデータを受け取ると、復号ユニット106は、フレームを再構成するためにそのデータを復号する。説明を簡単にするために、本開示では、このフレームをソースフレームと呼ぶことがある。復号ユニット106がソースフレームについてデータを復号するとき、復号ユニット106は、ソースフレームの各CUについて符号化データを受け取る。例えば、復号ユニット106は、CUの量子化変換係数ブロックの符号化バージョンと、CUのコード化ノードの符号化バージョンと、CUの予測ツリーの符号化バージョンと、CUの変換ツリーの符号化バージョンとを受け取り得る。復号ユニット106は、次いで、ソースフレームの各CUのデータを復号する。復号ユニット106が所与のCUのデータを復号するとき、エントロピー復号ユニット700は、所与のCUの符号化データを受け取る。エントロピー復号ユニット700は、所与のCUの符号化データに対してエントロピー復号演算を実行する。エントロピー復号演算は、エントロピーコード化ユニット316図3によって実行されたエントロピーコード化演算の効果を逆転させる。エントロピー復号ユニット700は、CUの量子化変換係数ブロックを逆量子化ユニット708に与える。エントロピー復号ユニット700は、CUのコード化ノード、予測ツリー、及び変換ツリーなど、CUのコード化データを、動き補償ユニット702及び/又はイントラ予測ユニット704に与え得る。動き補償ユニット702がCUのコード化データを受け取ると、動き補償ユニット702は、そのコード化データを使用して、CUの予測ブロックを生成する動き補償演算を実行する。動き補償演算中に、動き補償ユニット702は、参照フレーム記憶部714から1つ以上の参照フレームを取り出し得る。動き補償ユニット702は、次いで、CUのPUのための参照サンプルを識別し得る。PUの動きベクトルが、PUの参照サンプルとして参照フレーム内の領域を識別する。CUのPUのための参照サンプルを識別した後に、動き補償ユニット702は、CUの予測ブロックを生成する。予測ブロックにおいて、CUのPUは、PUの参照サンプルを含んでいることがある。本開示の技法によれば、動き補償ユニット702は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行する演算を実行し得る。例えば、動き補償ユニット702は、図12~図18及び図20に示す例示的な演算のうちの1つを実行し得る。更に、幾つかの事例では、動き補償ユニット702は、どのサンプルが遷移ゾーン内にあるかを決定し得る。幾つかの例では、動き補償ユニット702は、図20及び図21に示す例示的な演算を実行することによって、どのサンプルが遷移ゾーン内にあるかを決定し得る。イントラ予測ユニット704がCUのコード化データを受け取ると、イントラ予測ユニット704は、ソースフレーム中の前に復号されたサンプルブロックの再構成されたサンプルブロックを使用して、CUの予測ブロックを生成する。イントラ予測ユニット704は、指示されたイントラ予測モードに従って予測ブロック中のサンプルを修正し得る。逆量子化ユニット708は、各CUについて1つ以上の量子化変換係数ブロックを受け取る。逆量子化ユニット708がCUの量子化変換係数ブロックを受け取ると、逆量子化ユニット708は、少なくとも部分的に、量子化ユニット314図3によって実行された量子化演算の効果を逆転させ、それによってCUの非量子化変換係数ブロックを生成する、逆量子化演算を実行する。逆変換モジュール710は、変換係数ブロックに対して逆変換演算を実行する。この逆変換演算は、変換モジュール312図3によって実行された変換演算の効果を逆転させ、それによって、再構成された残差データを生成し得る。逆変換モジュール710は、再構成された残差データを再構成ユニット712に与える。再構成ユニット712は、動き補償ユニット702及びイントラ予測ユニット704から予測ブロックを受け取る。再構成ユニット712はまた、逆変換モジュール710から、対応する再構成された残差データを受け取る。再構成ユニット712は、CUの再構成された残差データとCUの予測ブロックとを使用して、CUのための再構成されたサンプルブロックを生成する、再構成演算を実行する。様々な例において、再構成ユニット712は様々な再構成演算を実行し得る。例えば、再構成ユニット712は、CUの再構成された残差データ中のサンプルにCUの予測ブロック中の対応するサンプルを加算することによって、CUの再構成されたサンプルブロックを生成し得る。CUのための再構成されたサンプルブロックを生成した後に、再構成ユニット712は、再構成されたサンプルブロックを出力する。再構成ユニット712はまた、再構成されたサンプルブロックを参照フレーム記憶部714に与える。参照フレーム記憶部714は、再構成されたサンプルブロックを記憶する。動き補償ユニット702及び/又はイントラ予測ユニット704は、その後、再構成されたサンプルブロックを使用して追加の予測ブロックを生成し得る。図8は、インター予測ユニット304によって実行される例示的なフレーム間コード化演算800を示すフローチャートである。符号化ユニット104がフレーム間コード化演算800を開始した後、動き推定ユニット602は、CUのPUに対して動き推定演算を実行する802。幾つかの事例では、動き推定ユニット602は、PUの参照サンプルについて参照フレームの探索領域内を探索することによってPUの動き推定演算を実行し得る。PUの参照サンプルは、PUの予測ツリーによって指定された予測領域に対応する参照フレームの一部分であり得る。動き推定ユニット602がPUの参照サンプルを見つけた場合、動き推定ユニット602は、PUとPUの参照サンプルとの間の位置の差異を示す動きベクトルを生成し得る。他の事例では、動き推定ユニット602は、PUの動きベクトルを予測し得る。この一般的な枠組内で、動き推定ユニット602の様々な例は、動き推定演算を様々な方法で実行し得る。例えば、PUに対応する参照フレームの部分を探索するとき、動き推定ユニット602の異なる例は異なる探索領域を使用し得る。幾つかのそのような例では、符号化ユニット104は、動き推定ユニット602によって使用される探索領域のサイズを制御する探索領域パラメータを有する。探索領域パラメータの値は、人間のユーザによって、又はコンピュータプログラムによって設定され得る。CUのPUに対して動き推定演算を実行した後に、動き補償ユニット604は、動き補償演算を実行してCUの予測ブロックを生成する804。更に、演算800の実行中に、平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行する演算を実行する806。この平滑化演算は、予測ブロックの遷移ゾーン中のサンプルを平滑化し得る。遷移ゾーンは、CUの異なるPUに関連する予測ブロックのサンプル間の境界において生じ得る。例えば、遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、第2のPUに関連する予測ブロックのサンプルとの間の境界において生じ得る。予測ブロックのサンプルが、PUの予測ツリーによって指定された予測領域内にあるとき、そのサンプルはPUに関連し得る。幾つかの例では、遷移領域中のサンプルを平滑化することにより、そのサンプルと、そのサンプルに隣接するサンプルとの間の差異が低減され得る。本開示における他の場所で説明したように、平滑化ユニット608は、平滑化演算を実行することによって、CUの復号されたサンプルブロックのコード化効率及び/又は視覚的外観を改善し得る。様々な例において、平滑化ユニット608は様々な平滑化演算を実行する。本開示における他の場所で詳細に説明する図12~図18及び図20に、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するために平滑化ユニット608によって実行される例示的な演算を示す。更に、TU生成ユニット606は、CUのためのTUのサイズを選択する変換選択演算を実行する808。上記で説明したように、変換モジュール312はCUの残差データを受け取り得る。変換モジュール312は、次いで、CUの各TUに対して変換演算を実行し得る。変換モジュール312がTUに対して変換演算を実行するとき、変換モジュール312は、TUに対応する残差データのサンプルに変換を適用し、それによってTUの変換係数ブロックを生成し得る。残差データのサンプルが、TUの変換ツリーによって指定された変換領域内にあるとき、そのサンプルはTUに対応し得る。符号化ユニット104中の逆変換ユニット320及び復号ユニット106中の逆変換モジュール710はまた、変換係数ブロックをサンプルブロックに変換するとき、選択された変換サイズを有する変換を使用する。更に、インター予測ユニット304はインター予測シンタックス要素を生成する810。インター予測シンタックス要素は、CUと予測ブロックとに関する情報を提供し得る。例えば、インター予測シンタックス要素は、CUが2つ以上のPUを有するかどうかを示すシンタックス要素を含み得る。この例では、CUが2つ以上のPUを有する場合、インター予測シンタックス要素はまた、PUの予測領域のサイズ、形状、及び/又は位置を示し得る。別の例では、インター予測シンタックス要素は、CUのPUのためのインター予測モードを指定し得る。更に、インター予測シンタックス要素は、CUのPUのうちの1つ以上の動きベクトルに基づくデータを含み得る。別の例では、インター予測シンタックス要素は、CUのTUのサイズ及び/又は位置を示し得る。幾つかの例では、インター予測シンタックス要素のセットは、H.264MPEGPart10規格によって指定されたインター予測シンタックス要素の一部又は全部を含む。モード選択ユニット302が、ステップ804において生成された予測ブロックを選択した場合、インター予測ユニット304は、予測ブロックを残差生成ユニット310及び再構成ユニット322に出力し得る。更に、モード選択ユニット302が、ステップ804において生成された予測ブロックを選択した場合、モード選択ユニット302は、CUのコード化ノード、予測ツリー及び/又は変換ツリーにインター予測シンタックス要素を含め得る。図9は、例示的な矩形区分モードを示す概念図である。上記で手短に説明したように、動き推定ユニット602は、CUのための1つ以上のPUを生成し得る。PUの各々は、予測領域のサイズ及び位置を指定する予測ツリーを有し得る。予測領域の各々は、CUのサンプルブロックの異なる区分に対応し得る。説明を簡単にするために、本開示では、PUの予測ツリーによって指定された予測領域が、CUのサンプルブロックの区分に対応するとき、PUはCUのサンプルブロックの区分に対応すると説明することがある。様々な例において、動き推定ユニット602は、CUのPUを生成するために様々な区分モードを使用し得る。そのような区分モードは矩形区分モードを含み得る。矩形区分モードでは、PUは、CUのサンプルブロックの矩形区分に対応する。幾つかの例では、動き推定ユニット602は、H.264MPEGPart10規格において定義されている一部又は全部の矩形区分モードを使用することが可能である。図9の例は、矩形区分モード900A~H総称して矩形区分モード900を示している。矩形区分モード900Aでは、動き推定ユニット602は、CUのための単一のPUを生成する。このPUの予測領域は、CUのサンプルブロックと同じサイズである。矩形区分モード900Bでは、動き推定ユニット602は、CUのための4つのPUを生成する。矩形区分モード900Bを使用して生成されたPUは、CUのサンプルブロックの4つの等しいサイズの区分に対応する。矩形区分モード900C~900Hでは、動き推定ユニット602は、CUのための2つのPUを生成する。矩形区分モード900Cを使用して生成されたPUは、CUのサンプルブロックの等しいサイズの水平方向に分割された区分に対応する。矩形区分モード900Dを使用して生成されたPUは、CUのサンプルブロックの等しいサイズの垂直方向に分割された区分に対応する。矩形区分モード900Eを使用して生成されたPUは、サンプルブロックの水平方向に分割された区分に対応し、下のほうの区分が上のほうの区分よりも大きい。幾つかの例では、動き推定ユニット602は、サンプルブロックの水平中央線より上方でサンプルブロック中の任意のサンプルにおいて水平方向にサンプルブロックを区分し得る。矩形区分モード900Fを使用して生成されたPUは、サンプルブロックの水平方向に分割された区分に対応し、下のほうの区分が上のほうの区分よりも小さい。幾つかの例では、動き推定ユニット602は、サンプルブロックの水平中央線より下方でサンプルブロック中の任意のサンプルにおいて水平方向にサンプルブロックを区分し得る。矩形区分モード900Gを使用して生成されたPUは、サンプルブロックの垂直方向に分割された区分に対応し、左区分が右区分よりも小さい。幾つかの例では、動き推定ユニット602は、サンプルブロックの垂直中央線の左側でサンプルブロック中の任意のサンプルにおいて垂直方向にサンプルブロックを区分し得る。矩形区分モード900Hを使用して生成されたPUは、サンプルブロックの垂直方向に分割された区分に対応し、左区分が右区分よりも大きい。幾つかの例では、動き推定ユニット602は、サンプルブロックの垂直中央線の右側でサンプルブロック中の任意のサンプルにおいて垂直方向にサンプルブロックを区分し得る。図10は、例示的な幾何学的区分モードを示す概念図である。幾つかの例では、動き推定ユニット602は、CUのための2つのPUを生成するために幾何学的区分モードを使用する。動き推定ユニット602が、CUのためのPUを生成するために幾何学的区分モードを使用するとき、PUはCUのサンプルブロックの区分に対応し、サンプルブロックの境界は必ずしもサンプルブロックのエッジに直角に交わるとは限らない。図10の例では、動き推定ユニット602は、幾何学的区分モードを使用して、サンプルブロック1000を第1の区分1002と第2の区分1004とに区分している。区分線1006が第1の区分1002と第2の区分1004とを分離する。説明を簡単にするために、図10は、サンプルブロック1000の垂直中央線1008と水平中央線1010とを示している。2つのパラメータが、サンプルブロック1000を区分するために使用される幾何学的区分モードを定義する。本開示では、これらの2つのパラメータをθ及びρと呼ぶ。θパラメータは、線1014がサンプルブロック1000の中心点から展開する角度1012を示す。ρパラメータは、線1014の長さ1016を示す。従って、θ及びρパラメータは、サンプルブロック1000内の点1018を示す極座標として働く。区分線1006は、区分線1006が線1014に直角に交わるように定義される。図10の例では、区分線1006がサンプルブロック1000のエッジに交わる角度1020は直角でない。このようにして、θ及びρパラメータは区分線1006の位置を定義する。θ及びρパラメータの様々な値を使用することによって、動き推定ユニット602は、サンプルブロック1000を区分する様々な線を定義し得る。区分線1006及び線1014は、必ずしもサンプルブロック1000中に視覚的に存在するとは限らず、図10では、サンプルブロック1000がどのように幾何学的に区分されるかを示すために図示されている。図11は、CUの予測ブロック1202の遷移ゾーン1200を示す概念図である。図11の例では、予測ブロック1202は、CUの第1のPUに関連するサンプル1204と、CUの第2のPUに関連するサンプル1206とを含む。区分線1208がサンプル1204をサンプル1206から分離している。遷移ゾーン1200は、サンプル1204とサンプル1206との間の境界において生じる予測ブロック1202の部分である。図11の例では、遷移ゾーン1200中のサンプルはブロックとして示されている。以下で詳細に説明する図12~図18及び図20に、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算を示す。これらの例示的な演算の各々において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。幾つかの状況では、CUのコード化効率は、遷移ゾーン中のサンプルを平滑化することによって高められ得る。他の状況では、CUのコード化効率は、遷移ゾーン中のサンプルを平滑化することによって減少させられ得る。従って、遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行することによって、符号化ユニット104は、CUのコード化効率を高め得る。図12は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算1250を示すフローチャートである。平滑化ユニット608は、図13~図18及び図20に示す例示的な演算の代替として演算1250を実行し得る。上記で説明したように、残差生成ユニット310は、残差データを生成するために、CUのサンプルから予測ブロックのサンプルを減算し得る。インター予測ユニット304は、CUのための1つ以上のTUを生成し得る。TUの各々は変換領域を指定する。CUの残差データはTUの間で区分される。説明を簡単にするために、本開示では、TUの変換領域内のCUの残差データの部分がTU内にあるものとして説明することがある。各TUについて、変換モジュール312は、TUの変換係数ブロックを生成するために、TU中のCUの残差データの部分に変換を適用する。TUの変換領域がPUの予測領域と重複するとき、CUのTUは、CUの2つ以上のPUにわたり得る。CUのTUがCUの2つ以上のPUにわたるとき、PU間の区分線の両側にあるサンプル間に色又は輝度の鋭い不連続性がある可能性が高い。幾つかの例では、変換モジュール312が、鋭い不連続性をもつサンプルを有しないTUに変換を適用するときよりも、変換モジュール312が、鋭い不連続性をもつサンプルを有するTUに変換を適用するときに、変換モジュール312は、より多くの有効即ち、非0係数を有する変換係数ブロックを生成する。遷移ゾーン中のサンプルに平滑化フィルタを適用することにより、異なるPUに関連する予測ブロックの部分間の区分線の両側にあるサンプル間の色又は輝度の不連続性が低減され得る。平滑化フィルタを適用することによって不連続性が低減され得るので、変換モジュール312はより少ない有効係数を有する変換係数ブロックを生成し得る。しかしながら、TUが完全に1つのPU内で生じる場合、TU中のサンプルに平滑化フィルタを適用することにより、CUの予測ブロックとCUの元のサンプルブロックとの間の差異が増加し得、その結果、残差データがより複雑になり得る。変換モジュール312は、より複雑な残差データのためにより多くの有効係数を有する変換係数ブロックを生成し得る。平滑化ユニット608が演算1250を開始した後、平滑化ユニット608は、CUのTUがCUの複数のPUにわたるかどうかを決定する1252。CUのTUがCUの複数のPUにわたると平滑化ユニット608が決定した場合、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、CUのTUがCUの複数のPUにわたると平滑化ユニット608が決定した場合1252のYES、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別し1254、遷移ゾーン中のサンプルに対して平滑化演算を実行する1256。そうではなく、TUが複数のPUにわたらないと平滑化ユニット608が決定した場合1252のNO、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない1258。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図20に示す例示的な遷移サンプル識別演算、又は図21に示す例示的な遷移サンプル識別演算を使用し得る。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルに対して重複ブロック動き補償OBMC:OverlappedBlockMotionCompensation平滑化演算を実行し得る。OBMC平滑化演算では、平滑化ユニット608は、遷移ゾーン中のサンプルの各々について2つの予測を生成する。平滑化ユニット608は、PUのうちの1つの動きベクトルによって示される参照フレームのサンプルを識別することによって、所与のサンプルのための第1の予測を生成する。平滑化ユニット608は、PUのうちの他方の1つの動きベクトルによって示される参照フレームのサンプルを識別することによって、所与のサンプルのための第2の予測を生成する。PUのうちの1つが動きベクトルを有しない場合、平滑化ユニット608は、所与のサンプルと同じ空間的位置において参照フレームのサンプルを識別することによって予測を生成し得る。更に、OBMC平滑化演算では、平滑化ユニット608は、遷移ゾーン中の各サンプル毎に複数の予測を融合blendする。様々な例において、平滑化ユニット608は、所与のサンプルの予測を様々な方法で融合する。例えば、平滑化ユニット608は、予測の重み付き平均を計算することによって所与のサンプルの予測を融合し得る。様々な例において、平滑化ユニット608は予測に異なる重みを与え得る。例えば、平滑化ユニット608は、所与のサンプルを含んでいるPUの動きベクトルに基づいて予測に3/4の重みを与え得、他方のPUの動きベクトルに基づいて予測に1/4の重みを与え得る。他の例では、平滑化ユニット608は、フィルタベースの平滑化演算を実行し得る。平滑化ユニット608がフィルタベースの平滑化演算を実行するとき、平滑化ユニット608は、遷移ゾーン中のサンプルに1つ以上のフィルタを適用し得る。そのようなフィルタベースの平滑化演算では、平滑化ユニット608は、遷移ゾーン中の識別されたサンプルに様々な平滑化フィルタを適用し得る。この例では、平滑化ユニット608は、遷移ゾーン中の各サンプルに以下の3×3平滑化フィルタを適用し得る。この例では、平滑化ユニット608が所与のサンプルに平滑化フィルタを適用するとき、所与のサンプルの新しい値の1/15が所与のサンプルの上方左側のサンプルに基づき、新しい値の2/15が所与のサンプルの上方のサンプルに基づき、新しい値の1/15が所与のサンプルの上方右側のサンプルに基づき、新しい値の2/15が所与のサンプルの左側のサンプルに基づき、新しい値の3/15が所与のサンプルの現在値に基づき、新しい値の2/15が所与のサンプルの右側のサンプルに基づき、新しい値の1/15が所与のサンプルの下方左側のサンプルに基づき、新しい値の2/15が所与のサンプルの下方のサンプルに基づき、新しい値の1/15が所与のサンプルの下方右側のサンプルに基づく。平滑化ユニット608は、遷移ゾーン中のサンプルに他の平滑化フィルタを適用し得る。例えば、平滑化ユニット608は、異なる重みをもつ平滑化フィルタを適用し得る。別の例では、平滑化ユニット608は、他のサイズ、例えば、5×5、7×7などの平滑化フィルタを適用し得る。幾つかの例では、演算1250は、ビデオデータをコード化するための方法の一部である。本方法は、ビデオデータのフレームのCUのための予測ブロックを生成することを備える。本方法はまた、CUのTUがCUの複数のPUにわたるかどうかに基づいて、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかをコンピュータ機器が決定することを備える。遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界にある。本方法はまた、コンピュータ機器が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行することを備える。幾つかの例では、平滑化ユニット608は、TUが複数のPUにわたるかどうかに基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、TUが複数のPUにわたるかどうかに基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。図13は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1300を示すフローチャートである。平滑化ユニット608は、図12、図14~図18、及び図20に示す例示的な演算を実行することの代替として演算1300を実行し得る。平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定するために演算1300を実行し得る。演算1300では、平滑化ユニット608は、CUのPUのサイズに基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかの決定を行う。幾つかの事例では、CUのPUは比較的小さくなり得る。そのような事例では、PU間の遷移ゾーン中のサンプルを平滑化しても、画像品質が改善されないか又はコード化効率があまり高まらないことがある。平滑化ユニット608が演算1300を開始した後、平滑化ユニット608は、PUのうちの1つのサイズが所与のしきい値を下回るかどうかを決定する1302。幾つかの例では、PUのサイズは、PUの予測ツリーによって指定された予測領域のサイズである。様々な例において、平滑化ユニット608は、PUのサイズが様々なしきい値を下回るかどうかを決定し得る。例えば、PUがサイズM×Nを有する場合、平滑化ユニット608は、M又はNのいずれかかが4よりも小さいかどうかを決定し得る。幾つかの例では、所与のしきい値が符号化ユニット104及び復号ユニット106中に事前構成される。他の例では、符号化ユニット104及び復号ユニット106は、所与のしきい値をプログラム的に決定する。様々な例において、平滑化ユニット608は、PUのうちの1つのサイズが所与のしきい値を下回るかどうかを様々な方法で決定し得る。例えば、符号化ユニット104はルックアップテーブルを記憶し得る。ルックアップテーブルは、異なるPUサイズに対応するエントリを含んでいる。エントリの各々は、対応するPUサイズが所与のしきい値を上回る又は下回るかどうかを示す。PUのサイズが所与のしきい値を下回らない場合1302のNO、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。例えば、PUがサイズM×Nを有する場合、平滑化ユニット608は、M又はNのいずれかが4以上であるとき、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行い得る。従って、PUのサイズが所与のしきい値を下回らない場合1302のNO、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し1304、次いで、遷移ゾーン中のサンプルに対して平滑化演算を実行する1306。そうではなく、PUのうちの1つのサイズが所与のしきい値を下回る場合1302のYES、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきでないという決定を行う1308。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、1つ以上のOBMCベース又はフィルタベースの平滑化演算を実行し得る。他の例では、平滑化ユニット608は、平滑化ユニット608が、PUのサイズがしきい値を下回るかどうかを決定することの代わりに、変換のサイズがしきい値を下回るかどうかを決定する演算1300のバージョンを実行し得る。変換モジュール312は、予測ブロックに基づいて残差データを空間領域から周波数領域に変換するときに変換を使用し得る。従って、平滑化ユニット608は、変換のサイズに基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定し得る。幾つかの例では、演算1300は、ビデオデータをコード化するための方法の一部である。本方法は、ビデオデータのフレームのCUのための予測ブロックを生成することを備える。本方法はまた、コンピュータ機器が、CUのPUのサイズに基づいて、又は変換のサイズに基づいて、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定することを備える。遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界にある。本方法はまた、コンピュータ機器が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行することを備える。幾つかの例では、平滑化ユニット608は、PU又は変換のサイズに基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、PU又は変換のサイズに基づいて、及びCUのPUの動きベクトルに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。図14は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1400を示すフローチャートである。平滑化ユニット608は、図12、図13、図15~図18、及び図20に示す例示的な演算を実行することの代替として演算1400を実行し得る。動き推定ユニット602がCUのPUに対して動き推定演算を実行するとき、動き推定ユニット602は、PUの各々について動きベクトルを生成し得る。例えば、CUが第1のPUと第2のPUとを有する場合、動き推定ユニット602は、第1の動きベクトルと第2の動きベクトルとを生成し得る。第1の動きベクトルは、第1のPUと第1の参照サンプルとの間の空間的位置の差異を示す。第1の参照サンプルは、参照フレーム内の第1のPUに対応する領域である。第2の動きベクトルは、第2の区分単位と第2の参照サンプルとの間の空間的位置の差異を示す。第2の参照サンプルは、参照フレーム内の第2のPUに対応する領域である。平滑化ユニット608が演算1400を開始した後、平滑化ユニット608は、CUのPUのための動きベクトルを受け取る1402。平滑化ユニット608は、次いで、PUの動きベクトルに関数を適用する1404。この関数は結果値を生成する。様々な例において、平滑化ユニット608は動きベクトルに様々な関数を適用し得る。例えば、平滑化ユニット608は、他の動きベクトルから動きベクトルのうちの1つを減算した絶対値を計算する関数を適用し得る。別の例では、平滑化ユニット608は、隣接PUについて決定される動きベクトルと予測動きベクトルとの偏角に基づいて関数を適用し得る。この例では、予測動きベクトルは、隣接予測単位について決定される動きベクトルと、参照フレーム中にコロケートされた予測単位について決定される動きベクトルとのうちの1つ以上から予測され得る。動きベクトルに関数を適用した後に、平滑化ユニット608は、結果値がしきい値を超えたかどうかを決定する1406。様々な例において、平滑化ユニット608は、結果値が様々なしきい値を超えたかどうかを決定し得る。例えば、結果が動きベクトル間の差異の絶対値である場合、平滑化ユニット608は、結果値がしきい値よりも大きいかどうかを決定し得る。この例では、しきい値は1つの整数画素であり得る。幾つかの例では、しきい値は、符号化ユニット104と復号ユニット106の両方において設定される所定のパラメータである。他の例では、符号化ユニット104は、しきい値を指定するシンタックス要素を生成し、そのシンタックス要素を復号ユニット106に与え得る。例えば、符号化ユニット104は、CUに関連するシーケンスパラメータセット中のシンタックス要素としてしきい値を復号ユニット106に与え得る。関数の結果値が所与のしきい値を超えた場合1406のYES、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、関数の結果値が所与のしきい値を超えた場合1406のYES、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し1408、遷移ゾーン中のサンプルに対して平滑化演算を実行する1410。そうではなく、関数の結果値が所与のしきい値を超えない場合1406のNO、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない1412。このようにして、平滑化ユニット608は、第1の動きベクトルと第2の動きベクトルとに少なくとも部分的に基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、1つ以上のOBMCベース又はフィルタベースの平滑化演算を実行し得る。幾つかの例では、平滑化ユニット608は、動きベクトルに基づいて、及び他の要素に基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、動きベクトルに基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、動きベクトル間の差異が所与のしきい値よりも大きく、CU中のPUのサイズがしきい値を超えたとき、平滑化演算を実行すべきであるという決定を行い得る。図15は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1500を示すフローチャートである。インター予測ユニット304は、図12~14、図16~図18、及び図20に示す例示的な演算を実行することの代替として平滑化決定演算1500を実行し得る。図15の例では、平滑化ユニット608は、所与のCUのPUのインター予測方向性に基づいて、所与のCUの残差データの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。PUのインター予測方向性により、PUに関連するCUの予測ブロックの部分が、1つ又は2つの参照フレームからの参照サンプルに基づくかどうかが決定され得る。符号化ユニット104は、フレームを、イントラフレーム即ち、Iフレーム、予測フレーム即ち、Pフレーム、又は双方向予測フレーム化即ち、Bフレームとして符号化し得る。同様に、符号化ユニット104は、フレームのスライスを、イントラスライス即ち、Iスライス、予測スライス即ち、Pスライス、又は双方向スライス即ち、Bスライスとして符号化し得る。符号化ユニット104がフレーム又はスライスをIフレーム又はIスライスとして符号化する場合、フレーム又はスライス内のPUはイントラ予測PUのみであり得る。符号化ユニット104がフレーム又はスライスをPフレーム又はPスライスとして符号化する場合、フレーム又はスライス内のPUは、イントラ予測PU又は単予測PUであり得る。符号化ユニット104がフレーム又はスライスをBフレーム又はBスライスとして符号化する場合、フレーム又はスライス内のPUは、イントラ予測PU、単予測PU、又は双予測PUであり得る。動き補償ユニット604及び/又は動き補償ユニット702は、他のフレーム又はスライスと無関係にイントラ予測PUに関連する予測ブロックの部分を生成し得る。動き補償ユニット604及び/又は動き補償ユニット702は、ビデオデータ中の単一の参照フレームに基づいて単予測PUに関連する予測ブロックの部分を生成し得る。幾つかの事例では、単予測PUのみを有するCUは、単予測unipredictedCU又は単予測unipredictionCUと呼ばれることがある。動き補償ユニット604及び/又は動き補償ユニット702は、2つの参照フレームに基づいて双予測PUに関連する予測ブロックの部分を生成し得る。幾つかの事例では、1つ以上の双予測PUを含むCUは、双予測bipredictedCU又は双予測bipredictionCUと呼ばれることがある。例えば、所与のPUが単予測PUであるとき、符号化ユニット104は、所与のPUの参照サンプルについて単一の参照フレームを探索する。この単一の参照フレームは、時間的に所与のPUのフレームの前又は後に生じ得る。言い換えれば、単一の参照フレームは、LIST_0又はLIST_1中にあり得る。符号化ユニット104は、次いで、所与のPUの参照サンプルを使用して、所与のPUに関連するCUの予測ブロックの部分を生成し得る。所与のPUが双予測PUbipredictedPUであるとき、符号化ユニット104は、所与のPUのための2つの参照サンプルを取得するために2つの参照フレームを探索し得る。参照フレームのうちの1つは、時間的に所与のPUのフレームの前に生じ得、参照フレームのうちの1つは、時間的に所与のPUのフレームの後に生じ得る。CUの予測ブロックを生成するために、符号化ユニット104は、所与のPUに対してブレンディング演算を実行し得る。符号化ユニット104が所与のPUに対してブレンディング演算を実行するとき、符号化ユニット104は、所与のPUの2つの参照サンプルに基づいて所与のPUに関連する予測ブロックの部分を生成し得る。例えば、符号化ユニット104は、所与のPUの2つの参照サンプル中のサンプルの重み付き平均に基づいて所与のPUに関連する予測ブロックの部分を生成し得る。双予測PUを含まないCUの予測ブロック中のサンプルに対してOBMC平滑化演算を実行するよりも、双予測PUを含むCU即ち、双予測CUの予測ブロック中のサンプルに対してOBMC平滑化演算を実行するほうが、メモリから比較的より多くのデータが取り出される必要があり得る。従って、CUが双予測PUを含むときに平滑化演算を実行するのを控えることにより、メモリから取り出されるデータの量が減少し、符号化プロセス又は復号プロセスが加速され得る。図15の例に示すように、平滑化ユニット608は、CUが双予測PUを有するかどうかを決定する1502。CUが双予測PUを有しない場合1502のNO、平滑化ユニット608は、CUの予測ブロックの遷移ゾーンのサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、CUが双予測PUを有しない場合1502のNO、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し1504、遷移ゾーン中のサンプルに対して平滑化演算を実行する1506。他の例では、平滑化ユニット608は、CUが双予測PUを有するとき、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行い得る。別の例では、CUは2つのPUを有し得、それらのPUのうちの1つは双予測PUである。OBMC平滑化演算を実行するために、平滑化ユニット608は、前に説明したように、メモリから取り出されるデータの量を増加させ得る双予測PUの2つの参照サンプルを使用して遷移領域中のサンプルのサブセットを導出する必要があり得る。従って、この例では、平滑化ユニット608は、双予測PUに関連する遷移領域のサンプルのサブセットに対してOBMC平滑化演算を実行すべきでないという決定を行い得る。平滑化ユニット608はまた、他のPUが双予測PUであるかどうかに基づいて、他のPUに関連する遷移領域の他のサンプルに対してOBMC平滑化演算を実行すべきであるという決定を行い得る。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、1つ以上のOBMCベース又はフィルタベースの平滑化演算を実行し得る。そうではなく、CUが双予測PUを有する場合1502のYES、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行しない1508。従って、CUが双予測PUを有する場合、平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに平滑化演算を適用しない。このようにして、平滑化ユニット608は、CUのPUのインター予測方向性、及び、従ってCUのインター予測方向性に基づいて、平滑化演算を実行すべきかどうかの決定を行う。幾つかの例では、平滑化ユニット608は、CUのPUのインター予測方向性に基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、PUのインター予測方向性に基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、CUが双予測PUを有しなく、CU中のPUのサイズがしきい値を超えたとき、平滑化演算を実行すべきであるという決定を行い得る。図16は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1600を示すフローチャートである。平滑化ユニット608は、図12~図15、図17、図18、及び図20の例に示す演算を実行することの代替として演算1600を実行し得る。インター予測ユニット304が演算1600を実行すると、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別する1602。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。遷移ゾーン中のサンプルを識別した後に、平滑化ユニット608は、CUの異なるPUに関連する遷移ゾーン中のサンプル間の差異の量を決定する1604。例えば、平滑化ユニット608は、CUの第1のPUに関連する遷移ゾーン中のサンプルと、CUの第2のPUに関連する遷移ゾーン中のサンプルとの間の差異の量を決定し得る。平滑化ユニット608は、次いで、区分線の両側にあるサンプル間の差異の量が所与のしきい値を超えるかどうかを決定する1606。異なる例では、平滑化ユニット608は、差異の量が様々なしきい値を超えるかどうかを決定する。例えば、平滑化ユニット608は、区分線の両側にある対応するサンプル間の差異の量が2よりも大きいかどうかを決定し得る。幾つかの例では、人間のユーザが所与のしきい値を構成し得る。他の例では、符号化ユニット104及び復号ユニット106は、プログラム的に所与のしきい値を決定する。区分線の両側にあるサンプル間の差異が所与のしきい値を超えた場合1606のYES、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行し得る1608。例えば、平滑化ユニット608は、区分線の両側にある対応するサンプル間の差異が2以下である場合、遷移ゾーン中のサンプルに対して平滑化演算を実行し得る。様々な例において、平滑化ユニット608はサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、遷移ゾーン中のサンプルに対してOBMCベース又はフィルタベースの平滑化演算を実行し得る。そうではなく、区分線の両側にあるサンプル間の差異が所与のしきい値を超えない場合1606のNO、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない1610。このようにして、平滑化ユニット608は、CUの1つのPUに関連する遷移ゾーン中のサンプルと、CUの別のPUに関連する遷移ゾーン中のサンプルとの間の差異の量に少なくとも部分的に基づいて、平滑化演算を実行すべきかどうかを決定し得る。幾つかの例では、平滑化ユニット608は、異なるPUに関連する遷移ゾーン中のサンプル間の差異の量に基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、異なるPUに関連する遷移ゾーン中のサンプル間の差異の量に基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。図17は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1700を示すフローチャートである。平滑化ユニット608は、図12~16、図18、及び図20に示す例示的な演算を実行することの代替として演算1700を実行し得る。インター予測ユニット304が演算1700を実行するとき、インター予測ユニット304は、遷移ゾーン中のサンプルに対して平滑化演算を選択的に実行し得る。言い換えれば、インター予測ユニット304は、必ずしも遷移ゾーン中のすべてのサンプルを平滑化するとは限らない。インター予測ユニット304が演算1700を実行すると、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算を実行する1702。様々な例において、平滑化ユニット608は様々な遷移サンプル識別演算を実行し得る。例えば、平滑化ユニット608は、図19に示す例示的な遷移サンプル識別演算、又は図21に示す例示的な遷移サンプル識別演算を実行し得る。遷移ゾーン中のサンプルを識別した後に、平滑化ユニット608は、遷移ゾーン中に残りのサンプルがあるかどうかを決定する1704。遷移ゾーン中に1つ以上の残りのサンプルがある場合1704のYES、平滑化ユニット608は、遷移ゾーン中の残りのサンプルのうちの1つを選択する1706。平滑化ユニット608がそのサンプルを選択した後に、平滑化ユニット608は、そのサンプルを残りのサンプルであると見なさないことがある。平滑化ユニット608は、次いで、選択されたサンプルが特定の基準を満たすかどうかを決定する1708。選択されたサンプルがその基準を満たす場合1708のYES、平滑化ユニット608は、選択されたサンプルに対して平滑化演算を実行する1710。例えば、平滑化ユニット608は、選択されたサンプルに対してOBMCベース又はフィルタベースの平滑化演算を実行し得る。選択されたサンプルが基準を満たさない場合1708のNO、平滑化ユニット608は、選択されたサンプルに対して平滑化演算を実行しない1712。いずれの場合も、平滑化ユニット608は、遷移ゾーン中に残りのサンプルがあるかどうかを再び決定する1704。遷移ゾーン中に残りのサンプルがある場合、平滑化ユニット608は、残りのサンプルに関してステップ1706、1708、1710、及び1712を繰り返し得る。様々な例において、平滑化ユニット608は、選択されたサンプルが様々な基準を満たすかどうかを決定し得る。例えば、平滑化ユニット608は、選択されたサンプルがCUの所与のPU中にある場合、選択されたサンプルが基準を満たすと決定し得る。この例では、平滑化ユニット608は、選択されたサンプルがCUの別のPU中にある場合、選択されたサンプルが基準を満たさないと決定し得る。このようにして、平滑化ユニット608は、他のPU中のサンプルにではなく、所与のPU中のサンプルに対して平滑化演算を実行し得る。例えば、平滑化ユニット608が平滑化演算を実行するとき、平滑化ユニット608は、CUの第1のPUに関連する遷移ゾーン中のサンプルは修正するが、CUの第2のPUに関連する遷移ゾーン中のサンプルは修正しない。別の例では、平滑化ユニット608はシーケンスパラメータセットSPS:sequenceparametersetを受け取り得る。この例では、平滑化ユニット608は、SPSがサンプルを指定した場合、サンプルは基準を満たすと決定し得る。この例では、平滑化ユニット608は、SPSがサンプルを指定しない場合、サンプルは基準を満たさないと決定し得る。図18は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1800を示すフローチャートである。インター予測ユニット304は、図12~17及び図20に示す例示的な演算を実行することの代替として演算1800を実行し得る。図18の例では、平滑化ユニット608は、複数の利用可能な平滑化演算の中から平滑化演算を適応的に選定する。幾つかの例では、複数の利用可能な平滑化演算の中から平滑化演算を適応的に選定することにより、コード化効率及び/又は画像品質がより高くなり得る。平滑化ユニット608が演算1800を開始した後、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルに対して第1の平滑化演算を実行すべきかどうかを決定する1802。平滑化ユニット608が、遷移ゾーン中のサンプルに対して第1の平滑化演算を実行すべきであるという決定を行った場合、1802のYES、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し1804、次いで、遷移ゾーン中のサンプルに対して第1の平滑化演算を実行する1806。様々な例において、平滑化ユニット608は、第1の平滑化演算を実行すべきであるという決定を様々な方法で行い得る。例えば、平滑化ユニット608は、第1の平滑化演算を実行すべきかどうかの決定を行うために、図12~図17に示す例示的な演算を使用し得る。この例では、平滑化ユニット608は、CUのサイズが32×32又は16×16である場合、遷移ゾーン中のサンプルに第1の平滑化演算を適用すべきであるという決定を行い得る。そうではなく、平滑化ユニット608が、第1の平滑化演算を実行すべきでないという決定を行った場合1802のNO、平滑化ユニット608は、遷移ゾーン中のサンプルに対して第2の平滑化演算を実行すべきかどうかを決定する1808。平滑化ユニット608が、遷移ゾーン中のサンプルに対して第2の平滑化演算を実行すべきであるという決定を行った場合、1808のYES、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し1810、遷移ゾーン中のサンプルに対して第2の平滑化演算を実行する1812。様々な例において、平滑化ユニット608は、第2の平滑化演算を実行すべきであるという決定を様々な方法で行い得る。例えば、平滑化ユニット608は、第2の平滑化演算を実行すべきであるという決定を行うために、図12~図17に示す例示的な演算を使用し得る。この例では、平滑化ユニット608は、CUのサイズが8×8である場合であって、CUのインター予測方向が双予測CUである場合、遷移ゾーン中のサンプルに第2の平滑化演算を適用すべきであるという決定を行い得る。従って、平滑化ユニット608が演算1800を実行するとき、平滑化ユニット608は、上記で説明した演算の組合せに基づいて平滑化演算を実行すべきかどうかを決定し得る。第1の平滑化演算を実行した後に、第2の平滑化演算を実行した後に、又は第2の平滑化演算を実行すべきでないとう決定を行った後に、平滑化ユニット608は、遷移ゾーン中のサンプルに対して、もしあったら、どの平滑化演算が実行されたかを示すシンタックス要素を出力する1814。符号化ユニット104中の動き補償ユニット604は、CUを参照フレームの一部として再構成するときにこのシンタックス要素を使用し得る。更に、復号ユニット106中の動き補償ユニット702は、CUの予測ブロックを再構成するときにこのシンタックス要素を使用し得る。第1の平滑化演算及び第2の平滑化演算は、同じタイプ又は異なるタイプの平滑化演算であり得る。例えば、第1の平滑化カーネルが第1の平滑化演算を構成し、第2の平滑化カーネルが第2の平滑化演算を構成し得る。この例では、カーネルは、平滑化フィルタによって実行される平滑化のタイプ及び範囲を定義する。この例では、平滑化ユニット608は、変換のサイズと、CUのPUのサイズと、隣接PUについて決定される動きベクトル及び予測動きベクトルの偏角とに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行い得る。この例では、動きベクトルは、隣接予測単位について決定される動きベクトルと、参照フレーム中において同位置の予測単位に対して決定される動きベクトルとのうちの1つ以上から予測され得る。別の例では、第1の平滑化演算はOBMCベースの平滑化演算であり得、第2の平滑化演算はフィルタベースの平滑化演算であり得る。第1の平滑化演算及び第2の平滑化演算は異なるタイプの平滑化演算であり得るので、第1の平滑化演算及び第2の平滑化演算は、互いに異なる予測ブロックのバージョンを生成し得る。図19は、例示的な遷移サンプル識別演算2100を示すフローチャートである。平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算2100を実行し得る。平滑化ユニット608が遷移サンプル識別演算2100を開始した後、平滑化ユニット608は隣接領域のサイズを選択する2102。言い換えれば、平滑化ユニット608は隣接領域サイズを選択する。様々な例において、平滑化ユニット608は様々な隣接領域サイズを選択し得る。例えば、平滑化ユニット608は、隣接領域サイズとして、3×3、5×5、7×7、又は別のサイズを選択し得る。様々な例において、平滑化ユニット608は隣接領域サイズを様々な方法で選択する。例えば、符号化ユニット104及び復号ユニット106は、サイズを示す所定の隣接領域サイズシンタックス要素を記憶し得る。この例では、符号化ユニット104及び復号ユニット106は、隣接領域サイズシンタックス要素を読み取り、その隣接領域サイズシンタックス要素を使用して隣接領域サイズを選択する。別の例では、符号化ユニット104は、サイズを示す隣接領域サイズパラメータを記憶する。幾つかの例では、符号化ユニット104及び/又は復号ユニット106は、人間のユーザから隣接領域サイズパラメータを受け取る。他の例では、隣接領域サイズパラメータはプログラム的に設定される。符号化ユニット104は、隣接領域サイズパラメータを使用して隣接領域サイズを選択する。更に、符号化ユニット104は、隣接領域サイズを復号ユニット106にシグナリングする。例えば、符号化ユニット104は、隣接領域サイズを示すピクチャパラメータセットPPS:pictureparameterset又はスライスパラメータセットSPS:sliceparameterset中にシンタックス要素を出力し得る。別の例では、符号化ユニット104は、平滑化ユニット608が遷移サンプル識別演算2100を実行するより前に、マルチメディアコンテンツのフレーム、現在フレーム、別のCU、CUのグループ、サブCUのグループ、現在フレームのスライス、現在フレームの2つ以上の部分、又はマルチメディアコンテンツの別の一部を含むピクチャのグループのための隣接領域サイズを選択し得る。この例では、符号化ユニット104は、幾つかの基準に基づいて隣接領域サイズを選択し、選択されたネイバーサイズをデコーダに明示的にシグナリングし得る。平滑化ユニット608は、CUに関連するマルチメディアコンテンツの一部のために以前に選択された隣接領域サイズに基づいて隣接領域サイズを選択する。更に別の例では、平滑化ユニット608は、CUの特性に基づいて隣接領域サイズを選択し得る。様々な例において、平滑化ユニット608は、CUの様々な特性に基づいて隣接領域サイズを選択し得る。例えば、平滑化ユニット608は、CUのサイズに基づいて隣接領域サイズを選択し得る。別の例では、平滑化ユニット608は、CU中のPUの動きベクトルに基づいて隣接領域サイズを選択し得る。この例では、平滑化ユニット608は、動きベクトルの偏角に基づいて隣接領域サイズを選択し得る。更に別の例では、平滑化ユニット608は、CUのPUの予測モード即ち、スキップモード、ダイレクトモード、フレーム間モード、又はフレーム内モードに基づいて隣接領域サイズを選択し得る。更に別の例では、平滑化ユニット608は、予測ブロック中のサンプルの差異に基づいて隣接領域サイズを選択し得る。更に別の例では、平滑化ユニット608は、ビデオデータ中の他のCUを符号化した結果に基づいて隣接領域サイズを選択し得る。例えば、平滑化ユニット608は、より大きい隣接領域サイズを使用して他のCUについて生成される予測ブロックが、より小さい隣接領域サイズを使用して生成される予測ブロックよりも少ないひずみを生じると決定し得、又はその逆も同様である。他の例では、隣接領域サイズは、前の1つの符号化CUの区分モード、前の複数の符号化CUの区分モード、前の符号化CUの動きベクトルに基づいて決定され得る。この決定に基づいて、平滑化ユニット608は、最も低いひずみレベルとともに予測ブロックを生成する傾向がある隣接領域サイズを選択し得る。隣接領域サイズを選択した後に、平滑化ユニット608は遷移ゾーン中のサンプルを識別する。以下で説明するように、隣接領域が、CUの所与のPUに関連するサンプルを含んでおり、またCUの別のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの所与のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。遷移ゾーン中のサンプルを識別するために、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを決定する2104。予測ブロック中に1つ以上の残りのサンプルがある場合2104のYES、平滑化ユニット608は残りのサンプルのうちの1つを選択する2106。平滑化ユニット608がそのサンプルを選択した後に、平滑化ユニット608は、そのサンプルを予測ブロックの残りのサンプルであると見なさない。平滑化ユニット608は、次いで、選択されたサンプルに関連するPUを識別する2108。次に、平滑化ユニット608は、隣接領域中のサンプルを識別する2110。隣接領域は、選択された隣接領域サイズを有し、選択されたサンプルを含んでいる予測ブロックのゾーンである2110。幾つかの例では、隣接領域は、選択されたサンプルを中心とする。例えば、隣接領域が3×3方形である場合、選択されたサンプルは、3×3方形の中央サンプルであり得る。別の例では、隣接領域は、選択されたサンプルを中心としない。例えば、隣接領域が3×3方形である場合、選択されたサンプルは、3×3方形の上端、下端、左端、又は右端にあり得る。従って、隣接領域が、選択されたサンプルを中心としない場合、遷移ゾーンは、他のPUよりも1つのPU中に更に展開し得る。幾つかの例では、インター予測ユニット304は、平滑化ユニット608を使用して遷移サンプル識別演算2100を複数回実行し得る。例えば、平滑化ユニット608は、1回は、選択されたサンプルを中心とする隣接領域とともに、1回は、選択されたゾーンを中心としない隣接領域とともに、遷移サンプル識別演算2100を実行し得る。インター予測ユニット304は、隣接領域が選択されたサンプルを中心とするとき、又は隣接領域が選択されたサンプルを中心としないとき、予測ブロックがより少ないひずみを有するかどうかを評価し得る。インター予測ユニット304は、より少ないひずみを有する予測ブロックを選択し得る。隣接領域中のサンプルを識別した後に、平滑化ユニット608は、隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPU中にあるかどうかを決定する2112。隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPU中にある場合2112のYES、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にあると識別する2114。そうではなく、隣接領域中のサンプルのいずれも、選択されたサンプルとは異なるPU中にない場合2112のNO、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にないと識別する2116。いずれの場合も、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを再び決定する2104。予測ブロック中に残りのサンプルがある場合、平滑化ユニット608は、予測ブロック中の残りのサンプルに関してステップ2106、2108、2110、2112、2114、及び2116を繰り返し得る。予測ブロック中に残りのサンプルがない場合2104のNO、平滑化ユニット608は遷移サンプル識別演算2100を終了する。図20は、平滑化ユニット608の別の例示的な演算2200を示すフローチャートである。平滑化ユニット608が演算2200を開始した後、平滑化ユニット608は、CUの予測ブロックの第1の遷移ゾーン中のサンプルを識別する2202。様々な例において、平滑化ユニット608は、第1の遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット608は、予測ブロック中のサンプルをテストし得る。平滑化ユニット608が所与のサンプルをテストするとき、平滑化ユニット608は、隣接領域中のサンプルが、所与のサンプルとは異なる、CUのPUに関連するかどうかを決定し得る。この例では、隣接領域は様々なサイズを有し得る。例えば、隣接領域は3×3方形であり得る。平滑化ユニット608は、次いで、予測ブロックの第2の遷移ゾーン中のサンプルを識別する2204。様々な例において、平滑化ユニット608は、第2の遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット608は、予測ブロック中のサンプルをテストし得る。この例では、平滑化ユニット608が所与のサンプルをテストするとき、平滑化ユニット608は、隣接領域中のサンプルが、所与のサンプルとは異なる、CUのPUに関連するかどうかを決定する。この例では、平滑化ユニット608は、第2の遷移ゾーン中の予測ブロックのサンプルを識別し得、CUの第1のPUに関連するサンプルを含んでいる隣接領域が、CUの第2のPUに関連するサンプルを含んでいる場合、CUの第1のPUに関連するサンプルは第2の遷移ゾーン中にある。この例では、第2のPUに関連するサンプルを含んでいる隣接領域が、第1のPUに関連するサンプルを含んでいる場合、第2のPUに関連するサンプルは第2の遷移ゾーン中にある。この例では、隣接領域は、所与のサンプルを含む予測ブロックのゾーンである。隣接領域のサイズは、第1の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズとは異なり得る。例えば、第1の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズは3×3であり得、第2の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズは5×5であり得る。平滑化ユニット608は、次いで、第1の遷移ゾーン中のサンプルに対して第1の平滑化演算を実行する2206。平滑化ユニット608は、第2の遷移ゾーン中のサンプルに対して第2の平滑化演算を実行する2208。第2の平滑化演算は第1の平滑化演算とは異なり得る。例えば、第1の平滑化演算と第2の平滑化演算は、両方ともOBMCベースの平滑化演算であり得る。但し、この例では、OBMCベースの平滑化演算は、予測サンプルを別様に融合し得る。例えば、OBMCベースの平滑化演算は、異なるPUからの予測に対して異なる重みを使用し得る。例えば、この例では、サンプルが、CUの第1のPUに関連し、また第1の遷移ゾーン中にある場合、平滑化ユニット608は、第1のPUからの予測に対して重み3/4を使用し、CUの第2のPUからの予測に対して1/4の重みを使用し得る。この例では、サンプルが、第1のPUに関連し、また第2の遷移ゾーン中にある場合、平滑化ユニット608は、第1のPUからの予測に対して7/8の重みを使用し、第2のPUからの予測に対して1/8の重みを使用し得る。別の例では、平滑化演算のうちの1つはOBMCベースの平滑化演算であり得、平滑化演算のうちの1つはフィルタベースの平滑化演算であり得る。更に別の例では、第1の平滑化演算と第2の平滑化演算は、両方ともフィルタベースの平滑化演算であり得る。但し、この例では、第1の平滑化演算と第2の平滑化演算とにおいて使用されるフィルタは異なり得る。このようにして、平滑化ユニット608は、予測ブロックの異なる部分を異なる方法で平滑化し得る。これにより、コード化効率が高まり、及び/又はひずみの量が低くなり得る。図21は、別の例示的な遷移サンプル識別演算2300を示すフローチャートである。平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算2300を実行し得る。平滑化ユニット608が遷移サンプル識別演算2300を開始した後、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを決定する2302。予測ブロック中に1つ以上の残りのサンプルがある場合2304のYES、平滑化ユニット608は残りのサンプルのうちの1つを選択する2304。平滑化ユニット608がそのサンプルを選択した後に、平滑化ユニット608は、そのサンプルを予測ブロックの残りのサンプルであると見なさない。平滑化ユニット608は、次いで、選択されたサンプルに関連するCUのPUを識別する2306。次に、平滑化ユニット608は、選択されたサンプルに関連するPUに関連する隣接領域サイズを選択する2308。異なるPUは異なる隣接領域サイズに関連し得る。例えば、CUは、第1のPUと、第2のPUとを有し得る。この例では、第1のPUは3×3サンプルの隣接領域サイズに関連し得、第2の領域PUは5×5サンプルの隣接領域サイズに関連し得る。この例では、選択されたサンプルが第1のPUに関連する場合、平滑化ユニット608は、3×3サンプルの隣接領域サイズを選択する。この例では、選択されたサンプルが第2のPUに関連する場合、平滑化ユニット608は、5×5サンプルの隣接領域サイズを選択する。様々な例において、PUは、隣接領域サイズに様々な方法で関連し得る。例えば、符号化ユニット104及び復号ユニット106は、PUに関連する隣接領域サイズを別々に示すデータを記憶し及び/又は受け取り得る。別の例では、符号化ユニット104及び復号ユニット106は、第1のPUに関連する隣接領域サイズを示すデータを記憶し及び/又は受け取り得る。この例では、符号化ユニット104及び復号ユニット106は、第1のPUに関連する隣接領域サイズから、第2のPUに関連する隣接領域サイズを導出し得る。平滑化ユニット608は、次いで、隣接領域中のサンプルを識別する2310。隣接領域は、選択された隣接領域サイズを有し、選択されたサンプルを含んでいる予測ブロックのゾーンである。上記で説明した例示的な遷移サンプル識別演算2100と同様に、隣接領域は、選択されたサンプルを中心とすることも、又は選択されたサンプルを中心としないこともある。隣接領域中のサンプルを識別した後に、平滑化ユニット608は、隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPUに関連するかどうかを決定する2312。隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPUに関連する場合2312のYES、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にあると識別する2314。そうではなく、隣接領域中のサンプルのいずれも、選択されたサンプルとは異なるPUに関連しない場合2312のNO、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にないと識別する2316。いずれの場合も、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを再び決定する2302。予測ブロック中に残りのサンプルがある場合、平滑化ユニット608は、予測ブロック中の残りのサンプルに関してステップ2304、2306、2308、2310、2312、2314、及び2316を繰り返し得る。予測ブロック中に残りのサンプルがない場合2302のNO、平滑化ユニット608は遷移サンプル識別演算2300を終了する。幾つかの事例では、遷移サンプル識別演算2300は、ビデオデータのフレーム中のCUのための予測ブロックを生成することであって、CUが第1のPUと第2のPUとを有する、生成することを備える方法を実施する。本方法はまた、予測ブロック中の第1のサンプルを選択することと、第1のサンプルが第1のPUに関連すると決定することとを備える。本方法はまた、第1のPUが第1の隣接領域サイズに関連すると決定することによって第1の隣接領域サイズをコンピュータ機器が選択することを備える。本方法はまた、第1の隣接領域サイズを有する隣接領域が、第1のサンプルを含んでおり、また第2のPUに関連するサンプルを含んでいるとき、第1のサンプルが第1の遷移ゾーン内にあると識別することを備える。本方法はまた、予測ブロック中の第2のサンプルを選択することと、第2のサンプルが第2のPUに関連すると決定することと、第2のPUが第2の隣接領域サイズに関連する決定することとを備える。第2の隣接領域サイズは第1の隣接領域サイズとは異なる。本方法はまた、第2の隣接領域サイズを有する隣接領域が、第2のサンプルを含んでおり、また第1のPUに関連するサンプルを含んでいるとき、第2のサンプルが第1の遷移ゾーン内にあると識別することを備える。本方法はまた、第1の遷移ゾーン中のサンプルに対して第1の平滑化演算を実行することを備える。1つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、あるいは2信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。1つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、又は2信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置、若しくは他の磁気記憶装置機器、フラッシュメモリ、又は命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスクdisk及びディスクdiscは、コンパクトディスクdiscCD、レーザディスクdisc、光ディスクdisc、デジタル多用途ディスクdiscDVD、フロッピー登録商標ディスクdisk及びブルーレイ登録商標ディスクdiscを含み、ディスクdiskは、通常、データを磁気的に再生し、ディスクdiscは、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。命令は、1つ以上のデジタル信号プロセッサDSPなどの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路ASIC、フィールドプログラマブル論理アレイFPGA、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用するプロセッサという用語は、前述の構造、又は本明細書で説明した技法の実施に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ以上の回路又は論理要素中に十分に実施され得る。本開示の技法は、ワイヤレスハンドセット、集積回路IC、又はICのセット例えば、チップセットを含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。様々な例について説明した。これら及び他の例は、以下の特許請求の範囲によって定義された本発明の範囲内に入る。