(57)【要約】      （修正有）【課題】大型マクロ・ブロックを使用してデジタル・ビデオ・データを符号化および復号するための技法を提供する。【解決手段】ビデオ・デコーダは、ピクチャのシーケンスのブロックの最小サイズを示す第１のシンタックス要素と、ピクチャのシーケンスのブロックの最大サイズを示す第２のシンタックス要素と、現在のブロックが複数のサブブロックに区分されたかどうかを示す第３のシンタックス要素と、サブブロックを符号化するために使用される符号化モードを示す第４のシンタックス要素と、を含む符号化ビットストリームを受信し、サブブロックがさらに別に符号化されたサブパーティションを含まないという決定に基づいて、サブブロックをさらに区分することなく、符号化モードにしたがって、サブブロックを復号する【選択図】図３
2020109982.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ・エンコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、
前記ブロックをパーティションに区分することと、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化することと、  前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することと、
を備える方法。
【請求項２】
前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成することをさらに備える請求項１に記載の方法。
【請求項３】
符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択することをさらに備える請求項１に記載の方法。
【請求項４】
符号化モードと前記パーティションとに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択することをさらに備える請求項３に記載の方法。
【請求項５】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項１に記載の方法。
【請求項６】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項１に記載の方法。
【請求項７】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項１に記載の方法。
【請求項８】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項１に記載の方法。
【請求項９】
前記パーティションの各々に対応する量子化パラメータ修正値を生成することと、
前記パーティションの符号化中に、前記量子化パラメータ修正値の各々に従って前記パーティションを量子化することと、
をさらに備える請求項１に記載の方法。
【請求項１０】
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、  前記ブロックをパーティションに区分することと、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化することと、  前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することと、
を行うように構成されたビデオ・エンコーダを備える装置。
【請求項１１】
前記ビデオ・エンコーダが、前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成するように構成される請求項１０に記載の装置。
【請求項１２】
前記ビデオ・エンコーダが、符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択するように構成される請求項１０に記載の装置。
【請求項１３】
前記ビデオ・エンコーダが、符号化モードと前記パーティションとに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択するように構成される請求項１２に記載の装置。
【請求項１４】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項１０に記載の装置。
【請求項１５】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項１０に記載の装置。
【請求項１６】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項１０に記載の装置。
【請求項１７】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項１０に記載の装置。
【請求項１８】
前記装置がワイヤレス通信デバイスを備える請求項１０に記載の装置。
【請求項１９】
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信するための手段と、
前記ブロックをパーティションに区分するための手段と、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化するための手段と、
前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化するための手段と、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成するための手段と、
を備える装置。
【請求項２０】
前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成するための手段をさらに備える請求項１９に記載の装置。
【請求項２１】
符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択するための手段をさらに備える請求項１９に記載の装置。
【請求項２２】
前記パーティションのイントラ符号化とインター符号化とに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択するための手段をさらに備える請求項２１に記載の装置。
【請求項２３】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項１９に記載の装置。
【請求項２４】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項１９に記載の装置。
【請求項２５】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項１９に記載の装置。
【請求項２６】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項１９に記載の装置。
【請求項２７】
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、  前記ブロックをパーティションに区分することと、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化することと、  前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することと、
をビデオ・エンコーダに行わせるための命令で符号化されたコンピュータ可読記憶媒体。
【請求項２８】
前記ビデオ・エンコーダに、前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成させるための命令をさらに備える請求項２７に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記ビデオ・エンコーダに、符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択させるための命令をさらに備える請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記ビデオ・エンコーダに、前記パーティションのイントラ符号化とインター符号化とに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択させるための命令をさらに備える請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３５】
ビデオ・デコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号することと、
を備える方法。
【請求項３６】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項３５に記載の方法。
【請求項３７】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項３５に記載の方法。
【請求項３８】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項３５に記載の方法。
【請求項３９】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項３５に記載の方法。
【請求項４０】
前記パーティションの各々について量子化パラメータ修正値を受信することであって、前記ビデオ・ブロックを復号することが、前記量子化パラメータ修正値に従って前記パーティションを逆量子化することを備える、受信することをさらに備える請求項３５に記載の方法。
【請求項４１】
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号することと、
を行うように構成されたビデオ・デコーダを備える装置。
【請求項４２】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項４１に記載の装置。
【請求項４３】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項４１に記載の装置。
【請求項４４】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項４１に記載の装置。
【請求項４５】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項４１に記載の装置。
【請求項４６】
前記装置がワイヤレス通信デバイスを備える請求項４０に記載の装置。
【請求項４７】
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信するための手段であって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信するための手段と、  前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信するための手段と、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号するための手段と、
を備える装置。
【請求項４８】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項４７に記載の装置。
【請求項４９】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項４７に記載の装置。
【請求項５０】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項４７に記載の装置。
【請求項５１】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項４７に記載の装置。
【請求項５２】
ビデオ・デコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号することと、
をビデオ・デコーダに行わせるための命令で符号化されたコンピュータ可読記憶媒体。
【請求項５３】
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含む請求項５２に記載のコンピュータ可読記憶媒体。
【請求項５４】
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含む請求項５２に記載のコンピュータ可読記憶媒体。
【請求項５５】
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含む請求項５２に記載のコンピュータ可読記憶媒体。
【請求項５６】
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有する請求項５２に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、デジタル・ビデオ・コーディングに関し、より詳細には、ブロック・ベースのビデオ・コーディングに関する。
【０００２】
本出願は、各々の全体が参照により本明細書に組み込まれる、２００８年１０月３日に出願された米国仮出願第６１／１０２，７８７号、２００９年１月１３日に出願された米国仮出願第６１／１４４，３５７号、および２００９年４月３日に出願された米国仮出願第６１／１６６，６３１号の利益を主張する。
【０００３】
本出願は、すべて本出願の譲受人に譲渡され、それらの全文がすべての目的のために参照により本明細書に明確に組み込まれる、すべて本出願と同日に出願された、一時的に代理人整理番号第０９００３３Ｕ１号、第０９００３３Ｕ３号、第０９００３３Ｕ４号によって参照される、すべて同じ名称「VIDEO CODING WITH LARGE MACROBLOCKS」を有する米国特許出願に関する。
【背景技術】
【０００４】
デジタル・ビデオ機能は、デジタル・テレビジョン、デジタル・ダイレクト・ブロードキャスト・システム、ワイヤレス・ブロードキャスト・システム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップ・コンピュータ、デジタル・カメラ、デジタル記録デバイス、ビデオゲーム・デバイス、ビデオゲーム・コンソール、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスに組み込むことができる。デジタル・ビデオ・デバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、およびそのような規格の拡張によって定義された規格に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装して、デジタル・ビデオ情報をより効率的に送信および受信する。
【０００５】
ビデオ圧縮技法では、ビデオ・シーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロック・ベースのビデオ・コーディングの場合、ビデオ・フレームまたはスライスをマクロ・ブロックに区分することができる。各マクロ・ブロックはさらに区分できる。イントラ・コード化（Ｉ）フレームまたはスライス中のマクロ・ブロックは、近傍マクロ・ブロックに関する空間的予測を使用して符号化される。インター・コード化（ＰまたはＢ）フレームまたはスライス中のマクロ・ブロックは、同じフレームまたはスライス中の近傍マクロ・ブロックに関する空間的予測、あるいは他の参照フレームに関する時間的予測を使用することができる。
【発明の概要】
【０００６】
概して、本開示では、大型マクロ・ブロックを使用してデジタル・ビデオ・データを符号化するための技法について説明する。大型マクロ・ブロックは、既存のビデオ符号化規格によって一般に規定されたマクロ・ブロックよりも大きい。たいていのビデオ符号化規格は、１６×１６ピクセル・アレイの形態のマクロ・ブロックの使用を規定する。本開示によれば、エンコーダおよびデコーダは、サイズが１６×１６ピクセルよりも大きい大型マクロ・ブロックを利用することができる。例として、大型マクロ・ブロックは、３２×３２、６４×６４、またはより大きいピクセル・アレイを有することができる。
【０００７】
ビデオ・コーディングは、ビデオ・データの圧縮をサポートするために空間的および／または時間的冗長性に依拠する。より高い空間分解能および／またはより高いフレーム・レートを用いて生成されるビデオ・フレームは、より多くの冗長性をサポートすることができる。大型マクロ・ブロックの使用は、本開示で説明するように、ビデオ・コーディング技法が、空間分解能および／またはフレーム・レートが増加するにつれて生じる、より大きい程度の冗長性を利用することを可能にし得る。本開示によれば、ビデオ・コーディング技法は、大型マクロ・ブロックのコーディングをサポートするための様々な特徴を利用することができる。
【０００８】
本開示で説明するように、大型マクロ・ブロック・コーディング技法は、大型マクロ・ブロックをパーティションに区分し、選択されたパーティションに対して、様々なパーティション・サイズおよび様々なコーディング・モード、たとえば、様々な空間（Ｉ）または時間（ＰまたはＢ）モードを使用することができる。別の例として、コーディング技法は、大型マクロ・ブロック内で非０係数を有するコード化マクロ・ブロックおよびパーティションを効率的に識別するために、階層コード化ブロック・パターン（ＣＢＰ）値を利用することができる。さらなる一例として、コーディング技法は、より好都合な結果を生じるマクロ・ブロックサイズを選択するために、大型マクロ・ブロックと小型マクロ・ブロックとを使用するコーディングによって生成されるレートひずみメトリックを比較することができる。
【０００９】
一例では、本開示は、ビデオ・エンコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを符号化することと、ブロックのサイズを示すブロック・タイプ・シンタックス情報を生成することと、符号化ブロックのコード化ブロック・パターン値を生成することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、生成することとを備える方法を提供する。
【００１０】
別の例では、本開示は、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを符号化することと、ブロックのサイズを示すブロック・タイプ・シンタックス情報を生成することと、符号化ブロックのコード化ブロック・パターン値を生成することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、生成することとを行うように構成されたビデオ・エンコーダを備える装置を提供する。
【００１１】
別の例では、本開示は、ビデオ・エンコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを符号化することと、ブロックのサイズを示すブロック・タイプ・シンタックス情報を生成することと、符号化ブロックのコード化ブロック・パターン値を生成することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、生成することとをビデオ符号化装置に行わせるための命令で符号化されたコンピュータ可読媒体を提供する。
【００１２】
追加の例では、本開示は、ビデオ・デコーダを用いて、１６×１６ピクセルよりも大きいサイズを有する符号化ビデオ・ブロックを受信することと、符号化ブロックのサイズを示すブロック・タイプ・シンタックス情報を受信することと、符号化ブロックのコード化ブロック・パターン値を受信することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、受信することと、ブロック・タイプ・シンタックス情報と符号化ブロックのコード化ブロック・パターン値とに基づいて符号化ブロックを復号することとを備える方法を提供する。
【００１３】
さらなる一例では、本開示は、１６×１６ピクセルよりも大きいサイズを有する符号化ビデオ・ブロックを受信することと、符号化ブロックのサイズを示すブロック・タイプ・シンタックス情報を受信することと、符号化ブロックのコード化ブロック・パターン値を受信することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、受信することと、ブロック・タイプ・シンタックス情報と符号化ブロックのコード化ブロック・パターン値とに基づいて符号化ブロックを復号することとを行うように構成されたビデオ・デコーダを備える装置を提供する。
【００１４】
別の例では、本開示は、１６×１６ピクセルよりも大きいサイズを有する符号化ビデオ・ブロックを受信することと、符号化ブロックのサイズを示すブロック・タイプ・シンタックス情報を受信することと、符号化ブロックのコード化ブロック・パターン値を受信することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、受信することと、ブロック・タイプ・シンタックス情報と符号化ブロックのコード化ブロック・パターン値とに基づいて符号化ブロックを復号することとをビデオ・デコーダに行わせるための命令を備えるコンピュータ可読媒体を提供する。
【００１５】
別の例では、本開示は、ビデオ・エンコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、そのブロックをパーティションに区分することと、第１の符号化モードを使用してパーティションのうちの１つを符号化することと、第１の符号化モードとは異なる第２の符号化モードを使用してパーティションのうちの別の１つを符号化することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することとを備える方法を提供する。
【００１６】
追加の例では、本開示は、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、そのブロックをパーティションに区分することと、第１の符号化モードを使用してパーティションのうちの１つを符号化することと、第１の符号化モードとは異なる第２の符号化モードを使用してパーティションのうちの別の１つを符号化することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することとを行うように構成されたビデオ・エンコーダを備える装置を提供する。
【００１７】
別の例では、本開示は、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、そのブロックをパーティションに区分することと、第１の符号化モードを使用してパーティションのうちの１つを符号化することと、第１の符号化モードとは異なる第２の符号化モードを使用してパーティションのうちの別の１つを符号化することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することとをビデオ・エンコーダに行わせるための命令で符号化されたコンピュータ可読媒体を提供する。
【００１８】
さらなる一例では、本開示は、ビデオ・デコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、そのブロックがパーティションに区分され、パーティションのうちの１つが第１の符号化モードで符号化され、パーティションのうちの別の１つが第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、ブロック・タイプ・シンタックス情報に基づいてビデオ・ブロックを復号することとを備える方法を提供する。
【００１９】
別の例では、本開示は、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、そのブロックがパーティションに区分され、パーティションのうちの１つが第１の符号化モードで符号化され、パーティションのうちの別の１つが第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、ブロック・タイプ・シンタックス情報に基づいてビデオ・ブロックを復号することとを行うように構成されたビデオ・デコーダを備える装置を提供する。
【００２０】
追加の例では、本開示は、ビデオ・デコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、そのブロックがパーティションに区分され、パーティションのうちの１つが第１の符号化モードで符号化され、パーティションのうちの別の１つが第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、ブロック・タイプ・シンタックス情報に基づいてビデオ・ブロックを復号することと、をビデオ・デコーダに行わせるための命令で符号化されたコンピュータ可読媒体を提供する。
【００２１】
別の例では、本開示は、デジタル・ビデオ・エンコーダを用いて、ビデオ・コーディング・ユニットを受信することと、１６×１６ピクセルのサイズをもつ第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第１のレートひずみメトリックを判断することと、１６×１６ピクセルよりも大きいサイズをもつ第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第２のレートひずみメトリックを判断することと、第１のレートひずみメトリックが第２のレートひずみメトリックよりも小さいとき、第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化することと、第２のレートひずみメトリックが第１のレートひずみメトリックよりも小さいとき、第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化することとを備える方法を提供する。
【００２２】
追加の例では、本開示は、ビデオ・コーディング・ユニットを受信することと、１６×１６ピクセルのサイズをもつ第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第１のレートひずみメトリックを判断することと、１６×１６ピクセルよりも大きいサイズをもつ第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第２のレートひずみメトリックを判断することと、第１のレートひずみメトリックが第２のレートひずみメトリックよりも小さいとき、第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化することと、第２のレートひずみメトリックが第１のレートひずみメトリックよりも小さいとき、第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化することとを行うように構成されたビデオ・エンコーダを備える装置を提供する。
【００２３】
別の例では、本開示は、ビデオ・コーディング・ユニットを受信することと、１６×１６ピクセルのサイズをもつ第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第１のレートひずみメトリックを判断することと、１６×１６ピクセルよりも大きいサイズをもつ第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第２のレートひずみメトリックを判断することと、第１のレートひずみメトリックが第２のレートひずみメトリックよりも小さいとき、第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化することと、第２のレートひずみメトリックが第１のレートひずみメトリックよりも小さいとき、第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化することとをビデオ・エンコーダに行わせるための命令で符号化されたコンピュータ可読媒体を提供する。
【００２４】
別の例では、本開示は、ビデオ・エンコーダを用いて、複数のビデオ・ブロックを備えるコード化ユニットを符号化することであって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、符号化することと、最大サイズ値を含むコード化ユニットのシンタックス情報を生成することであって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、生成することとを備える方法を提供する。
【００２５】
別の例では、本開示は、複数のビデオ・ブロックを備えるコード化ユニットを符号化することであって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、符号化することと、最大サイズ値を含むコード化ユニットのシンタックス情報を生成することであって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、生成することとを行うように構成されたビデオ・エンコーダを備える装置を提供する。
【００２６】
別の例では、本開示は、複数のビデオ・ブロックを備えるコード化ユニットを符号化するための手段であって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、符号化するための手段と、最大サイズ値を含むコード化ユニットのシンタックス情報を生成するための手段であって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、生成するための手段とを備える装置を提供する。
【００２７】
別の例では、本開示は、複数のビデオ・ブロックを備えるコード化ユニットを符号化することであって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、符号化することと、最大サイズ値を含むコード化ユニットのシンタックス情報を生成することであって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、生成することとをプログラマブルプロセッサに行わせるための命令で符号化されたコンピュータ可読媒体を提供する。
【００２８】
別の例では、本開示は、ビデオ・デコーダを用いて、複数のビデオ・ブロックを備えるコード化ユニットを受信することであって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、受信することと、最大サイズ値を含むコード化ユニットのシンタックス情報を受信することであって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、受信することと、最大サイズ値に従ってブロック・タイプ・シンタックス・デコーダを選択することと、選択されたブロック・タイプ・シンタックス・デコーダを使用してコード化ユニット中の複数のビデオ・ブロックの各々を復号することと、を備える方法を提供する。
【００２９】
別の例では、本開示は、複数のビデオ・ブロックを備えるコード化ユニットを受信することであって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、受信することと、最大サイズ値を含むコード化ユニットのシンタックス情報を受信することであって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、受信することと、最大サイズ値に従ってブロック・タイプ・シンタックス・デコーダを選択することと、選択されたブロック・タイプ・シンタックス・デコーダを使用してコード化ユニット中の複数のビデオ・ブロックの各々を復号することと、を行うように構成されたビデオ・デコーダを備える装置を提供する。
【００３０】
別の例では、本開示は、複数のビデオ・ブロックを備えるコード化ユニットを受信するための手段であって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、受信するための手段と、最大サイズ値を含むコード化ユニットのシンタックス情報を受信するための手段であって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、受信するための手段と、最大サイズ値に従ってブロック・タイプ・シンタックス・デコーダを選択するための手段と、選択されたブロック・タイプ・シンタックス・デコーダを使用してコード化ユニット中の複数のビデオ・ブロックの各々を復号するための手段とを提供する。
【００３１】
別の例では、本開示は、複数のビデオ・ブロックを備えるコード化ユニットを受信することであって、複数のビデオ・ブロックのうちの少なくとも１つが１６×１６ピクセルよりも大きいサイズを備える、受信することと、最大サイズ値を含むコード化ユニットのシンタックス情報を受信することであって、最大サイズ値がコード化ユニット中の複数のビデオ・ブロックのうちの最大ビデオ・ブロックのサイズを示す、受信することと、最大サイズ値に従ってブロック・タイプ・シンタックス・デコーダを選択することと、選択されたブロック・タイプ・シンタックス・デコーダを使用してコード化ユニット中の複数のビデオ・ブロックの各々を復号することと、をプログラマブルプロセッサに行わせるための命令で符号化されたコンピュータ可読媒体を提供する。
【００３２】
１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００３３】
【図１】大型マクロ・ブロックを使用してデジタル・ビデオ・データを符号化および復号する例示的なビデオ符号化および復号システムを示すブロック図。
【図２】大型マクロ・ブロックをコーディングするための技法を実装するビデオ・エンコーダの一例を示すブロック図。
【図３】大型マクロ・ブロックをコーディングするための技法を実装するビデオ・デコーダの一例を示すブロック図。
【図４Ａ】大型マクロ・ブロックの様々なレベルの中の区分を示す概念図。
【図４Ｂ】大型マクロ・ブロックの様々なパーティションへの様々なコーディング・モードの割当てを示す概念図。
【図５】大型マクロ・ブロックの様々なレベルの階層図を示す概念図。
【図６】６４×６４ピクセル大型マクロ・ブロックのコード化ブロック・パターン（ＣＢＰ）値をセットするための例示的な方法を示すフローチャート。
【図７】６４×６４ピクセル大型マクロ・ブロックの３２×３２ピクセル・パーティションのＣＢＰ値をセットするための例示的な方法を示すフローチャート。
【図８】６４×６４ピクセル大型マクロ・ブロックの３２×３２ピクセル・パーティションの１６×１６ピクセル・パーティションのＣＢＰ値をセットするための例示的な方法を示すフローチャート。
【図９】２ビットｌｕｍａ１６×８＿ＣＢＰ値を判断するための例示的な方法を示すフローチャート。
【図１０】６４×６４ピクセル大型マクロ・ブロックの例示的な構成を示すブロック図。
【図１１】Ｎ×Ｎピクセル大型ビデオ・ブロックのための最適な区分および符号化方法を計算するための例示的な方法を示すフローチャート。
【図１２】様々なパーティションと各パーティションのための選択された符号化方法とをもつ例示的な６４×６４ピクセル・マクロ・ブロックを示すブロック図。
【図１３】ビデオ・シーケンスのフレームを符号化するためのマクロ・ブロックの最適サイズを判断するための例示的な方法を示すフローチャート。
【図１４】大型マクロ・ブロックを使用してデジタル・ビデオ・データをコーディングするビデオ・エンコーダ・デコーダ（コーデック）を含む例示的なワイヤレス通信デバイスを示すブロック図。
【図１５】大型マクロ・ブロックのための階層ＣＢＰ表現の例示的なアレイ表現を示すブロック図。
【図１６】図１５の階層ＣＢＰ表現に対応する例示的なツリー構造を示すブロック図。
【図１７】コード化ユニットのビデオ・ブロックのためのブロック・ベースのシンタックスエンコーダおよびデコーダを示し、選択するために、コード化ユニットのシンタックス情報を使用するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００３４】
本開示では、大型マクロ・ブロックを使用してデジタル・ビデオ・データを符号化および復号するための技法について説明する。大型マクロ・ブロックは、既存のビデオ符号化規格によって一般に規定されたマクロ・ブロックよりも大きい。たいていのビデオ符号化規格は、１６×１６ピクセル・アレイの形態のマクロ・ブロックの使用を規定する。本開示によれば、エンコーダおよび／またはデコーダは、サイズが１６×１６ピクセルよりも大きい大型マクロ・ブロックを利用することができる。例として、大型マクロ・ブロックは、３２×３２、６４×６４、または場合によってはより大きいピクセル・アレイを有することができる。
【００３５】
概して、本開示で使用するマクロ・ブロックという用語は、Ｎ×Ｎピクセルとして表される定義されたサイズを備えるピクセル・アレイのデータ構造を指すことができ、Ｎは正の整数値である。マクロ・ブロックは、以下でより詳細に説明するように、各々が（Ｎ／２）×（Ｎ／２）ピクセル・アレイを備える４つの輝度ブロックと、各々がＮ×Ｎピクセル・アレイを備える２つのクロミナンスブロックと、マクロ・ブロック・タイプ情報とコード化ブロック・パターン（ＣＢＰ）情報とを備えるヘッダとを定義することができる。
【００３６】
従来のビデオ・コーディング規格は、通常、定義されたマクロ・ブロックサイズが１６×１６ピクセル・アレイであることを規定する。本開示で説明する様々な技法によれば、マクロ・ブロックは、Ｎが１６よりも大きいことがあるＮ×Ｎピクセル・アレイを備えることができる。同様に、従来のビデオ・コーディング規格は、インター符号化マクロ・ブロックには、一般に、単一の動きベクトルが割り当てられることを規定する。本開示で説明する様々な技法によれば、以下でより詳細に説明するように、複数の動きベクトルをＮ×Ｎマクロ・ブロックのインター符号化パーティションに割り当てることができる。「大型マクロ・ブロック」または同様のフレーズへの言及は、一般に、１６×１６よりも大きいピクセル・アレイをもつマクロ・ブロックを指す。
【００３７】
場合によっては、大型マクロ・ブロックは、画質を維持または場合によっては改善しながら、符号化効率の改善および／またはデータ送信オーバーヘッドの低減をサポートすることができる。たとえば、大型マクロ・ブロックの使用は、ビデオ・エンコーダおよび／またはデコーダが、増加した空間分解能（たとえば、１２８０×７２０または１９２０×１０８０ピクセル毎フレーム）および／または増加したフレーム・レート（たとえば、３０または６０フレーム毎秒）を用いて生成されるビデオ・データによって与えられる増加した冗長性を利用することを可能にし得る。
【００３８】
一例として、１２８０×７２０ピクセル毎フレームの空間分解能と６０フレーム毎秒のフレーム・レートとをもつデジタル・ビデオ・シーケンスは、１７６×１４４ピクセル毎フレームの空間分解能と１５フレーム毎秒のフレーム・レートとをもつデジタル・ビデオ・シーケンスよりも空間的に３６倍大きく、時間的に４倍速い。マクロ・ブロックサイズの増加によって、ビデオ・エンコーダおよび／またはデコーダは、ビデオ・データの圧縮をサポートするために、増加した空間的および／または時間的冗長性をより良く利用することができる。
【００３９】
また、より大きいマクロ・ブロックを使用することによって、所与のフレームまたはスライスについてより少数のブロックが符号化され、送信される必要があるオーバーヘッド情報の量が低減し得る。言い換えれば、より大きいマクロ・ブロックは、フレームまたはスライス当たりのコーディングされるマクロ・ブロックの総数の低減を可能にすることができる。たとえば、フレームの空間分解能が４倍だけ増加した場合、１６×１６マクロ・ブロックの４倍がフレーム中のピクセルために必要とされるであろう。この例では、６４×６４マクロ・ブロックを用いて、増加した空間分解能を扱うために必要とされるマクロ・ブロックの数が低減される。フレームまたはスライス当たりのマクロ・ブロックの数の低減によって、たとえば、シンタックス情報、動きベクトル・データなどのコーディング情報の累積量を低減することができる。
【００４０】
本開示では、マクロ・ブロックのサイズは、一般に、たとえば、６４×６４、３２×３２、１６×１６など、マクロ・ブロック中に含まれているピクセル数を指す。したがって、大型マクロ・ブロック（たとえば、６４×６４または３２×３２）は、１６×１６マクロ・ブロックよりも大きいピクセル数を含んでいるという意味で大型であるとすることができる。しかしながら、大型マクロ・ブロックの垂直寸法と水平寸法とによって画定される空間エリア、すなわち、ビデオ・フレームの垂直および水平の寸法によって画定されるエリアの一部分として画定される空間エリアは、従来の１６×１６マクロ・ブロックのエリアよりも大きいこともあり、大きくないこともある。いくつかの例では、大型マクロ・ブロックのエリアは、従来の１６×１６マクロ・ブロックと同じまたは同様とすることができる。しかしながら、大型マクロ・ブロックは、マクロ・ブロック内のより大きいピクセル数とピクセルのより高い空間的密度とによって特徴づけられるより高い空間分解能を有する。
【００４１】
マクロ・ブロックのサイズは、フレーム中のピクセル数、すなわち、フレーム中の空間分解能に少なくとも部分的に基づいて構成できる。フレームがより大きいピクセル数を有する場合、大型マクロ・ブロックは、より大きいピクセル数を有するように構成できる。一例として、ビデオ・エンコーダは、３０フレーム毎秒で表示される１２８０×７２０ピクセルフレームに対して３２×３２ピクセル・マクロ・ブロックを利用するように構成できる。別の例として、ビデオ・エンコーダは、６０フレーム毎秒で表示される１２８０×７２０ピクセルフレームに対して６４×６４ピクセル・マクロ・ブロックを利用するように構成できる。
【００４２】
エンコーダによって符号化された各マクロ・ブロックは、マクロ・ブロックの１つまたは複数の特性を記述するデータを必要とすることがある。データは、たとえば、マクロ・ブロックのサイズと、マクロ・ブロックが区分される方法と、マクロ・ブロックおよび／またはそのパーティションに適用されるコーディング・モード（空間または時間）とを表すためのマクロ・ブロック・タイプ・データを示すことができる。さらに、データは、マクロ・ブロックおよび／またはそのパーティションの動きベクトル情報を表す他のシンタックス要素とともに、動きベクトル差（ｍｖｄ）データを含むことができる。また、データは、予測後の残差情報を表すために、他のシンタックス要素とともにコード化ブロック・パターン（ＣＢＰ）値を含むことができる。マクロ・ブロック・タイプ・データは、大型マクロ・ブロックの単一のマクロ・ブロック・ヘッダ中で与えられ得る。
【００４３】
上述のように、大型マクロ・ブロックを利用することによって、エンコーダは、フレームまたはスライス当たりのマクロ・ブロックの数を低減することができ、それによって、各フレームまたはスライスのために送信される必要がある正味のオーバーヘッドの量を低減することができる。また、大型マクロ・ブロックを利用することにより、特定のフレームまたはスライスについてマクロ・ブロックの総数が減少し、ユーザに表示されるビデオ中のブロッキーアーティファクトを低減することができる。
【００４４】
本開示で説明するビデオ・コーディング技法は、大型マクロ・ブロックのコーディングをサポートするための１つまたは複数の特徴を利用することができる。たとえば、大型マクロ・ブロックをより小さいパーティションに区分することができる。大型マクロ・ブロック内の選択されたパーティションに様々なコーディング・モード、たとえば、様々な空間（Ｉ）コーディング・モードまたは時間（ＰまたはＢ）コーディング・モードを適用することができる。また、残差データを表す非０変換係数を有するコード化マクロ・ブロックおよびパーティションを効率的に識別するために、階層コード化ブロック・パターン（ＣＢＰ）値を利用することができる。さらに、好都合な結果を生じるマクロ・ブロックサイズを選択するために、大型マクロ・ブロックサイズと小型マクロ・ブロックサイズとを使用するコーディングについてレートひずみメトリックを比較することができる。さらに、様々なサイズのマクロ・ブロックを備えるコード化ユニット（たとえば、フレーム、スライス、シーケンス、またはピクチャ・グループ）は、コード化ユニット中の最も大きいマクロ・ブロックのサイズを示すシンタックス要素を含むことができる。以下でより詳細に説明するように、大型マクロ・ブロックは、標準の１６×１６ピクセル・ブロックとは異なるブロック・レベル・シンタックスを備える。したがって、コード化ユニット中の最も大きいマクロ・ブロックのサイズを示すことによって、エンコーダは、コード化ユニットのマクロ・ブロックに適用すべきブロック・レベル・シンタックス・デコーダをデコーダにシグナリングすることができる。
【００４５】
大型マクロ・ブロック中の様々なパーティションのための様々なコーディング・モードの使用は、大型マクロ・ブロックの混合モードコーディングと呼ばれることがある。すべてのパーティションが同じイントラ・コーディング・モードまたはインター・コーディング・モードを有するように大型マクロ・ブロックを一様にコーディングする代わりに、いくつかのパーティションが様々なイントラ・コーディング・モード（たとえば、Ｉ＿１６×１６、Ｉ＿８×８、Ｉ＿４×４）またはイントラ・コーディング・モードおよびインター・コーディング・モードなど、様々なコーディング・モードを有するように大型マクロ・ブロックをコーディングすることができる。
【００４６】
大型マクロ・ブロックを２つ以上のパーティションに分割する場合、たとえば、少なくとも１つのパーティションを第１のモードでコード化し、別のパーティションを、第１のモードとは異なる第２のモードでコード化することができる。場合によっては、第１のモードを第１のＩモードとし、第２のモードを、第１のＩモードとは異なる第２のＩモードとすることができる。他の場合には、第１のモードをＩモードとし、第２のモードをＰモードまたはＢモードとすることができる。したがって、いくつかの例では、大型マクロ・ブロックは、１つまたは複数の時間的（ＰまたはＢ）コード化パーティションおよび１つまたは複数の空間的（Ｉ）コード化パーティション、または様々なＩモードを用いた１つまたは複数の空間的コード化パーティションを含むことができる。
【００４７】
１つまたは複数の階層コード化ブロック・パターン（ＣＢＰ）値を使用して、大型マクロ・ブロック中のいずれかのパーティションが少なくとも１つの非０変換係数を有するかどうか、そうであれば、どのパーティションかを効率的に記述することができる。変換係数は大型マクロ・ブロックの残差データを符号化する。大型マクロ・ブロック・レベルＣＢＰビットは、大型マクロ・ブロック中のいずれかのパーティションが非０量子化係数を含むかどうかを示す。そうでない場合、大型マクロ・ブロック全体が非０係数を有しないことがわかっているので、パーティションのいずれかが非０係数を有するかどうかを検討する必要はない。この場合、予測マクロ・ブロックを使用して、残差データなしにマクロ・ブロックを復号することができる。
【００４８】
代替的に、マクロ・ブロック・レベルＣＢＰ値が、大型マクロ・ブロック中の少なくとも１つのパーティションが非０係数を有することを示す場合、どのパーティションが少なくとも１つの非０係数を含むかを識別するために、パーティション・レベルＣＢＰ値を分析することができる。デコーダは、次いで、少なくとも１つの非０係数を有するパーティションの当該の残差データを検索し、残差データと予測ブロックデータとを使用してパーティションを復号することができる。場合によっては、１つまたは複数のパーティションは、非０係数を有し、したがって当該の指示をもつパーティション・レベルＣＢＰ値を含むことができる。大型マクロ・ブロックと、パーティションのうちの少なくともいくつかの両方は、１６×１６ピクセルよりも大きいとすることができる。
【００４９】
好都合なレートひずみメトリックを生じるマクロ・ブロックサイズを選択するために、大型マクロ・ブロック（たとえば、３２×３２または６４×６４）と小型マクロ・ブロック（たとえば、１６×１６）の両方についてレートひずみメトリックを分析することができる。たとえば、エンコーダは、フレームまたはスライスなどのコード化ユニットの１６×１６マクロ・ブロックと、３２×３２マクロ・ブロックと、６４×６４マクロ・ブロックとのレートひずみメトリックを比較することができる。エンコーダは、次いで、最良のレートひずみを生じるマクロ・ブロックサイズを選択し、選択されたマクロ・ブロックサイズ、すなわち、最良のレートひずみをもつマクロ・ブロックサイズを使用してコード化ユニットを符号化することができる。
【００５０】
選択は、３つ以上のパス、たとえば、１６×１６ピクセル・マクロ・ブロックを使用する第１のパス、３２×３２ピクセル・マクロ・ブロックを使用する第２のパス、および６４×６４ピクセル・マクロ・ブロックを使用する第３のパスにおいてフレームまたはスライスを符号化し、各パスのレートひずみメトリックを比較することに基づくことができる。このようにして、エンコーダは、マクロ・ブロックサイズを変化させ、スライスまたはフレームなど所与のコーディング・ユニットのための最良または最適なレートひずみを生じるマクロ・ブロックサイズを選択することによって、レートひずみを最適化することができる。エンコーダは、さらに、コード化ユニット中で使用されるマクロ・ブロックのサイズを識別するコード化ユニットのシンタックス情報を、たとえば、フレーム・ヘッダまたはスライス・ヘッダの一部として送信することができる。以下でより詳細に説明するように、コード化ユニットのシンタックス情報は、コード化ユニット中で使用されるマクロ・ブロックの最大サイズを示す最大サイズ・インジケータを備えることができる。このようにして、エンコーダは、コード化ユニットのマクロ・ブロックについてどんなシンタックスを予想すべきかに関してデコーダに通知することができる。マクロ・ブロックの最大サイズが１６×１６ピクセルを備えるとき、デコーダは、標準のＨ．２６４シンタックスを予想し、Ｈ．２６４指定のシンタックスに従ってマクロ・ブロックをパースすることができる。しかしながら、マクロ・ブロックの最大サイズが１６×１６よりも大きいとき、たとえば、６４×６４ピクセルを備えるとき、デコーダは、本開示で説明するように、より大きいマクロ・ブロックの処理に関係する修正および／または追加のシンタックス要素を予想し、そのような修正または追加のシンタックスに従ってマクロ・ブロックをパースすることができる。
【００５１】
一部のビデオ・フレームまたはスライスについては、ひずみが比較的小さければ、大型マクロ・ブロックがかなりのビット・レートの節約を提示し、それによって最良のレートひずみ結果を生じることがある。しかしながら、他のビデオ・フレームまたはスライスについては、より小さいマクロ・ブロックが、レートひずみコスト分析においてビット・レートを上回るより少ないひずみを提示することがある。したがって、様々な場合において、たとえば、ビデオのコンテンツおよび複雑さに応じて、様々なビデオ・フレームまたはスライスに対して６４×６４、３２×３２または１６×１６が適切であり得る。
【００５２】
図１は、大型マクロ・ブロック、すなわち、１６×１６マクロ・ブロックよりも多くのピクセルを含んでいるマクロ・ブロックを使用してデジタル・ビデオ・データを符号化／復号するための技法を利用することができる例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソース・デバイス１２を含む。ソース・デバイス１２および宛先デバイス１４は、広範囲のデバイスのいずれかを備えることができる。場合によっては、ソース・デバイス１２および宛先デバイス１４は、いわゆるセルラー電話または衛星無線電話のブロック・サイズなどのワイヤレス通信デバイス、または通信チャネル１６を介してビデオ情報を通信することができ、その場合、通信チャネル１６がワイヤレスである任意のワイヤレスデバイスを備えることができる。ただし、従来のビデオ符号化規格によって規定されたマクロ・ブロックよりも多くのピクセルを備える大型マクロ・ブロックの使用に関係する本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるわけではない。たとえば、これらの技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタル・ビデオ、または他のシナリオに適用することができる。したがって、通信チャネル１６は、符号化ビデオ・データの送信に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備えることができる。
【００５３】
図１の例では、ソース・デバイス１２は、ビデオ・ソース１８と、ビデオ・エンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含むことができる。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオ・デコーダ３０と、ディスプレイ・デバイス３２とを含むことができる。本開示によれば、ソース・デバイス１２のビデオ・エンコーダ２０は、ビデオ符号化プロセスにおいて、従来のビデオ符号化規格によって規定されたマクロ・ブロックサイズよりも大きいサイズを有する大型マクロ・ブロックを使用するための技法のうちの１つまたは複数を適用するように構成できる。同様に、宛先デバイス１４のビデオ・デコーダ３０は、ビデオ復号プロセスにおいて、従来のビデオ符号化規格によって規定されたマクロ・ブロックサイズよりも大きいマクロ・ブロックサイズを使用するための技法のうちの１つまたは複数を適用するように構成できる。
【００５４】
図１の図示のシステム１０は一例にすぎない。本開示で説明する大型マクロ・ブロックを使用するための技法は、任意のデジタル・ビデオ符号化および／または復号デバイスによって実行できる。ソース・デバイス１２および宛先デバイス１４は、ソース・デバイス１２が宛先デバイス１４に送信するためのコード化ビデオ・データを生成するような、コーディング・デバイスの例にすぎない。いくつかの例では、デバイス１２、１４の各々がビデオ符号化構成要素および復号構成要素を含むので、デバイス１２、１４は、実質的に対称的に動作することができる。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオ・テレフォニーのためのビデオ・デバイス１２とビデオ・デバイス１４との間の一方向または双方向のビデオ送信をサポートすることができる。
【００５５】
ソース・デバイス１２のビデオ・ソース１８は、ビデオ・カメラなどのビデオ・キャプチャ・デバイス、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオ・コンテンツ・プロバイダからのビデオフィードを含むことができる。さらなる代替として、ビデオ・ソース１８は、ソース・ビデオとしてのコンピュータ・グラフィック・ベースのデータ、またはライブ・ビデオとアーカイブされたビデオとコンピュータ生成ビデオとの組合せを生成することができる。場合によっては、ビデオ・ソース１８がビデオ・カメラである場合、ソース・デバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。ただし、上述のように、本開示で説明する技法は、一般にビデオ・コーディングに適用可能であり、ワイヤレスまたはワイヤードアプリケーションに適用できる。各場合において、キャプチャされたビデオ、あらかじめキャプチャされたビデオ、またはコンピュータ生成ビデオをビデオ・エンコーダ２０によって符号化することができる。次いで、符号化ビデオ情報は、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信される。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含むことができる。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含むことができる。
【００５６】
宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８は情報を復調する。この場合も、ビデオ符号化プロセスは、ビデオ・データのインター（すなわち、時間）符号化および／またはイントラ（すなわち、空間）符号化のために、たとえば、１６×１６よりも大きい大型マクロ・ブロックを使用するための本明細書で説明する技法のうちの１つまたは複数を実装することができる。ビデオ・デコーダ３０によって実行されるビデオ復号プロセスはまた、復号プロセス中にそのような技法を使用することができる。チャネル１６を介して通信される情報は、以下でより詳細に説明するように、ビデオ・エンコーダ２０によって定義され、またビデオ・デコーダ３０によって使用される、大型マクロ・ブロックの特性および／または処理を記述するシンタックス要素を含むシンタックス情報を含むことができる。シンタックス情報は、フレーム・ヘッダ、スライス・ヘッダ、シーケンス・ヘッダ（たとえば、Ｈ．２６４に関して、コード化ビデオ・シーケンスが準拠するプロファイルおよびレベルを使用することによって）、またはマクロ・ブロック・ヘッダのいずれかまたはすべての中に含めることができる。ディスプレイ・デバイス３２は、復号されたビデオ・データをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマ・ディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイ・デバイスなど、様々なディスプレイ・デバイスのいずれかを備えることができる。
【００５７】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、ワイヤレスまたはワイヤードの任意の通信媒体、あるいはワイヤレスおよびワイヤード媒体の任意の組合せを備えることができる。通信チャネル１６は、ローカルエリア・ネットワーク、ワイドエリア・ネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。通信チャネル１６は、一般に、ワイヤードまたはワイヤレス媒体の任意の好適な組合せを含む、ビデオ・データをソース・デバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソース・デバイス１２から宛先デバイス１４への通信を可能にするのに有用なルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
【００５８】
ビデオ・エンコーダ２０およびビデオ・デコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）として説明されるＩＴＵ−Ｔ  Ｈ．２６４規格などのビデオ圧縮規格に従って動作することができる。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、いくつかの態様では、ビデオ・エンコーダ２０およびビデオ・デコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合でき、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠することができる。
【００５９】
ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明する技法は、一般にＨ．２６４規格に準拠するデバイスに適用できる。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」に記載されており、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ぶ。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張の取り組みを続けている。
【００６０】
ビデオ・エンコーダ２０およびビデオ・デコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装できる。ビデオ・エンコーダ２０およびビデオ・デコーダ３０の各々を１つまたは複数のエンコーダまたはデコーダ中に含めることができ、そのいずれかは複合エンコーダ・デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合できる。
【００６１】
ビデオ・シーケンスは、一般に一連のビデオ・フレームを含む。ビデオ・エンコーダ２０は、ビデオ・データを符号化するために、個々のビデオ・フレーム内のビデオ・ブロックに対して動作する。ビデオ・ブロックは、マクロ・ブロックまたはマクロ・ブロックのパーティションに対応することがある。ビデオ・ブロックは、さらに、パーティションのパーティションに対応することがある。ビデオ・ブロックは、サイズを固定することも変更することもでき、指定の符号化規格または本開示の技法に応じてサイズが異なることがある。各ビデオ・フレームは複数のスライスを含むことができる。各スライスは複数のマクロ・ブロックを含むことができ、それらはサブブロックとも呼ばれるパーティションに配置され得る。
【００６２】
一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、または４×４、およびクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示では、「×（x）」と「×（by）」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、１６×（x）１６ピクセルまたは１６×（by）１６ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し、水平方向に１６ピクセルを有する。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、Ｎは、１６よりも大きいことがある正の整数値を表す。ブロック中のピクセルは行と列に配置され得る。
【００６３】
１６×１６よりも小さいブロックサイズは１６×１６マクロ・ブロックのパーティションと呼ばれることがある。同様に、Ｎ×Ｎブロックについては、Ｎ×Ｎよりも小さいブロックサイズはＮ×Ｎブロックのパーティションと呼ばれることがある。本開示の技法は、３２×３２ピクセル・マクロ・ブロック、６４×６４ピクセル・マクロ・ブロック、またはより大きいマクロ・ブロックなど、従来の１６×１６ピクセル・マクロ・ブロックよりも大きいマクロ・ブロックのためのイントラ・コーディングおよびインター・コーディングについて説明する。ビデオ・ブロックは、ピクセル領域中のピクセルデータのブロックを備えることができ、あるいは、たとえば、コード化ビデオ・ブロックと予測ビデオ・ブロックとのピクセル差分を表す残差ビデオ・ブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後、変換領域中の変換係数のブロックを備えることができる。場合によっては、ビデオ・ブロックは、変換領域中の量子化変換係数のブロックを備えることができる。
【００６４】
より小さいビデオ・ブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオ・フレームのロケーションに対して使用できる。一般に、マクロ・ブロックおよび様々なパーティションはサブブロックと呼ばれることがあり、ビデオ・ブロックであると見なされ得る。さらに、スライスは、マクロ・ブロックおよび／またはサブブロックなどの複数のビデオ・ブロックであると見なされ得る。各スライスはビデオ・フレームの単独で復号可能なユニットとすることができる。代替的に、フレーム自体を復号可能なユニットとすることができるか、またはフレームの他の部分を復号可能なユニットとして定義することができる。「コード化ユニット」または「コーディング・ユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャ・グループ（ＧＯＰ）など、ビデオ・フレームの単独で復号可能な任意のユニット、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指すことができる。
【００６５】
予測データと残差データとを生成するためのイントラ予測コーディングまたはインター予測コーディングの後、および変換係数を生成するための（Ｈ．２６４／ＡＶＣで使用される４×４または８×８整数変換、あるいは離散コサイン変換ＤＣＴなどの）任意の変換の後、変換係数の量子化を実行することができる。量子化は、一般に、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。たとえば、量子化中にｎビット値をｍビット値に切り捨てることができ、ｎはｍよりも大きい。
【００６６】
量子化の後、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または別のエントロピー・コーディング方法に従って量子化データのエントロピー・コーディングを実行することができる。エントロピー・コーディング用に構成された処理ユニットまたは別の処理ユニットは、量子化係数のゼロランレングスコーディング、および／またはＣＢＰ値、マクロ・ブロック・タイプ、コーディング・モード、（フレーム、スライス、マクロ・ブロック、またはシーケンスなどの）コード化ユニットの最大マクロ・ブロックサイズなどのシンタックス情報の生成など、他の処理機能を実行することができる。
【００６７】
本開示の様々な技法によれば、ビデオ・エンコーダ２０は、従来のビデオ符号化規格によって規定されたマクロ・ブロックよりも大きいマクロ・ブロックを使用して、デジタル・ビデオ・データを符号化することができる。一例では、ビデオ・エンコーダ２０は、ビデオ・エンコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを符号化し、ブロックのサイズを示すブロック・タイプ・シンタックス情報を生成し、符号化ブロックのコード化ブロック・パターン値を生成し、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す。マクロ・ブロック・タイプ・シンタックス情報は、大型マクロ・ブロックのマクロ・ブロック・ヘッダ中で与えられ得る。マクロ・ブロックのブロック・タイプ・シンタックス情報は、フレームまたはスライス中のマクロ・ブロックのアドレスまたは位置、あるいはマクロ・ブロックの位置を識別するマクロ・ブロック番号、マクロ・ブロックに適用されるコーディング・モードのタイプ、マクロ・ブロックの量子化値、マクロ・ブロックの動きベクトル情報、およびマクロ・ブロックのＣＢＰ値を示すことができる。
【００６８】
別の例では、ビデオ・エンコーダ２０は、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信し、そのブロックをパーティションに区分し、第１の符号化モードを使用してパーティションのうちの１つを符号化し、第１の符号化モードとは異なる第２の符号化モードを使用してパーティションのうちの別の１つを符号化し、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を生成する。
【００６９】
追加の例では、ビデオ・エンコーダ２０は、フレームまたはスライスなどのビデオ・コーディング・ユニットを受信し、１６×１６ピクセルのサイズをもつ第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第１のレートひずみメトリックを判断し、１６×１６ピクセルよりも大きいサイズをもつ第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化するための第２のレートひずみメトリックを判断し、第１のレートひずみメトリックが第２のレートひずみメトリックよりも小さいとき、第１のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化し、第２のレートひずみメトリックが第１のレートひずみメトリックよりも小さいとき、第２のビデオ・ブロックを使用してビデオ・コーディング・ユニットを符号化する。
【００７０】
一例では、ビデオ・デコーダ３０は、１６×１６ピクセルよりも大きいサイズを有する符号化ビデオ・ブロックを受信することと、符号化ブロックのサイズを示すブロック・タイプ・シンタックス情報を受信することと、符号化ブロックのコード化ブロック・パターン値を受信することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、受信することと、ブロック・タイプ・シンタックス情報と符号化ブロックのコード化ブロック・パターン値とに基づいて符号化ブロックを復号することとを行う。
【００７１】
別の例では、ビデオ・デコーダ３０は、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、そのブロックがパーティションに区分され、パーティションのうちの１つがイントラ符号化され、パーティションのうちの別の１つがイントラ符号化される、受信することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、ブロック・タイプ・シンタックス情報に基づいてビデオ・ブロックを復号することと、を行う。
【００７２】
図２は、本開示に一致する大型マクロ・ブロックを使用するための技法を実装することができるビデオ・エンコーダ５０の一例を示すブロック図である。ビデオ・エンコーダ５０は、ソース・デバイス１２のビデオ・エンコーダ２０、または異なるデバイスのビデオ・エンコーダに対応することがある。ビデオ・エンコーダ５０は、大型マクロ・ブロックあるいは大型マクロ・ブロックのパーティションまたはサブパーティションを含むビデオ・フレーム内のブロックのイントラ・コーディングおよびインター・コーディングを実行することができる。イントラ・コーディングは空間的予測を利用して、所与のビデオ・フレーム内のビデオの空間的冗長性を低減または除去する。インター・コーディングは時間的予測を利用して、ビデオ・シーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。
【００７３】
イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し、予測（Ｐモード）または双方向（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことができる。本開示の技法は、インター・コーディング中とイントラ・コーディング中の両方に適用できる。場合によっては、本開示の技法はまた、非ビデオデジタル画像を符号化することに適用できる。すなわち、デジタル静止画像エンコーダは、本開示の技法を利用して、ビデオ・シーケンス中のビデオ・フレーム中のイントラ・コード化マクロ・ブロックを符号化するのと同様の方法で、大型マクロ・ブロックを使用してデジタル静止画像をイントラ・コーディングすることができる。
【００７４】
図２に示すように、ビデオ・エンコーダ５０は、符号化すべきビデオ・フレーム内の現在のビデオ・ブロックを受信する。図２の例では、ビデオ・エンコーダ５０は、動き補償ユニット３５と、動き推定ユニット３６と、イントラ予測ユニット３７と、モード選択ユニット３９と、参照フレーム・ストア３４と、加算器４８と、変換ユニット３８と、量子化ユニット４０と、エントロピー・コーディング・ユニット４６とを含む。ビデオ・ブロック再構成のために、ビデオ・エンコーダ５０はまた、逆量子化ユニット４２と、逆変換ユニット４４と、加算器５１とを含む。再構成されたビデオからブロッキネス・アーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキング・フィルタ（図２に図示せず）を含めることもできる。所望される場合、デブロッキング・フィルタは、一般に、加算器５１の出力をフィルタ処理するであろう。
【００７５】
符号化プロセス中に、ビデオ・エンコーダ５０はコーディングすべきビデオ・フレームまたはスライスを受信する。フレームまたはスライスは、大型マクロ・ブロックを含む複数のビデオ・ブロックに分割できる。動き推定ユニット３６および動き補償ユニット３５は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信したビデオ・ブロックのインター予測コーディングを実行する。イントラ予測ユニット３７は、空間圧縮を行うために、コーディングすべきブロックと同じフレームまたはスライス中の１つまたは複数の近傍ブロックに対する受信したビデオ・ブロックのイントラ予測コーディングを実行する。
【００７６】
モード選択ユニット３９は、たとえば、誤り結果に基づいてコーディング・モード、すなわち、イントラまたはインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラ・コード化ブロックまたはインター・コード化ブロックを加算器４８に供給し、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラ・コード化ブロックまたはインター・コード化ブロックを加算器５１に供給することができる。本開示の技法によれば、コーディングすべきビデオ・ブロックは、従来のコーディング規格によって規定されたマクロ・ブロックよりも大きい、すなわち、１６×１６ピクセル・マクロ・ブロックよりも大きいマクロ・ブロックを備えることができる。たとえば、大型ビデオ・ブロックは６４×６４ピクセル・マクロ・ブロックまたは３２×３２ピクセル・マクロ・ブロックを備えることができる。
【００７７】
動き推定ユニット３６と動き補償ユニット３５は、高度に統合できるが、概念的な目的のために別々に示されている。動き推定は、ビデオ・ブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または、他のコード化ユニット）内のコーディングされている現在のブロックに対する予測参照フレーム（または、他のコード化ユニット）内の予測ブロックの変位を示すことができる。予測ブロックは、絶対値差分和（ＳＡＤ）、差分２乗和（ＳＳＤ）、または他の差分メトリックによって判断できるピクセル差分に関して、コーディングすべきブロックにぴったり一致することがわかるブロックである。
【００７８】
動きベクトルはまた、大型マクロ・ブロックのパーティションの変位を示すことができる。１つの３２×６４パーティションと２つの３２×３２パーティションをもつ６４×６４ピクセル・マクロ・ブロックに関する一例では、すべて参照フレーム中の対応するパーティションに対して、第１の動きベクトルは、３２×６４パーティションの変位を示すことができ、第２の動きベクトルは、３２×３２パーティションのうちの第１のパーティションの変位を示すことができ、第３の動きベクトルは、３２×３２パーティションのうちの第２のパーティションの変位を示すことができる。そのようなパーティションはまた、本開示でそれらの用語が使用されるようにビデオ・ブロックと見なされ得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与することができる。この場合も、動き推定ユニット３６と動き補償ユニット３５は機能的に統合できる。
【００７９】
動き推定ユニット３６は、ビデオ・ブロックを参照フレーム・ストア３４中の参照フレームのビデオ・ブロックと比較することによってインター・コード化フレームのビデオ・ブロックの動きベクトルを計算する。動き補償ユニット３５はまた、参照フレーム、たとえば、ＩフレームまたはＰフレームのサブ整数ピクセルを補間することができる。ＩＴＵ  Ｈ．２６４規格では、参照フレームを「リスト」と呼ぶ。したがって、参照フレーム・ストア３４に記憶されたデータをリストと見なすこともできる。動き推定ユニット３６は、参照フレーム・ストア３４からの１つまたは複数の参照フレーム（またはリスト）のブロックを現在のフレーム、たとえば、ＰフレームまたはＢフレームの符号化すべきブロックと比較する。参照フレーム・ストア３４中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット３６によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照することができる。動き推定ユニット３６は、計算された動きベクトルをエントロピー・コーディング・ユニット４６および動き補償ユニット３５に送信する。動きベクトルによって識別される参照フレームブロックは予測ブロックと呼ばれることがある。動き補償ユニット３５は参照フレームの予測ブロックの誤差値を計算する。
【００８０】
動き補償ユニット３５は、予測ブロックに基づいて予測データを計算することができる。ビデオ・エンコーダ５０は、コーディングされている元のビデオ・ブロックから、動き補償ユニット３５からの予測データを減算することによって残差ビデオ・ブロックを形成する。加算器４８は、この減算演算を実行する１つまたは複数の構成要素を表す。変換ユニット３８は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオ・ブロックを生成する。変換ユニット３８は、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義される変換などの他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換をも使用することができる。いずれの場合も、変換ユニット３８は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換することができる。
【００８１】
量子化ユニット４０は、ビット・レートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。一例では、量子化ユニット４０は、本開示ではＱＰYと呼ぶ輝度量子化パラメータに従って各６４×６４ピクセル・マクロ・ブロックについて異なる程度の量子化を確定することができる。量子化ユニット４０は、さらに、本明細書では「ＭＢ６４＿ｄｅｌｔａ＿ＱＰ」と呼ぶ量子化パラメータモディファイアと前に符号化された６４×６４ピクセル・マクロ・ブロックとに基づいて、６４×６４マクロ・ブロックの量子化中に使用される輝度量子化パラメータを変更することができる。
【００８２】
各６４×６４ピクセル大型マクロ・ブロックは、両端値を含む−２６と＋２５との間の範囲の個々のＭＢ６４＿ｄｅｌｔａ＿ＱＰ値を備えることができる。一般に、ビデオ・エンコーダ５０は、ブロックの符号化バージョンを送信するための所望のビット・レートに基づいて特定のブロックのＭＢ６４＿ｄｅｌｔａ＿ＱＰ値を確定することができる。第１の６４×６４ピクセル・マクロ・ブロックのＭＢ６４＿ｄｅｌｔａ＿ＱＰ値は、たとえば、フレーム／スライス・ヘッダ中の、第１の６４×６４ピクセル・マクロ・ブロックを含むフレームまたはスライスのＱＰ値に等しいとすることができる。現在の６４×６４ピクセル・マクロ・ブロックのＱＰYを次式に従って計算することができる。
【数１】
2020109982.tif 000003
【００８３】
上式で、ＱＰY,PREVは、現在のスライス／フレームの復号順序における前の６４×６４ピクセル・マクロ・ブロックのＱＰY値を指し、「％」は、Ｎ％５２が、５２で除算されたＮの剰余値に対応する、両端値を含む０と５１との間の結果を戻すようなモジュロ演算子を指す。フレーム／スライス中の第１のマクロ・ブロックについて、ＱＰY,PREVをフレーム／スライス・ヘッダ中で送信されたフレーム／スライスＱＰに等しくセットすることができる。
【００８４】
一例では、量子化ユニット４０は、Ｐ＿ＳｋｉｐおよびＢ＿Ｓｋｉｐマクロ・ブロック・タイプなどの「スキップ」タイプマクロ・ブロックを含む特定の６４×６４ピクセル・マクロ・ブロックについてＭＢ６４＿ｄｅｌｔａ＿ＱＰ値が定義されないとき、ＭＢ６４＿ｄｅｌｔａ＿ＱＰ値は０に等しいと推定する。いくつかの例では、６４×６４ピクセル・マクロ・ブロック内のパーティションのより粒度の細かい量子化制御のために、６４×６４ピクセル・マクロ・ブロックの各３２×３２ピクセル・パーティションのＭＢ３２＿ｄｅｌｔａ＿ＱＰ値など、（一般に、量子化パラメータ修正値と呼ばれる）追加のｄｅｌｔａ＿ＱＰ値を定義することができる。いくつかの例では、６４×６４マクロ・ブロックの各パーティションに個々の量子化パラメータを割り当てることができる。パーティションごとに個別化された量子化パラメータを使用することにより、マクロ・ブロックをより効率的に量子化し、たとえば、６４×６４マクロ・ブロックに対して単一のＱＰを使用する代わりに、不均質なエリアについて量子化をより良く調整することができる。各量子化パラメータ修正値は、対応する符号化ブロックとともにシンタックス情報として含めることができ、デコーダは、量子化パラメータ修正値に従って逆量子化（dequantizing）、すなわち逆量子化（inverse quantizing）することによって符号化ブロックを復号することができる。
【００８５】
量子化の後、エントロピー・コーディング・ユニット４６が量子化変換係数をエントロピー・コーディングする。たとえば、エントロピー・コーディング・ユニット４６は、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または別のエントロピー・コーディング技法を実行することができる。エントロピー・コーディング・ユニット４６によるエントロピー・コーディングの後、符号化ビデオを、別のデバイスに送信するか、あるいは後で送信または検索するためにアーカイブすることができる。コード化ビット・ストリームは、以下でより詳細に説明するように、エントロピーコード化残差変換係数ブロックと、そのようなブロックの動きベクトルと、各６４×６４ピクセル・マクロ・ブロックのＭＢ６４＿ｄｅｌｔａ＿ＱＰ値と、たとえば、マクロ・ブロック・タイプ識別子値と、コード化ユニット中のマクロ・ブロックの最大サイズを示すコード化ユニットヘッダと、ＱＰY値と、コード化ブロック・パターン（ＣＢＰ）値と、マクロ・ブロックまたはサブブロックの区分方法を識別する値と、変換サイズ・フラグ値とを含む他のシンタックス要素とを含むことができる。コンテキスト適応型バイナリ算術コーディングの場合、コンテキストは近傍マクロ・ブロックに基づくことができる。
【００８６】
場合によっては、エントロピー・コーディング・ユニット４６またはビデオ・エンコーダ５０の別のユニットは、エントロピー・コーディングに加えて他のコーディング機能を実行するように構成できる。たとえば、エントロピー・コーディング・ユニット４６は大型マクロ・ブロックおよびパーティションのＣＢＰ値を判断するように構成できる。エントロピー・コーディング・ユニット４６は、マクロ・ブロック中のパーティションのいずれかが非０変換係数値を含むかどうかを示す大型マクロ・ブロックのＣＢＰ値を与え、そうであれば、大型マクロ・ブロック内の特定のパーティションが非０変換係数値を有するかどうかを示す他のＣＢＰ値を与えるための階層ＣＢＰ方式を適用することができる。また、場合によっては、エントロピー・コーディング・ユニット４６は、大型マクロ・ブロックまたはサブパーティション中の係数のランレングスコーディングを実行することができる。特に、エントロピー・コーディング・ユニット４６は、マクロ・ブロックまたはパーティション中の変換係数をスキャンするためにジグザグ・スキャンまたは他のスキャンパターンを適用し、さらなる圧縮のためにゼロのランを符号化することができる。エントロピー・コーディング・ユニット４６はまた、符号化ビデオビット・ストリーム中での送信のために適切なシンタックス要素とともにヘッダ情報を構成することができる。
【００８７】
逆量子化ユニット４２および逆変換ユニット４４は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット３５は、残差ブロックを参照フレーム・ストア３４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット３５はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、サブ整数ピクセル値を計算することができる。加算器５１は、再構成された残差ブロックを動き補償ユニット３５によって生成された動き補償予測ブロックに加算して、参照フレーム・ストア３４に記憶するための再構成されたビデオ・ブロックを生成する。再構成されたビデオ・ブロックは、後続のビデオ・フレーム中のブロックをインター・コーディングするために動き推定ユニット３６および動き補償ユニット３５によって参照ブロックとして使用され得る。大型マクロ・ブロックは、６４×６４ピクセル・マクロ・ブロック、３２×３２ピクセル・マクロ・ブロック、または従来のビデオ・コーディング規格によって規定されたサイズよりも大きい他のマクロ・ブロックを備えることができる。
【００８８】
図３は、本開示で説明する方法で符号化されたビデオ・シーケンスを復号するビデオ・デコーダ６０の一例を示すブロック図である。符号化ビデオ・シーケンスは、従来のビデオ符号化規格によって規定されたサイズよりも大きい符号化マクロ・ブロックを含むことができる。たとえば、符号化マクロ・ブロックは３２×３２ピクセルまたは６４×６４ピクセル・マクロ・ブロックとすることができる。図３の例では、ビデオ・デコーダ６０は、エントロピー復号ユニット５２と、動き補償ユニット５４と、イントラ予測ユニット５５と、逆量子化ユニット５６と、逆変換ユニット５８と、参照フレーム・ストア６２と、加算器６４とを含む。ビデオ・デコーダ６０は、いくつかの例では、ビデオ・エンコーダ５０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行することができる。動き補償ユニット５４は、エントロピー復号ユニット５２から受信した動きベクトルに基づいて予測データを生成することができる。
【００８９】
エントロピー復号ユニット５２は、受信したビット・ストリームをエントロピー復号して、量子化係数およびシンタックス要素（たとえば、動きベクトル、ＣＢＰ値、ＱＰY値、変換サイズ・フラグ値、ＭＢ６４＿ｄｅｌｔａ＿ＱＰ値）を生成する。エントロピー復号ユニット５２は、フレーム、スライスおよび／またはマクロ・ブロック・ヘッダなどのコード化ユニット中のシンタックス情報を識別するために、ビット・ストリームをパースすることができる。複数のマクロ・ブロックを備えるコード化ユニットのシンタックス情報は、マクロ・ブロックの最大サイズ、たとえば、１６×１６ピクセル、３２×３２ピクセル、６４×６４ピクセル、またはコード化ユニット中の他のより大きいサイズのマクロ・ブロックを示すことができる。ブロックのシンタックス情報は、エントロピー・コーディング・ユニット５２から、たとえば、そのブロックのコーディング・モードに応じて動き補償ユニット５４またはイントラ予測ユニット５５にフォワーディングされる。デコーダは、コード化ユニットのシンタックス中の最大サイズ・インジケータを使用して、コード化ユニットのためのシンタックス・デコーダを選択することができる。最大サイズに対して指定されたシンタックス・デコーダを使用して、デコーダは、次いで、コード化ユニット中に含まれる大型マクロ・ブロックを適切に解釈し、処理することができる。
【００９０】
動き補償ユニット５４は、ビット・ストリーム中で受信された動きベクトルを使用して、参照フレーム・ストア６２中の参照フレーム中の予測ブロックを識別することができる。イントラ予測ユニット５５は、ビット・ストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成することができる。逆量子化ユニット５６は、ビット・ストリーム中で供給され、エントロピー復号ユニット５２によって復号された量子化ブロック係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、Ｈ．２６４復号規格によって定義された従来のプロセスを含むことができる。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用すべき逆量子化の程度を判断するための、各６４×６４マクロ・ブロックについてエンコーダ５０によって計算される量子化パラメータＱＰYの使用を含むことができる。
【００９１】
逆変換ユニット５８は、逆変換、たとえば逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット５４は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用すべき補間フィルタの識別子をシンタックス要素中に含めることができる。動き補償ユニット５４は、ビデオ・ブロックの符号化中にビデオ・エンコーダ５０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算することができる。動き補償ユニット５４は、受信したシンタックス情報に従って、ビデオ・エンコーダ５０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成することができる。
【００９２】
動き補償ユニット５４は、シンタックス情報のいくつかを使用して、符号化ビデオ・シーケンスの（１つまたは複数の）フレームを符号化するために使用されるマクロ・ブロックのサイズと、符号化ビデオ・シーケンスのフレームの各マクロ・ブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化マクロ・ブロックまたはパーティションのための１つまたは複数の参照フレーム（またはリスト）と、符号化ビデオ・シーケンスを復号するための他の情報とを判断する。
【００９３】
加算器６４は、残差ブロックを、動き補償ユニット５４またはイントラ予測ユニットによって生成される対応する予測ブロックと合計して、復号されたブロックを形成する。所望される場合、ブロッキネス・アーティファクトを除去するために、デブロッキング・フィルタを適用して、復号されたブロックをフィルタ処理することもできる。復号されたビデオ・ブロックは、次いで、参照フレーム・ストア６２に記憶され、参照フレーム・ストア６２は、参照ブロックをその後の動き補償に供給し、また、ディスプレイ・デバイス（図１のデバイス３２など）上での提示のために復号されたビデオを生成する。復号されたビデオ・ブロックはそれぞれ、６４×６４ピクセル・マクロ・ブロック、３２×３２ピクセル・マクロ・ブロック、または規格よりも大きい他のマクロ・ブロックを備えることができる。いくつかのマクロ・ブロックは、多種多様なパーティション・サイズをもつパーティションを含むことができる。
【００９４】
図４Ａは、大型マクロ・ブロックの様々なパーティション・レベルの中の例示的な区分を示す概念図である。各パーティション・レベルのブロックは、特定のレベルに対応するいくつかのピクセルを含む。また、レベルごとに４つの区分パターンが示され、第１のパーティション・パターンはブロック全体を含み、第２のパーティション・パターンは等しいサイズの２つの水平パーティションを含み、第３のパーティション・パターンは等しいサイズの２つの垂直パーティションを含み、第４のパーティション・パターンは等しいサイズの４つのパーティションを含む。各パーティション・レベルにおいてパーティションごとに区分パターンのうちの１つを選択することができる。
【００９５】
図４Ａの例では、レベル０は、ルーマ・サンプルおよび関連するクロマ・サンプルの６４×６４ピクセル・マクロ・ブロック・パーティションに対応する。レベル１は、ルーマ・サンプルおよび関連するクロマ・サンプルの３２×３２ピクセル・ブロックに対応する。レベル２はルーマ・サンプルおよび関連するクロマ・サンプルの１６×１６ピクセル・ブロックに対応し、レベル３はルーマ・サンプルおよび関連するクロマ・サンプルの８×８ピクセル・ブロックに対応する。
【００９６】
他の例では、より多数のまたはより少数のピクセルを利用するために追加のレベルを導入することができる。たとえば、レベル０は、１２８×１２８ピクセル・マクロ・ブロック、２５６×２５６ピクセル・マクロ・ブロック、または他のより大きいサイズのマクロ・ブロックで開始することができる。最も大きい番号のレベルは、いくつかの例では、単一のピクセル、すなわち、１×１ブロックと同程度に細かい粒度とすることができる。したがって、マクロ・ブロックを区分し、パーティションをさらに区分し、さらなるパーティションをまたさらに区分するなどのように、最低レベルから最高レベルまで、区分を漸増的に下位区分することができる。いくつかの例では、レベル０より下のパーティション、すなわち、パーティションのパーティションをサブパーティションと呼ぶことがある。
【００９７】
あるレベルにおけるブロックを等しいサイズの４つのサブブロックを使用して区分するとき、サブブロックのいずれかまたはすべてを次のレベルのパーティション・パターンに従って区分することができる。すなわち、レベルｘにおいて等しいサイズの４つのサブブロック（Ｎ／２）×（Ｎ／２）に区分されたＮ×Ｎブロックについて、（Ｎ／２）×（Ｎ／２）サブブロックのいずれかをレベルｘ＋１のパーティション・パターンのいずれかに従ってさらに区分することができる。したがって、レベル０における６４×６４ピクセル・マクロ・ブロックの３２×３２ピクセル・サブブロックを、レベル１において図４Ａに示すパターン、たとえば、３２×３２、３２×１６および３２×１６、１６×３２および１６×３２、または１６×１６、１６×１６、１６×１６、および１６×１６のいずれかに従ってさらに区分することができる。同様に、区分されている３２×３２ピクセル・サブブロックから４つの１６×１６ピクセル・サブブロックが生じる場合、１６×１６ピクセル・サブブロックの各々を、レベル２において図４Ａに示すパターンのいずれかに従ってさらに区分することができる。区分されている１６×１６ピクセル・サブブロックから４つの８×８ピクセル・サブブロックが生じる場合、８×８ピクセル・サブブロックの各々を、レベル３において図４Ａに示すパターンのいずれかに従ってさらに区分することができる。
【００９８】
図４Ａに示すパーティションの例示的な４つのレベルを使用して、本開示のフレームワークおよび技法を実装するエンコーダによって大きい均質なエリアおよび細かい散発的変化を適応的に表すことができる。たとえば、ビデオ・エンコーダ５０は、様々なマクロ・ブロックの様々な区分レベルを判断すること、ならびに、たとえば、レートひずみ分析に基づいて、そのようなパーティションに適用すべきコーディング・モードを判断することができる。また、以下でより詳細に説明するように、ビデオ・エンコーダ５０は、たとえば、レートひずみメトリック結果または他の考慮事項に基づいて、空間的（Ｐ符号化またはＢ符号化）予測または時間的（Ｉ符号化）予測を使用して、最終パーティションのうちの少なくともいくつかを別様に符号化することができる。
【００９９】
すべてのパーティションが同じイントラ・コーディング・モードまたはインター・コーディング・モードを有するように大型マクロ・ブロックを一様にコーディングする代わりに、いくつかのパーティションが様々なコーディング・モードを有するように大型マクロ・ブロックをコーディングすることができる。たとえば、いくつかの（少なくとも１つの）パーティションを、同じマクロ・ブロック中の他の（少なくとも１つの）パーティションに対して異なるイントラ・コーディング・モード（たとえば、Ｉ＿１６×１６、Ｉ＿８×８、Ｉ＿４×４）でコーディングすることができる。また、いくつかの（少なくとも１つの）パーティションをイントラ・コーディングし、同じマクロ・ブロック中の他の（少なくとも１つの）パーティションをインター・コーディングすることができる。
【０１００】
たとえば、ビデオ・エンコーダ５０は、４つの１６×１６パーティションをもつ３２×３２ブロックについて、空間的予測を使用して１６×１６パーティションのうちのいくつかを符号化し、時間的予測を使用して他の１６×１６パーティションを符号化することができる。別の例として、ビデオ・エンコーダ５０は、４つの１６×１６パーティションをもつ３２×３２ブロックについて、第１の予測モード（たとえば、Ｉ＿１６×１６、Ｉ＿８×８、Ｉ＿４×４のうちの１つ）を使用して１６×１６パーティションの１つまたは複数を符号化し、異なる空間的予測モード（たとえば、Ｉ＿１６×１６、Ｉ＿８×８、Ｉ＿４×４のうちの１つ）を使用して１つまたは複数の他の１６×１６パーティションを符号化することができる。
【０１０１】
図４Ｂは、大型マクロ・ブロックの様々なパーティションへの様々なコーディング・モードの割当てを示す概念図である。特に、図４Ｂは、大型３２×３２マクロ・ブロックの左上の１６×１６ブロックへのＩ＿１６×１６イントラ・コーディング・モードの割当て、大型３２×３２マクロ・ブロックの右上および左下の１６×１６ブロックへのＩ＿８×８イントラ・コーディング・モードの割当て、および大型３２×３２マクロ・ブロックの右下の１６×１６ブロックへのＩ＿４×４イントラ・コーディング・モードの割当てを示す。場合によっては、図４Ｂに示すコーディング・モードはルーマ・コーディングのためのＨ．２６４イントラ・コーディング・モードとすることができる。
【０１０２】
説明した方法で、各パーティションを選択的にさらに区分することができ、時間的予測または空間的予測のいずれかを使用し、選択された時間または空間コーディング・モードを使用して、各最終パーティションを選択的にコーディングすることができる。したがって、マクロ・ブロック中の一部のパーティションをイントラ・コーディングし、同じマクロ・ブロック中の他のパーティションをインター・コーディングするか、あるいは同じマクロ・ブロック中の一部のパーティションを様々なイントラ・コーディング・モードまたは様々なインター・コーディング・モードでコーディングするように、大型マクロ・ブロックを混合モードでコーディングすることが可能である。
【０１０３】
ビデオ・エンコーダ５０は、さらに、マクロ・ブロック・タイプに従って各パーティションを定義することができる。マクロ・ブロック・タイプは、符号化ビット・ストリームにシンタックス要素として含めることができ、たとえば、マクロ・ブロック・ヘッダにシンタックス要素として含めることができる。一般に、マクロ・ブロック・タイプを使用して、上記で説明したように、マクロ・ブロックがどのように区分されるか、およびマクロ・ブロックのパーティションの各々を符号化するためのそれぞれの方法またはモードを識別することができる。パーティションを符号化するための方法は、イントラ・コーディングおよびインター・コーディングだけでなく、イントラ・コーディングの特定のモード（たとえば、Ｉ＿１６×１６、Ｉ＿８×８、Ｉ＿４×４）またはインター・コーディングの特定のモード（たとえば、Ｐ＿またはＢ＿の１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４）をも含むことができる。
【０１０４】
Ｐブロックについては以下の表１の例に関して、およびＢブロックについては以下の表２の例に関してより詳細に説明するように、パーティション・レベル０のブロックを、６４×６４ピクセルをもつマクロ・ブロックを表すＭＢ６４＿ｔｙｐｅシンタックス要素に従って定義することができる。任意のＭＢ［Ｎ］＿ｔｙｐｅについて同様のタイプ定義を形成することができ、［Ｎ］は、Ｎ×Ｎピクセルをもつブロックを指し、Ｎは、１６よりも大きいとすることができる正の整数である。Ｎ×Ｎブロックが、図４Ａ上の最後の列に示すようにサイズ（Ｎ／２）×（Ｎ／２）の４つのパーティションを有するとき、４つのパーティションの各々は、それら自体のタイプ定義、たとえば、ＭＢ［Ｎ／２］＿ｔｙｐｅを受信することができる。たとえば、４つの３２×３２ピクセル・パーティションをもつ（タイプＭＢ６４＿ｔｙｐｅの）６４×６４ピクセル・ブロックの場合、ビデオ・エンコーダ５０は、４つの３２×３２ピクセル・パーティションの各々についてＭＢ３２＿ｔｙｐｅを導入することができる。これらのマクロ・ブロック・タイプ・シンタックス要素は、本開示で説明するように、大型マクロ・ブロックおよび大型マクロ・ブロックの様々なパーティションを復号する際にデコーダ６０を支援することができる。Ｎが１６よりも大きい各Ｎ×Ｎピクセル・マクロ・ブロックは、一般に、一意のタイプ定義に対応する。したがって、エンコーダは、特定のマクロ・ブロックに適したシンタックスを生成し、フレーム、スライス、またはマクロ・ブロックのシーケンスなどのコード化ユニット中のマクロ・ブロックの最大サイズをデコーダに示すことができる。このようにして、デコーダは、コード化ユニットのマクロ・ブロックに適用すべきシンタックス・デコーダの指示を受信することができる。これはまた、エンコーダが、マクロ・ブロックに適用すべきシンタックス・デコーダのタイプ、たとえば、標準Ｈ．２６４、または本開示の技法による、より大きいマクロ・ブロックの処理のために指定されたシンタックス・デコーダのタイプを示すことができるという点で、デコーダが、Ｈ．２６４などの既存のコーディング規格と後方互換性があることを保証する。
【０１０５】
一般に、各ＭＢ［Ｎ］＿ｔｙｐｅ定義は、対応するタイプについて、対応するタイプのブロック中のピクセル数（たとえば、６４×６４）、ブロックのための参照フレーム（または参照リスト）、ブロックのパーティション数、ブロックの各パーティションのサイズ、各パーティションがどのように符号化されるか（たとえば、イントラまたはインターおよび特定のモード）、およびパーティションがインター・コーディングされるときのブロックの各パーティションのための参照フレーム（または参照リスト）を表すことができる。１６×１６ブロックおよびより小さいブロックについては、ビデオ・エンコーダ５０は、いくつかの例では、Ｈ．２６４規格によって指定されたタイプなど、従来のタイプ定義をブロックのタイプとして使用することができる。他の例では、ビデオ・エンコーダ５０は、１６×１６ブロックおよびより小さいブロックに対して新たに定義されたブロック・タイプを適用することができる。
【０１０６】
ビデオ・エンコーダ５０は、ＩＴＵ  Ｈ．２６４によって規定された方法など、通常のマクロ・ブロックサイズおよびパーティションを使用する従来のインター・コーディング方法またはイントラ・コーディング方法と、本開示で説明する、より大きいマクロ・ブロックおよびパーティションを使用するインター・コーディング方法またはイントラ・コーディング方法との両方を評価し、どの方法が最良のレートひずみパフォーマンスを生じるかを判断するために各手法のレートひずみ特性を比較することができる。ビデオ・エンコーダ５０は、次いで、コーディング手法についての最適または許容できるレートひずみ結果に基づいて、インターモードまたはイントラモードと、マクロ・ブロックサイズ（大型、より大型または通常）と、区分とを含む、最良のコーディング手法を選択し、コーディングすべきブロックに適用することができる。一例として、ビデオ・エンコーダ５０は、ビデオ・エンコーダが６４×６４マクロ・ブロック、３２×３２マクロ・ブロックまたは１６×１６マクロ・ブロックサイズを使用するときに生じるレートひずみ結果に基づいて、特定のフレームまたはスライスを符号化するために、そのようなマクロ・ブロックの使用を選択することができる。
【０１０７】
一般に、大型マクロ・ブロックを使用するイントラモードを設計するために、２つの異なる手法を使用することができる。一例として、イントラ・コーディング中に、近傍ブロックに基づいて空間的予測をブロックに対して直接実行することができる。本開示の技法によれば、ビデオ・エンコーダ５０は、空間的予測３２×３２ブロックをそれらの近傍ピクセルに基づいて直接生成し、空間的予測６４×６４ブロックをそれらの近傍ピクセルに基づいて直接生成することができる。このようにして、１６×１６イントラブロックに比較してより大きいスケールにおいて空間的予測を実行することができる。したがって、これらの技法により、いくつかの例では、たとえば、フレームまたはスライス当たりより少数のブロックまたはパーティションを用いて、ある程度のビット・レートを節約することができる。
【０１０８】
別の例として、ビデオ・エンコーダ５０は、４つのＮ×Ｎブロックを互いにグループ化して（Ｎ＊２）×（Ｎ＊２）ブロックを生成し、次いで（Ｎ＊２）×（Ｎ＊２）ブロックを符号化することができる。既存のＨ．２６４イントラ・コーディング・モードを使用して、ビデオ・エンコーダ５０は、４つのイントラ・コード化ブロックを互いにグループ化し、それによって大型イントラ・コード化マクロ・ブロックを形成することができる。たとえば、各々が１６×１６のサイズを有する４つのイントラ・コード化ブロックを互いにグループ化して、大型の３２×３２イントラ・コード化ブロックを形成することができる。ビデオ・エンコーダ５０は、Ｈ．２６４による異なる符号化モード、たとえば、Ｉ＿１６×１６、Ｉ＿８×８、またはＩ＿４×４を使用して対応する４つのＮ×Ｎブロックの各々を符号化することができる。このようにして、たとえば、好都合な符号化結果を促進するために、ビデオ・エンコーダ５０によって各１６×１６ブロックにそれ自体の空間的予測モードを割り当てることができる。
【０１０９】
ビデオ・エンコーダ５０は、上述の２つの異なる方法のいずれかに従ってイントラモードを設計し、それらの異なる方法を分析して、どちらの手法がより良好な符号化結果を与えるかを判断することができる。たとえば、ビデオ・エンコーダ５０は、それらの異なるイントラモード手法を適用し、それらを単一の候補プール中に配置して、それらが最良のレートひずみパフォーマンスのために互いに競合することを可能にすることができる。それらの異なる手法間のレートひずみ比較を使用して、ビデオ・エンコーダ５０は、各パーティションおよび／またはマクロ・ブロックをどのように符号化するかを判断することができる。特に、ビデオ・エンコーダ５０は、所与のマクロ・ブロックについて最良のレートひずみパフォーマンスを生じるコーディング・モードを選択し、それらのコーディング・モードを適用して、マクロ・ブロックを符号化することができる。
【０１１０】
図５は、大型マクロ・ブロックの様々なパーティション・レベルの階層図を示す概念図である。図５はまた、図４Ａに関して説明した大型マクロ・ブロックの様々なパーティション・レベル間の関係を表す。図５の例で示されるように、パーティション・レベルの各ブロックは、対応するコード化ブロック・パターン（ＣＢＰ）値を有することができる。ＣＢＰ値は、ブロックまたはマクロ・ブロックを記述するシンタックス情報の一部を形成する。一例では、ＣＢＰ値は、それぞれ、変換および量子化演算の後、所与のブロック中に非０変換係数値があるか否かを示す１ビットシンタックス値である。
【０１１１】
場合によっては、予測ブロックは、残差変換係数のすべてが０に量子化されるように、ピクセル成分がコーディングすべきブロックに極めて近接していることがあり、その場合、コード化ブロックの変換係数を送信する必要はない。代わりに、コード化ブロックが非０係数を含まないことを示すために、ブロックのＣＢＰ値を０にセットすることができる。代替的に、ブロックが少なくとも１つの非０係数を含む場合、ＣＢＰ値を１にセットすることができる。デコーダ６０は、ＣＢＰ値を使用して、コーディングされた、すなわち、１つまたは複数の非０変換係数をもつ残差ブロックと、コーディングされていない、すなわち、非０変換係数を含まないブロックとを識別することができる。
【０１１２】
本開示で説明する技法のいくつかによれば、エンコーダは、それらのパーティションを含む大型マクロ・ブロックが少なくとも１つの非０係数を有するかどうかに基づいて、それらのマクロ・ブロックにＣＢＰ値を階層的に割り当て、どのパーティションが非０係数を有するかを示すためにパーティションにＣＢＰ値を割り当てることができる。大型マクロ・ブロックの階層ＣＢＰにより、コード化大型マクロ・ブロックと非コード化大型マクロ・ブロックとを迅速に識別するための大型マクロ・ブロックの処理が可能になり、ブロックを復号するために残差データを使用する必要があるかどうかを判断するための、大型マクロ・ブロックの各パーティション・レベルにおけるコード化パーティションの識別が可能になる。
【０１１３】
一例では、レベル０における６４×６４ピクセル・マクロ・ブロックは、パーティションを含む６４×６４ピクセル・マクロ・ブロック全体が非０係数を有するか否かを示すための、ＣＢＰ６４値、たとえば、１ビット値を備えるシンタックス情報を含むことができる。一例では、ビデオ・エンコーダ５０は、６４×６４ピクセル・マクロ・ブロックが少なくとも１つの非０係数を含むことを表すために、ＣＢＰ６４ビットを、たとえば、値「１」に「セット」する。したがって、ＣＢＰ６４値が、たとえば、値「１」にセットされたとき、６４×６４ピクセル・マクロ・ブロックは、マクロ・ブロック中のどこかに少なくとも１つの非０係数を含む。別の例では、６４×６４ピクセル・マクロ・ブロックが全０係数を有することを表すために、ビデオ・エンコーダ５０は、ＣＢＰ６４値を、たとえば、値「０」に「クリア」する。したがって、ＣＢＰ６４値が、たとえば、値「０」にクリアされたとき、６４×６４ピクセル・マクロ・ブロックは、全０係数を有するものとして示される。ＣＢＰ６４値「０」をもつマクロ・ブロックは、一般に、ビット・ストリーム中での残差データの送信を必要としないが、ＣＢＰ６４値「１」をもつマクロ・ブロックは、一般に、そのようなマクロ・ブロックを復号する際に使用するために、ビット・ストリーム中での残差データの送信を必要とする。
【０１１４】
全０係数を有する６４×６４ピクセル・マクロ・ブロックは、そのパーティションまたはサブブロックのためのＣＢＰ値を含む必要はない。すなわち、６４×６４ピクセル・マクロ・ブロックが全０係数を有するので、パーティションの各々も必然的に全０係数を有する。反対に、少なくとも１つの非０係数を含む６４×６４ピクセル・マクロ・ブロックは、次のパーティション・レベルにおいてパーティションのＣＢＰ値をさらに含むことができる。たとえば、値１をもつＣＢＰ６４は、６４×６４ブロックの各３２×３２パーティションについて１ビット値ＣＢＰ３２の形態の追加のシンタックス情報を含むことができる。すなわち、一例では、６４×６４ピクセル・マクロ・ブロックの（図５中のレベル１の４つのパーティションなど）各３２×３２ピクセル・パーティションには、６４×６４ピクセル・マクロ・ブロックのシンタックス情報の一部としてＣＢＰ３２値が割り当てられる。ＣＢＰ６４値の場合と同様に、各ＣＢＰ３２値は、対応する３２×３２ピクセル・ブロックが少なくとも１つの非０係数を有するときは値１にセットされ、対応する３２×３２ピクセル・ブロックが全０係数を有するときは値０にクリアされるビットを備えることができる。エンコーダは、さらに、各マクロ・ブロックのシンタックス情報をどのように解釈すべきか、たとえば、コード化ユニット中のマクロ・ブロックを処理するためにどのシンタックス・デコーダを使用すべきかをデコーダに示すために、フレーム、スライス、またはシーケンスなどの複数のマクロ・ブロックを備えるコード化ユニットのシンタックスにおいて、コード化ユニット中のマクロ・ブロックの最大サイズを示すことができる。
【０１１５】
このようにして、全０係数を有する６４×６４ピクセル・マクロ・ブロックは、単一ビットを使用して、マクロ・ブロックが全０係数を有することを表すことができ、少なくとも１つの非０係数をもつ６４×６４ピクセル・マクロ・ブロックは、６４×６４ピクセル・マクロ・ブロックが非０係数を有することを表すための第１のビットと、それぞれマクロ・ブロックの４つの３２×３２ピクセル・パーティションのうちの対応する１つが少なくとも１つの非０係数を含むかどうかを表す４つの追加のビットと、の少なくとも５ビットを備えるＣＢＰシンタックス情報を含むことができる。いくつかの例では、４つの追加のビットのうち最初の３つが０であるとき、第４の追加のビットは含まれないことがあり、デコーダは、これを最後のパーティションが１であると解釈することができる。すなわち、エンコーダは、最初の３ビットが０であり、より高いレベルの階層を表すビットが値１を有するとき、最後のビットが値１を有すると判断することができる。たとえば、ＣＢＰ６４値「１０００１」のプレフィックスは、第１のビットが、４つのパーティションのうちの少なくとも１つが非０係数を有することを示し、次の３つの０が、最初の３つのパーティションが全０係数を有することを示すので、「１０００」に短縮され得る。したがって、デコーダは、非０係数を含むパーティションが最後のパーティションであることをデコーダに通知する明示的ビットなしに、たとえば、ビットストリング「１０００」からこのことを推論することができる。すなわち、デコーダは、ＣＢＰ６４プレフィックス「１０００」を「１０００１」として解釈することができる。
【０１１６】
同様に、１ビットＣＢＰ３２を、３２×３２ピクセル・パーティションが少なくとも１つの非０係数を含むときは値「１」にセットし、係数のすべてが値０を有するときは値「０」にセットすることができる。３２×３２ピクセル・パーティションがＣＢＰ値１を有する場合、次のパーティション・レベルにおけるその３２×３２パーティションのパーティションに、それぞれのパーティションが非０係数を含むかどうかを示すためのＣＢＰ値を割り当てることができる。したがって、さらなるパーティション・レベルがなくなるか、または非０係数を含むパーティションがなくなるまで、各パーティション・レベルにおいてＣＢＰ値を階層様式で割り当てることができる。
【０１１７】
上記のように、エンコーダおよび／またはデコーダは、大型マクロ・ブロック（たとえば、６４×６４または３２×３２）およびそのパーティションが少なくとも１つの非０係数または全０係数を含むかどうかを表す階層的ＣＢＰ値を利用することができる。したがって、エンコーダは、マクロ・ブロックが１６×１６ピクセルよりも大きいサイズを備えるようなデジタル・ビデオ・ストリームのコード化ユニットの大型マクロ・ブロックを符号化し、ブロックのサイズを識別するブロック・タイプ・シンタックス情報を生成し、ブロックが少なくとも１つの非０係数を含むかどうかを識別するような、ブロックのＣＢＰ値を生成し、該当する場合、ブロックの様々なパーティション・レベルの追加のＣＢＰ値を生成することができる。
【０１１８】
一例では、階層的ＣＢＰ値は、長さがプレフィックスの値に依存するビット・アレイ（たとえば、ビット・ベクトル）を備えることができる。アレイは、さらに、図５に示すツリー構造など、ＣＢＰ値の階層を表すことができる。アレイはツリーのノードを幅優先様式で表すことができ、各ノードはアレイ中のビットに対応する。一例では、ツリーのノードが、「１」にセットされたビットを有するとき、ノードは、（４つのパーティションに対応する）４つのブランチを有し、ビットが「０」にクリアされたとき、ノードはブランチを有しない。
【０１１９】
この例では、特定のノードＸから分岐するノードの値を識別するために、エンコーダおよび／またはデコーダは、次の計算によってノードｘから分岐するノードを表すノードＹにおいて開始する４つの連続ビットを判断することができる。
【数２】
2020109982.tif 000004
【０１２０】
上式で、ｔｒｅｅ［］は、開始インデックス０をもつビットアレイに対応し、ｉは、アレイｔｒｅｅ［］への整数インデックスであり、ｘは、ｔｒｅｅ［］中のノードＸのインデックスに対応し、ｙは、ノードＸの第１のブランチノードであるノードＹのインデックスに対応する。３つの後続のアレイ位置（すなわち、ｙ＋１、ｙ＋２、およびｙ＋３）はノードＸの他のブランチノードに対応する。
【０１２１】
ビデオ・エンコーダ５０（図２）などのエンコーダは、１６×１６ブロックのＣＢＰ値をセットするためのＩＴＵ  Ｈ．２６４によって規定された方法など、既存の方法を使用して、少なくとも１つの非０係数をもつ３２×３２ピクセル・パーティションの１６×１６ピクセル・パーティションのＣＢＰ値を６４×６４ピクセル・マクロ・ブロックのシンタックスの一部として割り当てることができる。エンコーダはまた、パーティションのサイズ、パーティションに対応するブロックのタイプ（たとえば、クロマ・ブロックまたはルーマ・ブロック）、またはパーティションの他の特性に基づいて、少なくとも１つの非０係数を有する３２×３２ピクセル・パーティションのパーティションのＣＢＰ値を選択することができる。３２×３２ピクセル・パーティションのパーティションのＣＢＰ値をセットするための例示的な方法について、図８および図９に関してさらに詳細に説明する。
【０１２２】
図６〜図９は、本開示の技法による様々なコード化ブロック・パターン（ＣＢＰ）値をセットするための例示的な方法を示すフローチャートである。図６〜図９の例示的な方法を６４×６４ピクセル・マクロ・ブロックに関して説明するが、他のサイズのマクロ・ブロックの階層的ＣＢＰ値を割り当てるために同様の技法を適用することができることを理解されたい。図６〜図９の例をビデオ・エンコーダ５０（図２）に関して説明するが、他のエンコーダが、規格よりも大きいマクロ・ブロックにＣＢＰ値を割り当てるために同様の方法を採用することができることを理解されたい。同様に、デコーダは、マクロ・ブロックの特定のＣＢＰ値の意味を解釈するための、逆ではあるが同様の方法を利用することができる。たとえば、ビット・ストリーム中で受信されたインター・コード化マクロ・ブロックがＣＢＰ値「０」を有する場合、デコーダは、マクロ・ブロックの残差データを受信せず、単に、復号されたマクロ・ブロックとして動きベクトルによって識別される予測ブロック、またはマクロ・ブロックのパーティションに関する動きベクトルによって識別される予測ブロックのグループを生成する。
【０１２３】
図６は、例示的な６４×６４ピクセル・マクロ・ブロックのＣＢＰ６４値をセットするための例示的な方法を示すフローチャートである。同様の方法を６４×６４よりも大きいマクロ・ブロックに適用することができる。最初に、ビデオ・エンコーダ５０は６４×６４ピクセル・マクロ・ブロックを受信する（１００）。動き推定ユニット３６および動き補償ユニット３５は、次いで、それぞれ、マクロ・ブロックを符号化するために１つまたは複数の動きベクトルおよび１つまたは複数の残差ブロックを生成する。変換ユニット３８の出力は、一般に、イントラ・コード化ブロックまたはインター・コード化ブロックの残差ブロックの残差変換係数値のアレイを備え、アレイは、一連の量子化変換係数を生成するために量子化ユニット４０によって量子化される。
【０１２４】
エントロピー・コーディング・ユニット４６は、エントロピー・コーディングと、エントロピー・コーディングとは別の他のコーディング機能とを与えることができる。たとえば、ＣＡＶＬＣ、ＣＡＢＡＣ、または他のエントロピー・コーディング機能に加えて、エントロピー・コーディング・ユニット４６またはビデオ・エンコーダ５０の別のユニットは、大型マクロ・ブロックおよびパーティションのＣＢＰ値を判断することができる。特に、エントロピー・コーディング・ユニット４６は、マクロ・ブロックが少なくとも１つの非０量子化変換係数を有するかどうかを最初に判断することによって、６４×６４ピクセル・マクロ・ブロックのＣＢＰ６４値を判断する（１０２）。エントロピー・コーディング・ユニット４６は、変換係数のすべてが値０を有すると判断したとき（１０２の「いいえ」ブランチ）、６４×６４マクロ・ブロックのＣＢＰ６４値をクリアし、たとえば、ＣＢＰ６４値のビットを「０」にリセットする（１０４）。エントロピー・コーディング・ユニット４６は、６４×６５マクロ・ブロックの少なくとも１つの非０係数を識別したとき（１０２の「はい」ブランチ）、ＣＢＰ６４値をセットし、たとえば、ＣＢＰ６４値のビットを「１」にセットする（１０６）。
【０１２５】
マクロ・ブロックが全０係数を有するとき、エントロピー・コーディング・ユニット４６は、マクロ・ブロックのパーティションの追加のＣＢＰ値を確定する必要がなく、これによりオーバーヘッドを低減することができる。一例では、しかしながら、マクロ・ブロックが少なくとも１つの非０係数を有するとき、エントロピー・コーディング・ユニット４６は、続いて６４×６４ピクセル・マクロ・ブロックの４つの３２×３２ピクセル・パーティションの各々についてＣＢＰ値を判断する（１０８）。エントロピー・コーディング・ユニット４６は、各々が６４×６４マクロ・ブロックの４つの３２×３２ピクセル・パーティションのうちの異なる１つに対応する４つのＣＢＰ３２値を確定するために、図７に関して説明する方法を４つのパーティションの各々について１回ずつ、４回利用することができる。このようにして、マクロ・ブロックが全０係数を有するとき、エントロピー・コーディング・ユニット４６は、マクロ・ブロックが全０係数を有することを示すために値「０」をもつ単一ビットを送信し、マクロ・ブロックが少なくとも１つの非０係数を有するとき、エントロピー・コーディング・ユニット４６は、５ビット、すなわち、マクロ・ブロックのための１ビットと、各々がマクロ・ブロックの４つのパーティションのうちの１つに対応する４ビットとを送信することができる。さらに、パーティションが少なくとも１つの非０係数を含むとき、符号化ビット・ストリーム中でパーティションの残差データを送信することができる。上述のＣＢＰ６４の例の場合と同様に、４つの追加のビットのうちの最初の３つが０であるとき、デコーダは、第４の追加のビットが値１を有すると判断することができるので、第４の追加のビットは不要である。したがって、いくつかの例では、エンコーダは、３つの０および１、すなわち、「０００１」ではなく、３つの０、すなわち、「０００」のみを送信することができる。
【０１２６】
図７は、６４×６４ピクセル・マクロ・ブロックの３２×３２ピクセル・パーティションのＣＢＰ３２値をセットするための例示的な方法を示すフローチャートである。最初に、次のパーティション・レベルについて、エントロピー・コーディング・ユニット４６が、マクロ・ブロックの３２×３２ピクセル・パーティション、たとえば、図６に関して言及した４つのパーティションのうちの１つを受信する（１１０）。エントロピー・コーディング・ユニット４６は、次いで、パーティションが少なくとも１つの非０係数を含むかどうかを最初に判断することによって、３２×３２ピクセル・パーティションのＣＢＰ３２値を判断する（１１２）。エントロピー・コーディング・ユニット４６は、パーティションの係数のすべてが値０を有すると判断したとき（１１２の「いいえ」ブランチ）、ＣＢＰ３２値をクリアし、たとえば、ＣＢＰ３２値のビットを「０」にリセットする（１１４）。エントロピー・コーディング・ユニット４６は、パーティションの少なくとも１つの非０係数を識別したとき（１１２の「はい」ブランチ）、ＣＢＰ３２値をセットし、たとえば、ＣＢＰ３２値のビットを「１」にセットする（１１６）。
【０１２７】
一例では、パーティションが全０係数を有するとき、エントロピー・コーディング・ユニット４６はパーティションの追加のＣＢＰ値を確定しない。しかしながら、パーティションが少なくとも１つの非０係数を含むとき、エントロピー・コーディング・ユニット４６は、マクロ・ブロックの３２×３２ピクセル・パーティションの４つの１６×１６ピクセル・パーティションの各々についてＣＢＰ値を判断する。エントロピー・コーディング・ユニット４６は、各々が４つの１６×１６ピクセル・パーティションのうちの１つに対応する４つのＣＢＰ１６値を確定するために、図８に関して説明する方法を利用することができる。
【０１２８】
このようにして、パーティションが全０係数を有するとき、エントロピー・コーディング・ユニット４６は、パーティションが全０係数を有することを示すために値「０」をもつ単一ビットをセットし、パーティションが少なくとも１つの非０係数を有するとき、エントロピー・コーディング・ユニット４６は、５ビット、すなわち、パーティションのための１ビットと、各々がパーティションの４つのサブパーティションのうちの異なる１つに対応する４ビットとを含むことができる。したがって、先行するパーティション・レベル中のパーティションが少なくとも１つの非０変換係数値を有したとき、各追加のパーティション・レベルは４つの追加のＣＢＰビットを提示することができる。一例として、それぞれ、６４×６４マクロ・ブロックがＣＢＰ値１を有し、４つの３２×３２パーティションがＣＢＰ値１、０、１および１を有する場合、その時点までの全体的なＣＢＰ値は１１０１１である。３２×３２パーティションの、たとえば、１６×１６パーティションへの追加のパーティションのために追加のＣＢＰビットを追加することができる。
【０１２９】
図８は、６４×６４ピクセル・マクロ・ブロックの３２×３２ピクセル・パーティションの１６×１６ピクセル・パーティションのＣＢＰ１６値をセットするための例示的な方法を示すフローチャートである。いくつかの１６×１６ピクセル・パーティションについては、ビデオ・エンコーダ５０は、以下で説明するように、ＩＴＵ  Ｈ．２６４などのビデオ・コーディング規格によって規定されているＣＢＰ値を利用することができる。他の１６×１６パーティションについては、ビデオ・エンコーダ５０は、本開示の他の技法によるＣＢＰ値を利用することができる。最初に、図８に示すように、エントロピー・コーディング・ユニット４６は、１６×１６パーティション、たとえば、図７に関して説明した３２×３２パーティションの１６×１６パーティションのうちの１つを受信する（１２０）。
【０１３０】
エントロピー・コーディング・ユニット４６は、次いで、１６×１６ピクセル・パーティションの動きパーティションが８×８ピクセル・ブロックよりも大きいかどうかを判断する（１２２）。一般に、動きパーティションは、動きが集中するパーティションを表す。たとえば、ただ１つの動きベクトルをもつ１６×１６ピクセル・パーティションを１６×１６動きパーティションと見なすことができる。同様に、各々が１つの動きベクトルを有する２つの８×１６パーティションをもつ１６×１６ピクセル・パーティションについて、２つの８×１６パーティションの各々を８×１６動きパーティションと見なすことができる。いずれの場合も、動きパーティションが８×８ピクセル・ブロックよりも大きくないとき（１２２の「いいえ」ブランチ）、エントロピー・コーディング・ユニット４６は、図８の例では、ＩＴＵ  Ｈ．２６４によって規定されているのと同様にして１６×１６ピクセル・パーティションにＣＢＰ値を割り当てる（１２４）。
【０１３１】
８×８ピクセル・ブロックよりも大きい１６×１６ピクセル・パーティションの動きパーティションが存在するとき（１２２の「はい」ブランチ）、エントロピー・コーディング・ユニット４６は、ステップ１２５に続くステップを使用してｌｕｍａｃｂｐ１６値を構成し、送信する（１２５）。図８の例では、ｌｕｍａｃｂｐ１６値を構成するために、エントロピー・コーディング・ユニット４６は、パーティションの１６×１６ピクセルルーマ成分が少なくとも１つの非０係数を有するかどうかを判断する（１２６）。１６×１６ピクセルルーマ成分が全０係数を有するとき（１２６の「いいえ」ブランチ）、図８の例では、エントロピー・コーディング・ユニット４６は、ＩＴＵ  Ｈ．２６４のＣｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎ  Ｃｈｒｏｍａ部分に従ってＣＢＰ１６値を割り当てる（１２８）。
【０１３２】
エントロピー・コーディング・ユニット４６は、１６×１６ピクセルルーマ成分が少なくとも１つの非０係数を有すると判断したとき（１２６の「はい」ブランチ）、１６×１６ピクセル・パーティションの変換サイズ・フラグを判断する（１３０）。変換サイズ・フラグは、一般に、パーティションのために使用されている変換を示す。変換サイズ・フラグによって表される変換は、４×４変換、８×８変換、１６×１６変換、１６×８変換、または８×１６変換のうちの１つを含むことができる。変換サイズ・フラグは、可能な変換の１つを識別する計数値に対応する整数値を備えることができる。エントロピー・コーディング・ユニット４６は、次いで、変換サイズ・フラグが、変換サイズが１６×８（または８×１６）以上であることを表すかどうかを判断する（１３２）。
【０１３３】
変換サイズ・フラグが、変換サイズが１６×８（または８×１６）以上であることを示さないとき（１３２の「いいえ」ブランチ）、図８の例では、エントロピー・コーディング・ユニット４６はＩＴＵ  Ｈ．２６４に従ってＣＢＰ１６値を割り当てる（１３４）。変換サイズ・フラグが、変換サイズが１６×８（または８×１６）以上であることを示すとき（１３２の「はい」ブランチ）、エントロピー・コーディング・ユニット４６は、次いで、１６×１６ピクセル・パーティションのタイプが、２つの１６×８ピクセル・パーティションであるか、２つの８×１６ピクセル・パーティションであるかを判断する（１３６）。
【０１３４】
１６×１６ピクセル・パーティションのタイプが２つの１６×８ピクセル・パーティションでも２つの８×１６ピクセル・パーティションでもないとき（１３８の「いいえ」ブランチ）、図８の例では、エントロピー・コーディング・ユニット４６は、ＩＴＵ  Ｈ．２６４によって規定されているＣｈｒｏｍａ  Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｒｔｉｔｉｏｎに従ってＣＢＰ１６値を割り当てる（１４０）。１６×１６ピクセル・パーティションのタイプが２つの１６×８ピクセル・パーティションまたは２つの８×１６ピクセル・パーティションのいずれかであるとき（１３６の「はい」ブランチ）、エントロピー・コーディング・ユニット４６は、同じくＩＴＵ  Ｈ．２６４によって規定されているＣｈｒｏｍａ  Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎを使用するが、さらに、たとえば、図９に関して説明する方法に従ってＣＢＰ１６値に２ビットｌｕｍａ１６×８＿ＣＢＰ値を割り当てる（１４２）。
【０１３５】
図９は、２ビットｌｕｍａ１６×８＿ＣＢＰ値を判断するための例示的な方法を示すフローチャートである。エントロピー・コーディング・ユニット４６は、２つの１６×８ピクセル・パーティションまたは２つの８×１６ピクセル・パーティションにさらに区分される１６×１６ピクセル・パーティションを受信する（１５０）。エントロピー・コーディング・ユニット４６は、一般に、１６×１６ピクセル・パーティションの対応するサブブロックが少なくとも１つの非０係数を含むかどうかに従って、ｌｕｍａ１６×８＿ＣＢＰの各ビットを割り当てる。
【０１３６】
エントロピー・コーディング・ユニット４６は、第１のサブブロックが少なくとも１つの非０係数を有するかどうかを判断するために、１６×１６ピクセル・パーティションの第１のサブブロックが少なくとも１つの非０係数を有するかどうかを判断する（１５２）。第１のサブブロックが全０係数を有するとき（１５２の「いいえ」ブランチ）、エントロピー・コーディング・ユニット４６はｌｕｍａ１６×８＿ＣＢＰの第１のビットをクリアし、たとえば、ｌｕｍａ１６×８＿ＣＢＰ［０］に値「０」を割り当てる（１５４）。第１のサブブロックが少なくとも１つの非０係数を有するとき（１５２の「はい」ブランチ）、エントロピー・コーディング・ユニット４６はｌｕｍａ１６×８＿ＣＢＰの第１のビットをセットし、たとえば、ｌｕｍａ１６×８＿ＣＢＰ［０］に値「１」を割り当てる（１５６）。
【０１３７】
エントロピー・コーディング・ユニット４６はまた、１６×１６ピクセル・パーティションの第２のサブパーティションが少なくとも１つの非０係数を有するかどうかを判断する（１５８）。第２のサブパーティションが全０係数を有するとき（１５８の「いいえ」ブランチ）、エントロピー・コーディング・ユニット４６はｌｕｍａ１６×８＿ＣＢＰの第２のビットをクリアし、たとえば、ｌｕｍａ１６×８＿ＣＢＰ［１］に値「０」を割り当てる（１６０）。第２のサブブロックが少なくとも１つの非０係数を有するとき（１５８の「はい」ブランチ）、エントロピー・コーディング・ユニット４６は、次いで、ｌｕｍａ１６×８＿ＣＢＰの第２のビットをセットし、たとえば、ｌｕｍａ１６×８＿ＣＢＰ［１］に値「１」を割り当てる（１６２）。
【０１３８】
以下の擬似コードは、図８および図９に関して説明した方法の１つの例示的実装形態を与える。
【数３】
2020109982.tif 000005
【０１３９】
擬似コードにおいて、「ｌｕｍａｃｂｐ１６」は、１６×１６ルーマ・ブロック全体が非０係数を有するか否かを示す１ビットフラグを付加する動作に対応する。「ｌｕｍａｃｂｐ１６」が１に等しいとき、少なくとも１つの非０係数がある。関数「Ｔｒａｎｓｆｏｒｍ＿ｓｉｚｅ＿ｆｌａｇ」は、使用されている変換、たとえば、４×４変換、８×８変換、１６×１６変換（１６×１６以上の動きパーティション用）、１６×８変換（Ｐ＿１６×８用）、または８×１６変換（Ｐ＿８×１６用）のうちの１つを示す結果を有する実行される計算を指す。ＴＲＡＮＳＦＯＲＭ＿ＳＩＺＥ＿ＧＲＥＡＴＥＲ＿ＴＨＡＮ＿１６×８は、変換サイズが１６×８または８×１６以上であることを示すために使用される計数値（たとえば「２」）である。ｔｒａｎｓｆｏｒｍ＿ｓｉｚｅ＿ｆｌａｇの結果は、６４×６４ピクセル・マクロ・ブロックのシンタックス情報に組み込まれる。
【０１４０】
「ｌｕｍａ１６×８＿ｃｂｐ」は、各ビットがＰ＿１６×８またはＰ＿８×１６の２つのパーティションのうちの１つが非０係数を有するか否かを示す２ビットの数を生成する計算を指す。ｌｕｍａ１６×８＿ｃｂｐから生じた２ビットの数は６４×６４ピクセル・マクロ・ブロックのシンタックスに組み込まれる。値「ｃｈｒｏｍａ＿ｃｂｐ」は、ＩＴＵ  Ｈ．２６４によって規定されているＣｏｄｅｄＢｌｏｃｋＰａｔｔｅｒｎＣｈｒｏｍａと同様にして計算できる。計算されたｃｈｒｏｍａ＿ｃｂｐ値は６４×６４ピクセル・マクロ・ブロックのシンタックス情報に組み込まれる。関数ｈ２６４＿ｃｂｐは、ＩＴＵ  Ｈ．２６４において定義されているＣＢＰと同様に計算できる。計算されたＨ２６４＿ｃｂｐ値は６４×６４ピクセル・マクロ・ブロックのシンタックス情報に組み込まれる。
【０１４１】
概して、図６〜図９に記載の方法は、ビデオ・エンコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを符号化することと、ブロックのサイズを示すブロック・タイプ・シンタックス情報を生成することと、符号化ブロックのコード化ブロック・パターン値を生成することであって、コード化ブロック・パターン値は、符号化ブロックが少なくとも１つの非０係数を含むかどうかを示す、生成することとを含むことができる。
【０１４２】
図１０は、６４×６４ピクセル・マクロ・ブロックの例示的な構成を示すブロック図である。図１０のマクロ・ブロックは、図１０中でＡ、Ｂ、Ｃ、およびＤと標示された４つの３２×３２パーティションを備える。図４Ａに関して説明したように、一例では、サブパーティションなしのブロック全体（６４×６４）、等しいサイズの２つの水平パーティション（３２×６４および３２×６４）、等しいサイズの２つの垂直パーティション（６４×３２および６４×３２）、または等しいサイズの４つの方形パーティション（３２×３２、３２×３２、３２×３２および３２×３２）の４つの方法のいずれか１つでブロックを区分することができる。
【０１４３】
図１０の例では、ブロック・パーティション全体はブロックＡ、Ｂ、Ｃ、およびＤの各々を備え、等しいサイズの２つの水平パーティションのうちの第１のパーティションはＡとＢとを備え、等しいサイズの２つの水平パーティションのうちの第２のパーティションはＣとＤとを備え、等しいサイズの２つの垂直パーティションのうちの第１のパーティションはＡとＣとを備え、等しいサイズの２つの垂直パーティションのうちの第２のパーティションはＢとＤとを備え、等しいサイズの４つの方形パーティションはＡ、Ｂ、Ｃ、およびＤの各々のうちの１つに対応する。同様のパーティション方式を、任意のサイズのブロック、たとえば、６４×６４ピクセルよりも大きいサイズ、３２×３２ピクセル、１６×１６ピクセル、８×８ピクセル、または他のサイズのビデオ・ブロックのために使用することができる。
【０１４４】
ビデオ・ブロックをイントラ・コーディングするとき、ビデオ・ブロックを区分するための様々な方法を使用することができる。その上、パーティションの各々を、別様に、すなわち、様々なイントラモードなど、異なるモードでイントラ・コーディングすることができる。たとえば、図１０のパーティションＡなど、３２×３２パーティションをサイズ１６×１６ピクセルの等しいサイズの４つのブロックにさらに区分することができる。一例として、ＩＴＵ  Ｈ．２６４には、１６×１６レベルにおけるイントラ・コーディングと、８×８レベルにおけるイントラ・コーディングと、４×４レベルにおけるイントラ・コーディングとを含む、１６×１６マクロ・ブロックをイントラ符号化するための３つの異なる方法が記載されている。ただし、ＩＴＵ  Ｈ．２６４は、同じイントラ・コーディング・モードを使用して１６×１６マクロ・ブロックの各パーティションを符号化することを規定している。したがって、ＩＴＵ  Ｈ．２６４によれば、１６×１６マクロ・ブロックの１つのサブブロックを４×４レベルにおいてイントラ・コーディングすべき場合、１６×１６マクロ・ブロックのあらゆるサブブロックを４×４レベルにおいてイントラ・コーディングしなければならない。
【０１４５】
一方、本開示の技法に従って構成されたエンコーダは混合モード手法を適用することができる。イントラ・コーディングの場合、たとえば、大型マクロ・ブロックは、様々なコーディング・モードで符号化された様々なパーティションを有することができる。一例として、３２×３２パーティションにおいて、たとえば、図４Ｂに示すように、１つの１６×１６パーティションを４×４ピクセルレベルにおいてイントラ・コーディングし、他の１６×１６パーティションを８×８ピクセルレベルにおいてイントラ・コード・コーディングし、１つの１６×１６パーティションを１６×１６レベルにおいてイントラ・コーディングすることができる。
【０１４６】
ビデオ・ブロックをイントラ・コーディングのために等しいサイズの４つのサブブロックに区分すべきとき、イントラ・コーディングすべき第１のブロックを左上のブロックとし、続いて第１のブロックのすぐ右のブロックをコーディングし、続いて第１のブロックのすぐ下のブロックをコーディングし、最後に続いて第１のブロックの右下のブロックをコーディングすることができる。図１０の例示的なブロックに関して、イントラ・コーディングの順序はＡからＢ、Ｃ、最後にＤに進むことになる。図１０は６４×６４ピクセル・マクロ・ブロックを示しているが、異なるサイズの区分されたブロックのイントラ・コーディングは、この同じ順序に従うことができる。
【０１４７】
ビデオ・ブロックをＰフレームまたはＰスライスの一部としてインター・コーディングすべきとき、ブロックを４つの上記のパーティションのいずれかに区分することができ、各パーティションを別々に符号化することができる。すなわち、ブロックの各パーティションを、異なる符号化モード、すなわち、イントラ符号化（Ｉコード化）または単一の参照フレーム／スライス／リストを参照するインター符号化（Ｐコード化）のいずれかに従って符号化することができる。以下の表１に、サイズＮ×Ｎのブロックの各潜在的なパーティションについてのインター符号化情報を要約する。表１で「Ｍ」に言及する場合、Ｍ＝Ｎ／２である。以下の表１では、Ｌ０は「リスト０」、すなわち、参照フレーム／スライス／リストを指す。Ｎ×Ｎブロックをどのように最良に区分するかを決定するときに、ビデオ・エンコーダ５０などのエンコーダは、図１１に関してより詳細に説明するように、ラグランジュ乗数に基づいて各ＭＢ＿Ｎ＿ｔｙｐｅ（すなわち、パーティションの各タイプ）についてレートひずみコスト情報を分析して、最低コストを最良のパーティション方法として選択することができる。
【表１】
2020109982.tif 000006
【０１４８】
上記の表１において、列「ＭＢ＿Ｎ＿ｔｙｐｅ」の要素は、Ｎ×Ｎブロックの各パーティションタイプのキーである。列「ＭＢ＿Ｎ＿ｔｙｐｅの名前」の要素は、Ｎ×Ｎブロックの様々な区分タイプの名前である。名前中の「Ｐ」は、Ｐコーディングを使用して、すなわち、単一のフレーム／スライス／リストを参照してブロックがインター・コーディングされることを指す。名前中の「Ｌ０」は、Ｐコーディングのための参照フレームまたはスライスとして使用される参照フレーム／スライス／リスト、たとえば、「リスト０」を指す。「Ｎ×Ｎ」は、パーティションがブロック全体であることを指し、「Ｎ×Ｍ」は、パーティションが幅Ｎおよび高さＭの２つのパーティションであることを指し、「Ｍ×Ｎ」は、パーティションが幅Ｍおよび高さＮの２つのパーティションであることを指し、「Ｍ×Ｍ」は、パーティションが、それぞれ幅Ｍおよび高さＭをもつ等しいサイズの４つのパーティションであることを指す。
【０１４９】
表１において、ＰＮ＿Ｓｋｉｐは、たとえば、コーディングから生じるブロックが全０係数を有するので、ブロックが「スキップ」されたことを暗示する。列「予測モードパート１」の要素は、パーティションのサブパーティション１のための参照フレーム／スライス／リストを指し、列「予測モードパート２」の要素は、パーティションのサブパーティション２のための参照フレーム／スライス／リストを指す。Ｐ＿Ｌ０＿Ｎ×Ｎは単一のパーティションのみを有するので、第２のサブパーティションはなく、「予測モードパート２」の対応する要素は「該当なし」である。ＰＮ＿Ｍ×Ｍについては、別々に符号化できる４つのパーティションブロックが存在する。したがって、ＰＮ＿Ｍ×Ｍのための両方の予測モード列は「該当なし」を含む。ＰＮ＿Ｓｋｉｐは、Ｐ＿Ｌ０＿Ｎ×Ｎの場合と同様に、単一のパートのみを有するので、列「予測モードパート２」の対応する要素は「該当なし」である。
【０１５０】
以下の表２は、表１と同様の列および要素を含む。ただし、表２は、双方向予測（Ｂ符号化）を使用するインター・コード化ブロックのための様々な符号化モードに対応する。したがって、第１のフレーム／スライス／リスト（Ｌ０）と第２のフレーム／スライス／リスト（Ｌ１）のいずれかまたは両方によって各パーティションを符号化することができる。「ＢｉＰｒｅｄ」は、対応するパーティションがＬ０とＬ１の両方から予測されることを指す。表２では、列ラベルおよび値の意味は、表１で使用したものと同様である。
【表２】
2020109982.tif 000007
【０１５１】
図１１は、Ｎ×Ｎピクセルビデオ・ブロックのための最適な区分および符号化方法を計算するための例示的な方法を示すフローチャートである。概して、図１１の方法は、たとえば、図４Ａに示す各異なる区分方法に適用される各異なる符号化方法（たとえば、様々な空間モードまたは時間モード）についてコストを計算することと、Ｎ×Ｎピクセルビデオ・ブロックについて最良のレートひずみコストをもつ符号化モードと区分方法との組合せを選択することとを備える。コストは、一般に、レートひずみコスト＝ひずみ＋λ＊レートであるように、レート値およびひずみ値とともにラグランジュ乗数を使用して計算でき、ひずみは、元のブロックとコード化ブロックとの間の誤差を表し、レートは、コーディング・モードをサポートするために必要なビット・レートを表す。場合によっては、マクロ・ブロック・パーティション、スライスまたはフレーム・レベルについてレートおよびひずみを判断することができる。
【０１５２】
最初に、ビデオ・エンコーダ５０は、符号化すべきＮ×Ｎビデオ・ブロックを受信する（１７０）。たとえば、ビデオ・エンコーダ５０は、ビデオ・エンコーダ５０が符号化および区分方法を選択すべき６４×６４大型マクロ・ブロック、または、たとえば、３２×３２または１６×１６パーティションなど、そのパーティションを受信する。ビデオ・エンコーダ５０は、次いで、様々なイントラ・コーディング・モードやインター・コーディング・モードなどの多種多様なコーディング・モードを使用してＮ×Ｎブロックを符号化するためのコストを計算する（１７２）。Ｎ×Ｎブロックを空間的に符号化するためのコストを計算するために、ビデオ・エンコーダ５０は、所与のコーディング・モードでＮ×Ｎブロックを符号化するために必要なひずみとビット・レートとを計算し、次いで、コスト＝ひずみ(モード,N×N)＋λ＊レート(モード,N×N)を計算する。ビデオ・エンコーダ５０は、指定されたコーディング技法を使用してマクロ・ブロックを符号化し、得られたビット・レートコストとひずみと、を判断する。ひずみは、たとえば、絶対値差分和（ＳＡＤ）メトリック、差分２乗和（ＳＳＤ）メトリック、または他のピクセル差分メトリックに基づくコード化マクロ・ブロック中のピクセルと元のマクロ・ブロック中のピクセルとのピクセル差分に基づいて判断できる。
【０１５３】
ビデオ・エンコーダ５０は、次いで、Ｎ×Ｎブロックを等しいサイズの重複しない２つの水平Ｎ×（Ｎ／２）パーティションに区分する。ビデオ・エンコーダ５０は、様々なコーディング・モードを使用してパーティションの各々を符号化するためのコストを計算する（１７６）。たとえば、第１のＮ×（Ｎ／２）パーティションを符号化するためのコストを計算するために、ビデオ・エンコーダ５０は、第１のＮ×（Ｎ／２）パーティションを符号化するためのひずみとビット・レートとを計算し、次いで、コスト＝ひずみ(モード,第1のパーティション,N×(N/2))＋λ＊レート(モード,第1のパーティション,N×(N/2))を計算する。
【０１５４】
ビデオ・エンコーダ５０は、次いで、Ｎ×Ｎブロックを等しいサイズの重複しない２つの垂直（Ｎ／２）×Ｎパーティションに区分する。ビデオ・エンコーダ５０は、様々なコーディング・モードを使用してパーティションの各々を符号化するためのコストを計算する（１７８）。たとえば、（Ｎ／２）×Ｎパーティションのうちの第１のパーティションを符号化するためのコストを計算するために、ビデオ・エンコーダ５０は、第１の（Ｎ／２）×Ｎパーティションを符号化するためのひずみとビット・レートとを計算し、次いで、コスト＝ひずみ(モード,第1のパーティション,(N/2)×N)＋λ＊レート(モード,第1のパーティション,(N/2)×N)を計算する。ビデオ・エンコーダ５０は、（Ｎ／２）×Ｎマクロ・ブロック・パーティションの第２のパーティションを符号化するためのコストについて同様の計算を実行する。
【０１５５】
ビデオ・エンコーダ５０は、次いで、Ｎ×Ｎブロックを等しいサイズの重複しない４つの（Ｎ／２）×（Ｎ／２）パーティションに区分する。ビデオ・エンコーダ５０は、様々なコーディング・モードを使用してパーティションを符号化するためのコストを計算する（１８０）。（Ｎ／２）×（Ｎ／２）パーティションを符号化するためのコストを計算するために、ビデオ・エンコーダ５０は、最初に、左上の（Ｎ／２）×（Ｎ／２）パーティションを符号化するためのひずみとビット・レートとを計算し、そのコストを、コスト(モード,左上,(N/2)×(N/2))＝ひずみ(モード,左上,(N/2)×(N/2))＋λ＊レート(モード,左上,(N/2)×(N/2))として求める。ビデオ・エンコーダ５０は、（１）左上パーティション、（２）右上パーティション、（３）左下パーティション、（４）右下パーティションの順に各（Ｎ／２）×（Ｎ／２）ブロックのコストを同様に計算する。ビデオ・エンコーダ５０は、いくつかの例では、（Ｎ／２）×（Ｎ／２）パーティションの１つまたは複数に対してこの方法の再帰呼出しを行い、（Ｎ／２）×（Ｎ／２）パーティションの各々を、たとえば、（Ｎ／２）×（Ｎ／４）パーティション、（Ｎ／４）×（Ｎ／２）パーティション、および（Ｎ／４）×（Ｎ／４）パーティションとしてさらに区分し、別々に符号化するコストを計算する。
【０１５６】
次に、ビデオ・エンコーダ５０は、レートおよびひずみに関して、区分と符号化モードのどの組合せが最良、すなわち、最低コストを生じたかを判断する（１８２）。たとえば、ビデオ・エンコーダ５０は、隣接する２つの（Ｎ／２）×（Ｎ／２）パーティションを符号化する最良のコストを、隣接する２つの（Ｎ／２）×（Ｎ／２）パーティションを備えるＮ×（Ｎ／２）パーティションを符号化する最良のコストと比較する。隣接する２つの（Ｎ／２）×（Ｎ／２）パーティションを符号化する総合コストが、それらを備えるＮ×（Ｎ／２）パーティションを符号化するためのコストを超えるとき、ビデオ・エンコーダ５０は、Ｎ×（Ｎ／２）パーティションを符号化する、より低いコストのオプションを選択する。一般に、ビデオ・エンコーダ５０は、最低コストの区分および符号化方法を識別するために、区分方法と符号化モードとのあらゆる組合せを各パーティションに適用することができる。場合によっては、ビデオ・エンコーダ５０を、区分と符号化モードとの組合せのより限定されたセットを評価するように構成することができる。
【０１５７】
最良、たとえば、最低コストの区分および符号化方法を判断した後、ビデオ・エンコーダ５０は、最良コストの判断された方法を使用して、Ｎ×Ｎマクロ・ブロックを符号化する（１８４）。場合によっては、結果は、様々なコーディング・モードを使用してコーディングされるパーティションを有する大型マクロ・ブロックであり得る。様々なコーディング・モードが大型マクロ・ブロック中の様々なパーティションに適用されるように大型マクロ・ブロックに混合モードコーディングを適用する能力により、マクロ・ブロックを低減されたコストでコーディングすることが可能になる。
【０１５８】
いくつかの例では、混合モードでコーディングするための方法は、ビデオ・エンコーダ５０を用いて１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、そのブロックをパーティションに区分することと、第１の符号化モードでパーティションのうちの１つを符号化することと、第１の符号化モードとは異なる第２のコーディング・モードでパーティションのうちの別の１つを符号化することと、ブロックのサイズを示し、パーティションとそれらのパーティションを符号化するために使用される符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することとを含むことができる。
【０１５９】
図１２は、様々なパーティションと各パーティションのための様々な選択された符号化方法とをもつ例示的な６４×６４ピクセル大型マクロ・ブロックを示すブロック図である。図１２の例では、各パーティションは、「Ｉ」、「Ｐ」、または「Ｂ」のうちの１つで標示されている。「Ｉ」と標示されたパーティションは、エンコーダが、たとえば、レートひずみ評価に基づいてイントラ・コーディングを利用することを選択したパーティションである。「Ｐ」と標示されたパーティションは、エンコーダが、たとえば、レートひずみ評価に基づいて単一参照インター・コーディングを利用することを選択したパーティションである。「Ｂ」と標示されたパーティションは、エンコーダが、たとえば、レートひずみ評価に基づいて双予測インター・コーディングを利用することを選択したパーティションである。図１２の例では、同じ大型マクロ・ブロック内の様々なパーティションは、様々なパーティション・サイズまたはサブパーティション・サイズと様々なイントラ・コーディング・モードまたはインター・コーディング・モードとを含む様々なコーディング・モードを有する。
【０１６０】
大型マクロ・ブロックは、Ｈ．２６４コーディング規格の拡張など、所与のコーディング規格のマクロ・ブロック・タイプ、たとえば、ｍｂ６４＿ｔｙｐｅまたはｍｂ３２＿ｔｙｐｅを識別するマクロ・ブロックシンタックス要素によって識別されるマクロ・ブロックである。マクロ・ブロック・タイプ・シンタックス要素は、符号化ビデオビット・ストリーム中でマクロ・ブロック・ヘッダシンタックス要素として与えられ得る。図１２に示すＩコード化、Ｐコード化およびＢコード化パーティションは、様々なコーディング・モード、たとえば、サイズが１６×１６よりも大きい大型パーティションのための大型ブロックサイズモード、またはサイズが１６×１６以下のパーティションのためのＨ．２６４モードを含む様々なブロックサイズをもつイントラ予測モードまたはインター予測モードに従ってコーディングできる。
【０１６１】
一例では、ビデオ・エンコーダ５０などのエンコーダは、図１１に関して説明した例示的な方法を使用して、図１２の例示的な大型マクロ・ブロックの様々なパーティションおよびサブパーティションについて様々な符号化モードとパーティション・サイズとを選択することができる。たとえば、ビデオ・エンコーダ５０は、６４×６４マクロ・ブロックを受信し、図１１の方法を実行し、結果として様々なパーティション・サイズおよびコーディング・モードをもつ図１２の例示的なマクロ・ブロックを生成することができる。ただし、区分および符号化モードの選択は、たとえば、マクロ・ブロックが選択されたフレームのタイプ、および図１１の方法が実行される入力マクロ・ブロックと、に基づいて、その方法の適用から生じ得ることを理解されたい。たとえば、フレームがＩフレームを備えるとき、各パーティションはイントラ符号化されることになる。別の例として、フレームがＰフレームを備えるとき、各パーティションは、単一の参照フレームに基づいて（すなわち、双予測なしに）イントラ符号化またはインター・コード化され得る。
【０１６２】
図１２の例示的なマクロ・ブロックを、例示のために双予測フレーム（Ｂフレーム）から選択されたと仮定する。他の例では、マクロ・ブロックがＰフレームから選択された場合、ビデオ・エンコーダ５０は双方向予測を使用してパーティションを符号化しないであろう。同様に、マクロ・ブロックがＩフレームから選択された場合、ビデオ・エンコーダ５０は、インター・コーディング、すなわち、Ｐ符号化またはＢ符号化のいずれかを使用してパーティションを符号化しないであろう。しかしながら、いずれの場合も、ビデオ・エンコーダ５０は、マクロ・ブロックの様々な部分について様々なパーティション・サイズを選択し、任意の利用可能な符号化モードを使用して各パーティションを符号化することを選択することができる。
【０１６３】
図１２の例では、レートひずみ分析に基づくパーティションとモード選択との組合せが、１つの３２×３２Ｂコード化パーティション、１つの３２×３２Ｐコード化パーティション、１つの１６×３２Ｉコード化パーティション、１つの３２×１６Ｂコード化パーティション、１つの１６×１６Ｐコード化パーティション、１つの１６×８Ｐコード化パーティション、１つの８×１６Ｐコード化パーティション、１つの８×８Ｐコード化パーティション、１つの８×８Ｂコード化パーティション、１つの８×８Ｉコード化パーティション、および様々なコーディング・モードを有する多数のより小さいサブパーティションを生じたと仮定する。図１２の例は、大型マクロ・ブロック中のパーティションの混合モードコーディングの概念図のために与えるものであり、必ずしも特定の大型６４×６４マクロ・ブロックの実際のコーディング結果を表すと考えるべきではない。
【０１６４】
図１３は、ビデオ・シーケンスのフレームまたはスライスを符号化するためのマクロ・ブロックの最適サイズを判断するための例示的な方法を示すフローチャートである。フレームのマクロ・ブロックの最適サイズを選択することに関して説明するが、図１３に関して説明するのと同様の方法を使用して、スライスのマクロ・ブロックの最適サイズを選択することができる。同様に、図１３の方法をビデオ・エンコーダ５０に関して説明するが、ビデオ・シーケンスのフレームを符号化するためのマクロ・ブロックの最適（たとえば、最小コストの）サイズを判断するために、任意のエンコーダが図１３の例示的な方法を利用することができることを理解されたい。概して、図１３の方法は、１６×１６マクロ・ブロック、３２×３２マクロ・ブロック、および６４×６４マクロ・ブロックの各々について１回ずつ、３回符号化パスを実行することを備え、ビデオ・エンコーダは、どのマクロ・ブロックサイズが最良のレートひずみを与えるかを判断するために、各パスについてレートひずみメトリックを計算することができる。
【０１６５】
ビデオ・エンコーダ５０は、最初に、符号化フレームＦ16を生成するために、第１の符号化パス中に１６×１６ピクセル・マクロ・ブロックを使用して、たとえば、関数符号化（フレーム、ＭＢ１６＿ｔｙｐｅ）を使用してフレームを符号化する（１９０）。第１の符号化パスの後、ビデオ・エンコーダ５０は、１６×１６ピクセル・マクロ・ブロックの使用に基づくビット・レートおよびひずみをそれぞれＲ16およびＤ16として計算する（１９２）。ビデオ・エンコーダ５０は、次いで、ラグランジュ乗数を使用して１６×１６ピクセル・マクロ・ブロックを使用するコストＣ16の形態でレートひずみメトリックＣ16＝Ｄ16＋λ＊Ｒ16を計算する（１９４）。たとえば、Ｈ．２６４規格に従って１６×１６ピクセル・マクロ・ブロックについてコーディング・モードおよびパーティション・サイズを選択する。
【０１６６】
ビデオ・エンコーダ５０は、次いで、符号化フレームＦ32を生成するために、第２の符号化パス中に３２×３２ピクセル・マクロ・ブロックを使用して、たとえば、関数符号化（フレーム、ＭＢ３２＿ｔｙｐｅ）を使用してフレームを符号化する（１９６）。第２の符号化パスの後、ビデオ・エンコーダ５０は、３２×３２ピクセル・マクロ・ブロックの使用に基づくビット・レートおよびひずみをそれぞれＲ32およびＤ32として計算する（１９８）。ビデオ・エンコーダ５０は、次いで、ラグランジュ乗数を使用して、３２×３２ピクセル・マクロ・ブロックを使用するコストＣ32の形態でレートひずみメトリックＣ32＝Ｄ32＋λ＊Ｒ32を計算する（２００）。たとえば、図１１および図１２に関して説明したレートおよびひずみ評価技法を使用して、３２×３２ピクセル・マクロ・ブロックについてコーディング・モードおよびパーティション・サイズを選択する。
【０１６７】
ビデオ・エンコーダ５０は、次いで、符号化フレームＦ64を生成するために、第３の符号化パス中に６４×６４ピクセル・マクロ・ブロックを使用して、たとえば、関数符号化（フレーム、ＭＢ６４＿ｔｙｐｅ）を使用してフレームを符号化する（２０２）。第３の符号化パスの後、ビデオ・エンコーダ５０は、６４×６４ピクセル・マクロ・ブロックの使用に基づくビット・レートおよびひずみをそれぞれＲ64およびＤ64として計算する（２０４）。ビデオ・エンコーダ５０は、次いで、ラグランジュ乗数を使用して、６４×６４ピクセル・マクロ・ブロックを使用するコストＣ64の形態でレートひずみメトリックＣ64＝Ｄ64＋λ＊Ｒ64を計算する（２０６）。たとえば、図１１および図１２に関して説明したレートおよびひずみ評価技法を使用して、６４×６４ピクセル・マクロ・ブロックについてコーディング・モードおよびパーティション・サイズを選択する。
【０１６８】
次に、ビデオ・エンコーダ５０は、フレームについてメトリックＣ16、Ｃ32、およびＣ64のいずれが最低であるかを判断する（２０８）。ビデオ・エンコーダ５０は、最低コストを生じたマクロ・ブロックサイズで符号化されたフレームを使用することを選択する（２１０）。したがって、たとえば、Ｃ16が最低であるとき、ビデオ・エンコーダ５０は、記憶または送信のためにビット・ストリーム中で符号化フレームとして１６×１６マクロ・ブロックで符号化されたフレームＦ16をデコーダにフォワーディングする。Ｃ32が最低であるとき、ビデオ・エンコーダ５０は、３２×３２マクロ・ブロックで符号化されたＦ32をフォワーディングする。Ｃ64が最低であるとき、ビデオ・エンコーダ５０は、６４×６４マクロ・ブロックで符号化されたＦ64をフォワーディングする。
【０１６９】
他の例では、ビデオ・エンコーダ５０は任意の順序で符号化パスを実行することができる。たとえば、ビデオ・エンコーダ５０は、６４×６４マクロ・ブロック符号化パスで開始し、２番目に３２×３２マクロ・ブロック符号化パスを実行し、１６×１６マクロ・ブロック符号化パスで終了することができる。また、様々なサイズのマクロ・ブロックをもつスライスなど、複数のマクロ・ブロックを備える他のコード化ユニットを符号化するために同様の方法を使用することができる。たとえば、ビデオ・エンコーダ５０は、フレーム全体ではなくフレームのスライスを符号化するための最適マクロ・ブロックサイズを選択するために、図１３と同様の方法を適用することができる。
【０１７０】
ビデオ・エンコーダ５０はまた、デコーダが使用するために、コード化ユニットのヘッダ中で特定のコード化ユニット（たとえば、フレームまたはスライス）のマクロ・ブロックのサイズの識別子を送信することができる。図１３の方法によれば、方法は、デジタル・ビデオ・エンコーダを用いて、デジタル・ビデオ・ストリームのコード化ユニットを受信することと、１６×１６ピクセルをそれぞれ備える第１の複数のブロックを使用してコード化ユニットを符号化するためのレートひずみに対応する第１のレートひずみメトリックを計算することと、１６×１６ピクセルよりも大きいピクセルをそれぞれ備える第２の複数のブロックを使用してコード化ユニットを符号化するためのレートひずみに対応する第２のレートひずみメトリックを計算することと、コード化ユニットについて第１のレートひずみメトリックと第２のレートひずみメトリックのいずれが最低であるかを判断することとを含むことができる。方法は、第１のレートひずみメトリックが最低であると判断されたときは第１の複数のブロックを使用してコード化ユニットを符号化し、第２のレートひずみメトリックが最低であると判断されたときは第２の複数のブロックを使用してコード化ユニットを符号化することをさらに含むことができる。
【０１７１】
図１４は、本開示で説明する様々な技法のいずれかを使用して、規格よりも大きいマクロ・ブロックを使用してデジタル・ビデオ・データを符号化および／または復号することができるビデオ・エンコーダ・デコーダ・コーデック２３４を含む例示的なワイヤレス通信デバイス２３０を示すブロック図である。図１４の例では、ワイヤレス通信デバイス２３０は、ビデオ・カメラ２３２と、ビデオ・エンコーダ・デコーダ（コーデック）２３４と、変調器／復調器（モデム）２３６と、トランシーバ２３８と、プロセッサ２４０と、ユーザ・インターフェース２４２と、メモリ２４４と、データ記憶デバイス２４６と、アンテナ２４８と、バス２５０とを含む。
【０１７２】
図１４に示すワイヤレス通信デバイス２３０中に含まれる構成要素は、ハードウェア、ソフトウェアおよび／またはファームウェアの任意の適切な組合せによって実現できる。図示の例では、構成要素は別々のユニットとして示されている。しかしながら、他の例では、様々な構成要素は、共通のハードウェアおよび／またはソフトウェア内の組合せユニットに統合できる。一例として、メモリ２４４は、ビデオ・コーデック２３４の様々な機能に対応する、プロセッサ２４０によって実行可能な命令を記憶することができる。別の例として、ビデオ・カメラ２３２は、ビデオ・コーデック２３４の機能、たとえば、ビデオ・データの符号化および／または復号を実行するビデオ・コーデックを含むことができる。
【０１７３】
一例では、ビデオ・カメラ２３２はビデオ・ソース１８（図１）に対応し得る。一般に、ビデオ・カメラ２３２は、デジタル・ビデオ・データを生成するために、センサアレイによってキャプチャされたビデオ・データを記録することができる。ビデオ・カメラ２３２は、未加工の記録されたデジタル・ビデオ・データを符号化のためにビデオ・コーデック２３４に送信し、次いで、データ記憶のためにバス２５０を介してデータ記憶デバイス２４６に送信することができる。プロセッサ２４０は、バス２５０を介して、ビデオを記録するためのモードと、ビデオを記録するためのフレーム・レートと、記録を終了するかまたはフレーム・レートモードを変更する時間と、ビデオ・データをビデオ・コーデック２３４に送信する時間とに関する信号、または他のモードまたはパラメータを示す信号をビデオ・カメラ２３２に送信することができる。
【０１７４】
ユーザ・インターフェース２４２は、入力インターフェースや出力インターフェースなど、１つまたは複数のインターフェースを備えることができる。たとえば、ユーザ・インターフェース２４２は、タッチ・スクリーン、キーパッド、ボタン、ビューファインダの働きをすることができるスクリーン、マイクロフォン、スピーカー、または他のインターフェースを含むことができる。ビデオ・カメラ２３２がビデオ・データを受信すると、プロセッサ２４０は、ビューファインダ上で表示すべきビデオ・データをユーザ・インターフェース２４２に送信するために、ビデオ・カメラ２３２にシグナリングすることができる。
【０１７５】
ビデオ・コーデック２３４は、ビデオ・カメラ２３２からのビデオ・データを符号化し、アンテナ２４８、トランシーバ２３８、およびモデム２３６を介して受信されたビデオ・データを復号することができる。ビデオ・コーデック２３４は、追加または代替として、再生のためにデータ記憶デバイス２４６から受信された、前に符号化されたデータを復号することができる。ビデオ・コーデック２３４は、従来のビデオ符号化規格によって規定されたマクロ・ブロックのサイズよりも大きいマクロ・ブロックを使用してデジタル・ビデオ・データを符号化および／または復号することができる。たとえば、ビデオ・コーデック２３４は、６４×６４ピクセルまたは３２×３２ピクセルを備える大型マクロ・ブロックを使用してデジタル・ビデオ・データを符号化および／または復号することができる。大型マクロ・ブロックは、Ｈ．２６４規格の拡張などのビデオ規格に従ってマクロ・ブロック・タイプ・シンタックス要素を用いて識別できる。
【０１７６】
ビデオ・コーデック２３４は、ビデオ・エンコーダ５０（図２）および／またはビデオ・デコーダ６０（図３）のいずれかまたは両方の機能、ならびに本開示で説明する他の符号化／復号機能または技法を実行することができる。たとえば、コーデック２３４は、大型マクロ・ブロックを多種多様なサイズのより小さいパーティションに区分し、選択されたパーティションに対して様々なコーディング・モード、たとえば、空間的（Ｉ）コーディング・モードまたは時間的（ＰまたはＢ）コーディング・モードを使用することができる。パーティション・サイズおよびコーディング・モードの選択は、そのようなパーティション・サイズおよびコーディング・モードのレートひずみ結果に基づくことができる。コーデック２３４はまた、大型マクロ・ブロック内の非０係数を有するコード化マクロ・ブロックおよびパーティションを識別するために、階層コード化ブロック・パターン（ＣＢＰ）値を利用することができる。さらに、いくつかの例では、コーデック２３４は、フレーム、スライスまたは他のコーディング・ユニットについて、より好都合な結果を生じるマクロ・ブロックサイズを選択するために、大型マクロ・ブロックと小型マクロ・ブロックのレートひずみメトリックを比較することができる。
【０１７７】
ユーザは、データ記憶デバイス２４６中の記録されたビデオ・シーケンスを、モデム２３６、トランシーバ２３８、およびアンテナ２４８を介して、別のワイヤレス通信デバイスなど、別のデバイスに送信するために、ユーザ・インターフェース２４２と対話することができる。本開示で説明する拡張または修正を条件として、ＭＰＥＧ−２、ＭＰＥＧ−３、ＭＰＥＧ−４、Ｈ．２６３、Ｈ．２６４、または他のビデオ符号化規格などの符号化規格に従ってビデオ・シーケンスを符号化することができる。たとえば、本開示で説明するように、規格よりも大きいマクロ・ブロックを使用してビデオ・シーケンスを符号化することもできる。ワイヤレス通信デバイス２３０はまた、符号化ビデオセグメントを受信し、受信したビデオ・シーケンスをデータ記憶デバイス２４６に記憶することができる。
【０１７８】
受信した符号化ビデオ・シーケンスのマクロ・ブロックは、従来のビデオ符号化規格によって指定されたマクロ・ブロックよりも大きいとすることができる。記録されたビデオ・シーケンスまたは受信したビデオセグメントなど、データ記憶デバイス２４６中の符号化ビデオセグメントを表示するために、ビデオ・コーデック２３４は、ビデオ・シーケンスを復号し、ビデオセグメントの復号されたフレームをユーザ・インターフェース２４２に送信する。ビデオ・シーケンスがオーディオデータを含むとき、ビデオ・コーデック２３４はオーディオを復号することができ、またはワイヤレス通信デバイス２３０は、オーディオを復号するためのオーディオコーデック（図示せず）をさらに含むことができる。このようにして、ビデオ・コーデック２３４は、エンコーダの機能とデコーダの機能の両方を実行することができる。
【０１７９】
図１４のワイヤレス通信デバイス２３０のメモリ２４４は、プロセッサ２４０および／またはビデオ・コーデック２３４に、符号化ビデオ・データを記憶することに加えて様々なタスクを実行させるコンピュータ可読命令で符号化できる。そのような命令は、データ記憶デバイス２４６などのデータ記憶デバイスからメモリ２４４にロードできる。たとえば、命令は、プロセッサ２４０に、ビデオ・コーデック２３４に関して説明した機能を実行させることができる。
【０１８０】
図１５は、例示的な階層コード化ブロック・パターン（ＣＢＰ）２６０を示すブロック図である。ＣＢＰ２６０の例は、概して、６４×６４ピクセル・マクロ・ブロックのシンタックス情報の部分に対応する。図１５の例では、ＣＢＰ２６０は、ＣＢＰ６４値２６２と、４つのＣＢＰ３２値２６４、２６６、２６８、２７０と、４つのＣＢＰ１６値２７２、２７４、２７６、２７８とを備える。ＣＢＰ２６０の各ブロックは１つまたは複数のビットを含むことができる。一例では、ＣＢＰ６４値２６２が、大型マクロ・ブロック中に少なくとも１つの非０係数があることを示す値「１」をもつビットであるとき、ＣＢＰ２６０は、図１５の例に示すように、大型６４×６４マクロ・ブロックの４つの３２×３２パーティションの４つのＣＢＰ３２値２６４、２６６、２６８、２７０を含む。
【０１８１】
別の例では、ＣＢＰ６４値２６２が値「０」をもつビットであるとき、ＣＢＰ２６０は、値「０」が、ＣＢＰ２６０に対応するブロックが全０値係数を有することを示し得るので、ＣＢＰ６４のみからなることができる。したがって、そのブロックのすべてのパーティションは、同様に全０値係数を含んでいることになる。一例では、ＣＢＰ６４が値「１」をもつビットであり、特定の３２×３２パーティションのＣＢＰ３２値のうちの１つが値「１」をもつビットであるとき、その３２×３２パーティションのＣＢＰ３２値は、たとえば、ＣＢＰ３２値２６６に関して示すように、ＣＢＰ１６値を表す４つのブランチを有する。一例では、ＣＢＰ３２値が値「０」をもつビットであるとき、ＣＢＰ３２はブランチを有しない。図１５の例では、ＣＢＰ２６０は、ＣＢＰ６４値が「１」であり、３２×３２パーティションのうちの１つがＣＢＰ３２値「１」を有することを示す「１０１００」の５ビットプレフィックスを、ＣＢＰ３２の値「１」をもつ３２×３２パーティションの１６×１６パーティションに対応する４つのＣＢＰ１６値２７２、２７４、２７６、２７８に対応する後続のビットとともに有することができる。図１５の例では、単一のＣＢＰ３２値のみが値「１」を有するものとして示されているが、他の例では、２つ、３つまたは４つすべての３２×３２パーティションがＣＢＰ３２値「１」を有することができ、その場合、対応するＣＢＰ１６値をもつ４つの１６×１６パーティションの複数のインスタンスが必要とされることになる。
【０１８２】
図１５の例では、４つの１６×１６パーティションの４つのＣＢＰ１６値２７２、２７４、２７６、２７８を様々な方法に従って、たとえば、図８および図９の方法に従って計算することができる。ＣＢＰ１６値２７２、２７４、２７６、２７８のいずれかまたはすべては、「ｌｕｍａｃｂｐ１６」値、ｔｒａｎｓｆｏｒｍ＿ｓｉｚｅ＿ｆｌａｇ、および／またはｌｕｍａ１６×８＿ｃｂｐを含むことができる。ＣＢＰ１６値２７２、２７４、２７６、２７８はまた、図８および図９に関して説明したように、ＩＴＵ  Ｈ．２６４において定義されているＣＢＰ値に従って、またはＩＴＵ  Ｈ．２６４におけるＣｏｄｅｄＢｌｏｃｋＰａｔｔｅｒｎＣｈｒｏｍａとして計算できる。図１５の例では、ＣＢＰ１６  ２７８が値「１」を有し、他のＣＢＰ１６値２７２、２７４、２７６が値「０」を有すると仮定すると、６４×６４マクロ・ブロックの９ビットＣＢＰ値は「１０１０００００１」となり、各ビットは、ＣＢＰ／パーティション階層中のそれぞれのレベルにおけるパーティションのうちの１つに対応する。
【０１８３】
図１６は、ＣＢＰ２６０（図１５）に対応する例示的なツリー構造２８０を示すブロック図である。ＣＢＰ６４ノード２８２はＣＢＰ６４値２６２に対応し、ＣＢＰ３２ノード２８４、２８６、２８８、２９０は、それぞれＣＢＰ３２値２６４、２６６、２６８、２７０の各々に対応し、ＣＢＰ１６ノード２９２、２９４、２９６、２９８は、それぞれＣＢＰ１６値２７２、２７４、２７６、２７８の各々に対応する。このようにして、本開示で定義されるコード化ブロック・パターン値は階層ＣＢＰに対応し得る。ツリーにおいて別のブランチを生じる各ノードは、それぞれのＣＢＰ値「１」に対応する。図１５および図１６の例では、ＣＢＰ６４  ２８２とＣＢＰ３２  ２８６は、両方とも値「１」を有し、可能なＣＢＰ値「１」をもつ、すなわち、次のパーティション・レベルにおける少なくとも１つのパーティションが少なくとも１つの非０変換係数値を含む、さらなるパーティションを生じる。
【０１８４】
図１７は、コード化ユニットのビデオ・ブロックのためのブロック・ベースのシンタックスエンコーダおよびデコーダを示し、選択するために、コード化ユニットのシンタックス情報を使用するための例示的な方法を示すフローチャートである。概して、コード化ユニットの複数のビデオ・ブロックを符号化することに加えて、およびそれに関連して、ビデオ・エンコーダ２０（図１）などのビデオ・エンコーダによって図１７のステップ３００〜３１０を実行することができる。コード化ユニットは、ビデオ・フレーム、スライス、またはピクチャ・グループ（「シーケンス」とも呼ばれる）を備えることができる。コード化ユニットの複数のビデオ・ブロックを復号することに加えて、およびそれに関連して、ビデオ・デコーダ３０（図１）などのビデオ・デコーダによって図１７のステップ３１２〜３１６を実行することができる。
【０１８５】
最初に、ビデオ・エンコーダ２０は、フレーム、スライス、またはピクチャ・グループなど、コード化ユニットの様々なサイズのブロックのセットを受信する（３００）。本開示の技法によれば、ブロックの１つまたは複数は、１６×１６ピクセルよりも大きいピクセル、たとえば、３２×３２ピクセル、６４×６４ピクセルなどを備えることができる。ただし、ブロックは、それぞれ同数のピクセルを含む必要はない。一般に、ビデオ・エンコーダ２０は、同じブロック・ベースのシンタックスを使用してブロックの各々を符号化することができる。たとえば、ビデオ・エンコーダ２０は、上記で説明したように、階層コード化ブロック・パターンを使用してブロックの各々を符号化することができる。
【０１８６】
ビデオ・エンコーダ２０は、コード化ユニットのブロックのセット中の最大ブロック、すなわち、最大ブロックサイズに基づいて、使用すべきブロック・ベースのシンタックスを選択することができる。最大ブロックサイズは、コード化ユニット中に含まれる最大マクロ・ブロックのサイズに対応し得る。したがって、ビデオ・エンコーダ２０はセット中の最大サイズのブロックを判断する（３０２）。図１７の例では、ビデオ・エンコーダ２０はまた、セット中の最小サイズのブロックを判断する（３０４）。上記で説明したように、ブロックの階層コード化ブロック・パターンは、ブロックのパーティションが非ゼロ量子化係数を有するかどうかに対応する長さを有する。いくつかの例では、ビデオ・エンコーダ２０は、コード化ユニットのシンタックス情報中に最小サイズ値を含めることができる。いくつかの例では、最小サイズ値は、コード化ユニット中の最小パーティション・サイズを示す。このようにして、最小パーティション・サイズ、たとえば、コード化ユニット中の最小ブロックを使用して、階層コード化ブロック・パターンの最大長さを判断することができる。
【０１８７】
ビデオ・エンコーダ２０は、次いで、最大ブロックに対応するシンタックスに従ってコード化ユニットのセットの各ブロックを符号化する（３０６）。たとえば、最大ブロックが６４×６４ピクセル・ブロックを備えると仮定すると、ビデオ・エンコーダ２０は、ＭＢ６４＿ｔｙｐｅについて上記で定義したシンタックスなどのシンタックスを使用することができる。別の例として、最大ブロックが３２×３２ピクセル・ブロックを備えると仮定すると、ビデオ・エンコーダ２０は、ＭＢ３２＿ｔｙｐｅについて上記で定義したシンタックスなどのシンタックスを使用することができる。
【０１８８】
ビデオ・エンコーダ２０はまた、コード化ユニット中の最大ブロックとコード化ユニット中の最小ブロックとに対応する値を含むコード化ユニットシンタックス情報を生成する（３０８）。ビデオ・エンコーダ２０は、次いで、コード化ユニットのシンタックス情報とコード化ユニットのブロックの各々とを含むコード化ユニットをビデオ・デコーダ３０に送信する。
【０１８９】
ビデオ・デコーダ３０は、ビデオ・エンコーダ２０からコード化ユニットとそのコード化ユニットのシンタックス情報とを受信する（３１２）。ビデオ・デコーダ３０は、コード化ユニット中の最大ブロックのコード化ユニットシンタックス情報中の指示に基づいてブロック・ベースのシンタックス・デコーダを選択する（３１４）。たとえば、コード化ユニットシンタックス情報が、コード化ユニット中の最大ブロックが６４×６４ピクセルを備えることを示したと仮定すると、ビデオ・デコーダ３０はＭＢ６４＿ｔｙｐｅブロックのシンタックス・デコーダを選択することができる。ビデオ・デコーダ３０は、次いで、コード化ユニットのブロックに選択されたシンタックス・デコーダを適用して、コード化ユニットのブロックを復号する（３１６）。ビデオ・デコーダ３０はまた、最小符号化パーティションのコード化ユニットシンタックス情報中の指示に基づいて、ブロックがさらなる個別符号化サブパーティションを有しないときを判断することができる。たとえば、最大ブロックが６４×６４ピクセルであり、最小ブロックが同じく６４×６４ピクセルである場合、６４×６４ブロックは６４×６４サイズよりも小さいサブパーティションに分割されないと判断され得る。別の例として、最大ブロックが６４×６４ピクセルであり、最小ブロックが３２×３２ピクセルである場合、６４×６４ブロックは３２×３２以上の大きさのサブパーティションに分割されると判断され得る。
【０１９０】
このようにして、ビデオ・デコーダ３０は、Ｈ．２６４などの既存のコーディング規格との後方互換性を維持することができる。たとえば、コード化ユニット中の最大ブロックが１６×１６ピクセルを備えるとき、ビデオ・エンコーダ２０はコード化ユニットシンタックス情報中にこれを示すことができ、ビデオ・デコーダ３０は標準Ｈ．２６４のブロック・ベースのシンタックス・デコーダを適用することができる。しかしながら、コード化ユニット中の最大ブロックが１６×１６ピクセルよりも多くのピクセルを備えるとき、ビデオ・エンコーダ２０はコード化ユニットシンタックス情報中にこれを示すことができ、ビデオ・デコーダ３０は、コード化ユニットのブロックを復号するために、本開示の技法によるブロック・ベースのシンタックス・デコーダを選択的に適用することができる。
【０１９１】
１つまたは複数の例では、説明した機能はハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装できる。ソフトウェアで実装する場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体とすることができる。限定ではなく、例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージ・デバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを担持または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１９２】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲の範囲内にある。
【図１】
2020109982.tif 000008
【図２】
2020109982.tif 000009
【図３】
2020109982.tif 000010
【図４Ａ】
2020109982.tif 000011
【図４Ｂ】
2020109982.tif 000012
【図５】
2020109982.tif 000013
【図６】
2020109982.tif 000014
【図７】
2020109982.tif 000015
【図８】
2020109982.tif 000016
【図９】
2020109982.tif 000017
【図１０】
2020109982.tif 000018
【図１１】
2020109982.tif 000019
【図１２】
2020109982.tif 000020
【図１３】
2020109982.tif 000021
【図１４】
2020109982.tif 000022
【図１５】
2020109982.tif 000023
【図１６】
2020109982.tif 000024
【図１７】
2020109982.tif 000025
【手続補正書】
【提出日】令和2年3月26日(2020.3.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ピクチャのシーケンスのブロックの最小サイズを示す第１のシンタックス要素と、前記ピクチャのシーケンスの前記ブロックの最大サイズを示す、前記第１のシンタックス要素とは別の第２のシンタックス要素、ここで、前記ブロックの前記最大サイズが１６×１６ピクセルよりも大きい第２のシンタックス要素と、現在のブロックが複数のサブブロックに区分されたかどうかを示す、前記第１のシンタックス要素および前記第２のシンタックス要素とは別の第３のシンタックス要素と、前記サブブロックを符号化するために使用される符号化モードを示す、前記第１のシンタックス要素、前記第２のシンタックス要素、および前記第３のシンタックス要素とは別の第４のシンタックス要素、ここで、前記符号化モードが、イントラ予測モードおよびインター予測モードのうちの１つを備える第４のシンタックス要素と
を含む符号化ビットストリームを受信することと、
サブブロックがさらに別に符号化されたサブパーティションを含まないという決定に基づいて、前記サブブロックをさらに区分することなく、前記符号化モードにしたがって、前記サブブロックを復号することと
を備える、方法。
【請求項２】
前記現在のブロックはサブブロックに区分され、前記サブブロックのうちの１つは、第１の符号化モードで符号化され、前記サブブロックのうちの別の１つは、第２の符号化モードで符号化され、
前記第１の符号化モードは、イントラ予測モード（Ｉモード）を備え、前記第２の符号化モードは、Ｉモード、Ｐモード、および／またはＢモードのうちの１つを備え、
前記第２の符号化モードは、前記第１の符号化モードとは異なる、
請求項１に記載の方法。
【請求項３】
前記サブブロックがさらに別に符号化されたサブパーティションを含まないという前記決定は、前記サブブロックのサイズが前記第１のシンタックス要素によって示される前記最小サイズと等しいときに決定することを含む、請求項１に記載の方法。
【請求項４】
前記複数のブロックのうちの少なくとも１つの他のブロックは、前記最大サイズより小さく、前記最小サイズより大きいサイズを有する、請求項１に記載の方法。
【請求項５】
前記符号化モードは前記イントラ予測モードであり、前記符号化モードにしたがって前記サブブロックを復号することは、前記イントラ予測モードにしたがって１つ以上の隣接ピクセルから前記サブブロックを予測することを備える、請求項１に記載の方法。
【請求項６】
前記現在のブロックが少なくとも６４×６４ピクセルのサイズを有する、請求項１に記載の方法。
【請求項７】
前記サブブロックに対する量子化パラメータ修正値を受信することをさらに備え、前記サブブロックを復号することは、前記量子化パラメータ修正値にしたがって前記サブブロックを逆量子化することを備える、請求項１に記載の方法。
【請求項８】
ビデオデータを復号するデバイスであって、
メモリおよびプロセッサを備え、前記プロセッサは、前記メモリと通信し、
ピクチャのシーケンスのブロックの最小サイズを示す第１のシンタックス要素と、前記ピクチャのシーケンスの前記ブロックの最大サイズを示す、前記第１のシンタックス要素とは別の第２のシンタックス要素、ここで、前記ブロックの前記最大サイズが１６×１６ピクセルよりも大きい第２のシンタックス要素と、現在のブロックが複数のサブブロックに区分されたかどうかを示す、前記第１のシンタックス要素および前記第２のシンタックス要素とは別の第３のシンタックス要素と、前記サブブロックを符号化するために使用される符号化モードを示す、前記第１のシンタックス要素、前記第２のシンタックス要素、および前記第３のシンタックス要素とは別の第４のシンタックス要素、ここで、前記符号化モードが、イントラ予測モードおよびインター予測モードのうちの１つを備える第４のシンタックス要素と
を含む符号化ビットストリームを受信することと、
サブブロックがさらに別に符号化されたサブパーティションを含まないという決定に基づいて、前記サブブロックをさらに区分することなく、前記符号化モードにしたがって、前記サブブロックを復号することと
を行うように構成されている、デバイス。
【請求項９】
前記現在のブロックはサブブロックに区分され、前記サブブロックのうちの１つは、第１の符号化モードで符号化され、前記サブブロックのうちの別の１つは、第２の符号化モードで符号化され、
前記第１の符号化モードは、イントラ予測モード（Ｉモード）を備え、前記第２の符号化モードは、Ｉモード、Ｐモード、および／またはＢモードのうちの１つを備え、
前記第２の符号化モードは、前記第１の符号化モードとは異なる、
請求項８に記載のデバイス。
【請求項１０】
前記サブブロックがさらに別に符号化されたサブパーティションを含まないという前記決定は、前記サブブロックのサイズが前記第１のシンタックス要素によって示される前記最小サイズと等しいときに決定することを含む、請求項８に記載のデバイス。
【請求項１１】
前記複数のブロックのうちの少なくとも１つの他のブロックは、前記最大サイズより小さく、前記最小サイズより大きいサイズを有する、請求項８に記載のデバイス。
【請求項１２】
前記符号化モードは前記イントラ予測モードであり、前記符号化モードにしたがって前記サブブロックを復号することは、前記イントラ予測モードにしたがって１つ以上の隣接ピクセルから前記サブブロックを予測することを備える、請求項８に記載のデバイス。
【請求項１３】
前記現在のブロックが少なくとも６４×６４ピクセルのサイズを有する、請求項８に記載のデバイス。
【請求項１４】
前記プロセッサは、前記サブブロックに対する量子化パラメータ修正値を受信するようにさらに構成され、前記サブブロックを復号することは、前記量子化パラメータ修正値にしたがって前記サブブロックを逆量子化することを備える、請求項８に記載のデバイス。
【請求項１５】
前記デバイスは、前記ピクチャのシーケンスを表示するように構成されているディスプレイをさらに備える、請求項８に記載のデバイス。
【請求項１６】
前記デバイスは、カメラ、コンピュータ、移動体デバイス、ブロードキャスト受信機デバイス、または、セットトップボックスのうちの１つ以上である、請求項８に記載のデバイス。
【請求項１７】
その上に命令を記憶した非一時的コンピュータ読取可能記憶媒体であって、命令が実行されたとき、プロセッサに、
ピクチャのシーケンスのブロックの最小サイズを示す第１のシンタックス要素と、前記ピクチャのシーケンスの前記ブロックの最大サイズを示す、前記第１のシンタックス要素とは別の第２のシンタックス要素、ここで、前記ブロックの前記最大サイズが１６×１６ピクセルよりも大きい第２のシンタックス要素と、現在のブロックが複数のサブブロックに区分されたかどうかを示す、前記第１のシンタックス要素および前記第２のシンタックス要素とは別の第３のシンタックス要素と、前記サブブロックを符号化するために使用される符号化モードを示す、前記第１のシンタックス要素、前記第２のシンタックス要素、および前記第３のシンタックス要素とは別の第４のシンタックス要素、ここで、前記符号化モードが、イントラ予測モードおよびインター予測モードのうちの１つを備える第４のシンタックス要素と
を含む符号化ビットストリームを受信することと、
サブブロックがさらに別に符号化されたサブパーティションを含まないという決定に基づいて、前記サブブロックをさらに区分することなく、前記符号化モードにしたがって、前記サブブロックを復号することと
を行わせる、非一時的コンピュータ読取可能記憶媒体。
【請求項１８】
前記現在のブロックはサブブロックに区分され、前記サブブロックのうちの１つは、第１の符号化モードで符号化され、前記サブブロックのうちの別の１つは、第２の符号化モードで符号化され、
前記第１の符号化モードは、イントラ予測モード（Ｉモード）を備え、前記第２の符号化モードは、Ｉモード、Ｐモード、および／またはＢモードのうちの１つを備え、
前記第２の符号化モードは、前記第１の符号化モードとは異なる、
請求項１７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項１９】
前記サブブロックがさらに別に符号化されたサブパーティションを含まないという前記決定は、前記サブブロックのサイズが前記第１のシンタックス要素によって示される前記最小サイズと等しいときに決定することを含む、請求項１７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項２０】
前記複数のブロックのうちの少なくとも１つの他のブロックは、前記最大サイズより小さく、前記最小サイズより大きいサイズを有する、請求項１７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項２１】
前記符号化モードは前記イントラ予測モードであり、前記符号化モードにしたがって前記サブブロックを復号することは、前記イントラ予測モードにしたがって１つ以上の隣接ピクセルから前記サブブロックを予測することを備える、請求項１７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項２２】
前記現在のブロックが少なくとも６４×６４ピクセルのサイズを有する、請求項１７に記載の非一時的コンピュータ読取可能記憶媒体。
【請求項２３】
前記プロセッサに、前記サブブロックに対する量子化パラメータ修正値を受信させる命令をさらに備え、前記サブブロックを復号することは、前記量子化パラメータ修正値にしたがって前記サブブロックを逆量子化することを備える、請求項１７に記載の非一時的コンピュータ読取可能記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１９２
【補正方法】変更
【補正の内容】
【０１９２】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲の範囲内にある。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオ・エンコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、
前記ブロックをパーティションに区分することと、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化することと、  前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することと、
を備える方法。
［Ｃ２］
前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成することをさらに備えるＣ１に記載の方法。
［Ｃ３］
符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択することをさらに備えるＣ１に記載の方法。
［Ｃ４］
符号化モードと前記パーティションとに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択することをさらに備えるＣ３に記載の方法。
［Ｃ５］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ１に記載の方法。
［Ｃ６］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ１に記載の方法。
［Ｃ７］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ１に記載の方法。
［Ｃ８］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ１に記載の方法。
［Ｃ９］
前記パーティションの各々に対応する量子化パラメータ修正値を生成することと、
前記パーティションの符号化中に、前記量子化パラメータ修正値の各々に従って前記パーティションを量子化することと、
をさらに備えるＣ１に記載の方法。
［Ｃ１０］
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、  前記ブロックをパーティションに区分することと、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化することと、  前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することと、
を行うように構成されたビデオ・エンコーダを備える装置。
［Ｃ１１］
前記ビデオ・エンコーダが、前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成するように構成されるＣ１０に記載の装置。
［Ｃ１２］
前記ビデオ・エンコーダが、符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択するように構成されるＣ１０に記載の装置。
［Ｃ１３］
前記ビデオ・エンコーダが、符号化モードと前記パーティションとに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択するように構成されるＣ１２に記載の装置。
［Ｃ１４］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ１０に記載の装置。
［Ｃ１５］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ１０に記載の装置。
［Ｃ１６］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ１０に記載の装置。
［Ｃ１７］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ１０に記載の装置。
［Ｃ１８］
前記装置がワイヤレス通信デバイスを備えるＣ１０に記載の装置。
［Ｃ１９］
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信するための手段と、
前記ブロックをパーティションに区分するための手段と、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化するための手段と、
前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化するための手段と、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成するための手段と、
を備える装置。
［Ｃ２０］
前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成するための手段をさらに備えるＣ１９に記載の装置。
［Ｃ２１］
符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択するための手段をさらに備えるＣ１９に記載の装置。
［Ｃ２２］
前記パーティションのイントラ符号化とインター符号化とに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択するための手段をさらに備えるＣ２１に記載の装置。
［Ｃ２３］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ１９に記載の装置。
［Ｃ２４］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ１９に記載の装置。
［Ｃ２５］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ１９に記載の装置。
［Ｃ２６］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ１９に記載の装置。
［Ｃ２７］
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することと、  前記ブロックをパーティションに区分することと、
第１の符号化モードを使用して前記パーティションのうちの１つを符号化することと、  前記第１の符号化モードとは異なる第２の符号化モードを使用して前記パーティションのうちの別の１つを符号化することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を生成することと、
をビデオ・エンコーダに行わせるための命令で符号化されたコンピュータ可読記憶媒体。
［Ｃ２８］
前記ビデオ・エンコーダに、前記ブロックのコード化データと前記ブロック・タイプ・シンタックス情報とを備える符号化ビデオビット・ストリームを生成させるための命令をさらに備えるＣ２７に記載のコンピュータ可読記憶媒体。
［Ｃ２９］
前記ビデオ・エンコーダに、符号化コスト分析に基づいて前記パーティションを符号化するために使用される前記符号化モードを選択させるための命令をさらに備えるＣ２７に記載のコンピュータ可読記憶媒体。
［Ｃ３０］
前記ビデオ・エンコーダに、前記パーティションのイントラ符号化とインター符号化とに対するビット・レートとひずみとの分析を含む前記符号化コスト分析に基づいて、前記ブロックの前記区分を選択させるための命令をさらに備えるＣ２９に記載のコンピュータ可読記憶媒体。
［Ｃ３１］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ２７に記載のコンピュータ可読記憶媒体。
［Ｃ３２］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ２７に記載のコンピュータ可読記憶媒体。
［Ｃ３３］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ２７に記載のコンピュータ可読記憶媒体。
［Ｃ３４］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ２７に記載のコンピュータ可読記憶媒体。
［Ｃ３５］
ビデオ・デコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号することと、
を備える方法。
［Ｃ３６］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ３５に記載の方法。
［Ｃ３７］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ３５に記載の方法。
［Ｃ３８］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ３５に記載の方法。
［Ｃ３９］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ３５に記載の方法。
［Ｃ４０］
前記パーティションの各々について量子化パラメータ修正値を受信することであって、前記ビデオ・ブロックを復号することが、前記量子化パラメータ修正値に従って前記パーティションを逆量子化することを備える、受信することをさらに備えるＣ３５に記載の方法。
［Ｃ４１］
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号することと、
を行うように構成されたビデオ・デコーダを備える装置。
［Ｃ４２］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ４１に記載の装置。
［Ｃ４３］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ４１に記載の装置。
［Ｃ４４］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ４１に記載の装置。
［Ｃ４５］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ４１に記載の装置。
［Ｃ４６］
前記装置がワイヤレス通信デバイスを備えるＣ４０に記載の装置。
［Ｃ４７］
１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信するための手段であって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信するための手段と、  前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信するための手段と、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号するための手段と、
を備える装置。
［Ｃ４８］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ４７に記載の装置。
［Ｃ４９］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ４７に記載の装置。
［Ｃ５０］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ４７に記載の装置。
［Ｃ５１］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ４７に記載の装置。
［Ｃ５２］
ビデオ・デコーダを用いて、１６×１６ピクセルよりも大きいサイズを有するビデオ・ブロックを受信することであって、前記ブロックがパーティションに区分され、前記パーティションのうちの１つが第１の符号化モードで符号化され、前記パーティションのうちの別の１つが前記第１の符号化モードとは異なる第２の符号化モードで符号化される、受信することと、
前記ブロックの前記サイズを示し、前記パーティションと前記パーティションを符号化するために使用される前記符号化モードとを識別するブロック・タイプ・シンタックス情報を受信することと、
前記ブロック・タイプ・シンタックス情報に基づいて前記ビデオ・ブロックを復号することと、
をビデオ・デコーダに行わせるための命令で符号化されたコンピュータ可読記憶媒体。
［Ｃ５３］
前記第１の符号化モードがイントラ符号化モードを含み、前記第２の符号化モードがインター符号化モードを含むＣ５２に記載のコンピュータ可読記憶媒体。
［Ｃ５４］
前記第１の符号化モードが第１のイントラ符号化モードを含み、前記第２の符号化モードが、前記第１のイントラ符号化モードとは異なる第２のイントラ符号化モードを含むＣ５２に記載のコンピュータ可読記憶媒体。
［Ｃ５５］
前記第１の符号化モードが第１のインター符号化モードを含み、前記第２の符号化モードが、前記第１のインター符号化モードとは異なる第２のインター符号化モードを含むＣ５２に記載のコンピュータ可読記憶媒体。
［Ｃ５６］
前記ビデオ・ブロックが少なくとも６４×６４ピクセルのサイズを有するＣ５２に記載のコンピュータ可読記憶媒体。
【外国語明細書】
2020109982000001.pdf