(57)【要約】      （修正有）【課題】ビデオコード化処理によって生成される変換係数を走査し、復号する方法及び装置を提供する。【解決手段】ビデオ復号方法は、変換係数の１次元アレイを受信するステップ３００と、サブブロックの走査順序及び係数の走査順序を決定するステップ３０２と、サブブロックの走査順序及び係数の走査順序に従って変換係数の１次元アレイに対して走査を実行して、変換係数のブロックを生成するステップ３０４を含む。サブブロックの走査順序は、ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、係数の走査順序は、複数のサブブロックの各サブブロックに対応する変換係数が走査される順序を備える。【選択図】図１６
2016189598.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ復号処理において変換係数を復号するための方法であって、
変換係数の１次元アレイを復号することと、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行して、変換係数のブロックを生成することとを備え、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、方法。
【請求項２】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項１に記載の方法。
【請求項３】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、反対の対角方向を前記走査方向が備える、請求項２に記載の方法。
【請求項４】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、請求項２に記載の方法。
【請求項５】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、請求項２に記載の方法。
【請求項６】
前記走査を実行することが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて、前記走査を開始することを備える、請求項１に記載の方法。
【請求項７】
前記走査を実行することが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において、前記走査を開始することを備える、請求項１に記載の方法。
【請求項８】
前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、請求項１に記載の方法。
【請求項９】
前記走査を実行することが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査することを備える、請求項１に記載の方法。
【請求項１０】
前記現在のサブブロックの変換係数を走査することが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査することを備える、請求項９に記載の方法。
【請求項１１】
前記走査を実行することが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査することを備える、請求項１に記載の方法。
【請求項１２】
前記複数のサブブロックに対する、前記サブブロックの走査順序を決定することと、
前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定することとをさらに備える、請求項１に記載の方法。
【請求項１３】
前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、請求項１に記載の方法。
【請求項１４】
前記走査を実行することがさらに、レート−歪み尺度、ブロックサイズ、予測モード、および近傍のブロックと関連付けられる情報のうちの１つに基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択することを備える、請求項１３に記載の方法。
【請求項１５】
符号化することが、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号する、請求項１に記載の方法。
【請求項１６】
前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定することをさらに備え、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項１５に記載の方法。
【請求項１７】
ビデオ復号処理において変換係数を復号するための装置であって、
変換係数の１次元アレイを復号し、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行して、変換係数のブロックを生成するように構成される１つまたは複数のプロセッサを備え、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、装置。
【請求項１８】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項１７に記載の装置。
【請求項１９】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、逆の対角方向を前記走査方向が備える、請求項１８に記載の装置。
【請求項２０】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、請求項１８に記載の装置。
【請求項２１】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、請求項１８に記載の装置。
【請求項２２】
前記走査を実行するために、前記１つまたは複数のプロセッサが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて前記走査を開始するように構成される、請求項１７に記載の装置。
【請求項２３】
前記走査を実行するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において前記走査を開始するように構成される、請求項１７に記載の装置。
【請求項２４】
前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、請求項１７に記載の装置。
【請求項２５】
前記走査を実行するために、前記１つまたは複数のプロセッサが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査するように構成される、請求項１７に記載の装置。
【請求項２６】
前記現在のサブブロックの変換係数を走査するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査するように構成される、請求項２５に記載の装置。
【請求項２７】
前記走査を実行するために、前記１つまたは複数のプロセッサが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査するように構成される、請求項１７に記載の装置。
【請求項２８】
前記１つまたは複数のプロセッサがさらに、
前記複数のサブブロックに対する、前記サブブロックの走査順序を決定し、
前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定するように構成される、請求項１７に記載の装置。
【請求項２９】
前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、請求項１７に記載の装置。
【請求項３０】
前記走査を実行するために、前記１つまたは複数のプロセッサが、レート−歪み尺度、ブロックサイズ、予測モード、および近傍のブロックと関連付けられる情報のうちの１つに基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択するように構成される、請求項２９に記載の装置。
【請求項３１】
変換係数の前記１次元アレイを復号するために、前記１つまたは複数のプロセッサが、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号するように構成される、請求項１７に記載の装置。
【請求項３２】
前記１つまたは複数のプロセッサがさらに、
前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定するように構成され、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項３１に記載の装置。
【請求項３３】
ビデオ復号処理において変換係数を復号するための装置であって、
変換係数の１次元アレイを復号するための手段と、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行して、変換係数のブロックを生成するための手段とを備え、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、装置。
【請求項３４】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項３３に記載の装置。
【請求項３５】
復号するための手段が、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号するための手段を備える、請求項３３に記載の装置。
【請求項３６】
前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定するための手段をさらに備え、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項３５に記載の装置。
【請求項３７】
実行されると、１つまたは複数のプロセッサに、
変換係数の１次元アレイを復号させ、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行させて、変換係数のブロックを生成させる、命令を記憶したコンピュータ可読記憶媒体であって、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、コンピュータ可読記憶媒体。
【請求項３８】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項３７に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記命令がさらに、前記１つまたは複数のプロセッサに、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号させる、請求項３７に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記１つまたは複数のプロセッサに、前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定させる命令をさらに備え、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項３９に記載のコンピュータ可読記憶媒体。
【請求項４１】
ビデオ符号化処理において変換係数を符号化するための方法であって、
変換係数のブロックを複数のサブブロックに分割することと、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成することであって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、生成することと、
変換係数の前記１次元アレイを符号化することとを備える、方法。
【請求項４２】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項４１に記載の方法。
【請求項４３】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、反対の対角方向を前記走査方向が備える、請求項４２に記載の方法。
【請求項４４】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、請求項４２に記載の方法。
【請求項４５】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、請求項４２に記載の方法。
【請求項４６】
前記走査を実行することが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて、前記走査を開始することを備える、請求項４１に記載の方法。
【請求項４７】
前記走査を実行することが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において、前記走査を開始することを備える、請求項４１に記載の方法。
【請求項４８】
前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、請求項４１に記載の方法。
【請求項４９】
前記走査を実行することが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査することを備える、請求項４１に記載の方法。
【請求項５０】
前記現在のサブブロックの変換係数を走査することが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査することを備える、請求項４９に記載の方法。
【請求項５１】
前記走査を実行することが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査することを備える、請求項４１に記載の方法。
【請求項５２】
前記複数のサブブロックに対する、前記サブブロックの走査順序を決定することと、
前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定することとをさらに備える、請求項４１に記載の方法。
【請求項５３】
前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、請求項４１に記載の方法。
【請求項５４】
前記走査を実行することがさらに、レート−歪み尺度、ブロックサイズ、予測モード、および近傍のブロックと関連付けられる情報のうちの１つに基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択することを備える、請求項５３に記載の方法。
【請求項５５】
符号化することが、コンテキスト適応バイナリ算術符号化することを備える、請求項４１に記載の方法。
【請求項５６】
前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定することをさらに備え、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項５５に記載の方法。
【請求項５７】
符号化処理において変換係数を符号化するための装置であって、
変換係数のブロックを複数のサブブロックに分割することと、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成することであって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、生成することと、
変換係数の前記１次元アレイを符号化することとを行うように構成される、１つまたは複数のプロセッサを備える、装置。
【請求項５８】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項５７に記載の装置。
【請求項５９】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、反対の対角方向を前記走査方向が備える、請求項５８に記載の装置。
【請求項６０】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、請求項５８に記載の装置。
【請求項６１】
前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、請求項５８に記載の装置。
【請求項６２】
前記走査を実行するために、前記１つまたは複数のプロセッサが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて前記走査を開始するように構成される、請求項５７に記載の装置。
【請求項６３】
前記走査を実行するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において前記走査を開始するように構成される、請求項５７に記載の装置。
【請求項６４】
前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、請求項５７に記載の装置。
【請求項６５】
前記走査を実行するために、前記１つまたは複数のプロセッサが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査するように構成される、請求項５７に記載の装置。
【請求項６６】
前記現在のサブブロックの変換係数を走査するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査するように構成される、請求項６５に記載の装置。
【請求項６７】
前記走査を実行するために、前記１つまたは複数のプロセッサが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査するように構成される、請求項５７に記載の装置。
【請求項６８】
前記１つまたは複数のプロセッサがさらに、
前記複数のサブブロックに対する、前記サブブロックの走査順序を決定し、
前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定するように構成される、請求項５７に記載の装置。
【請求項６９】
前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、請求項５７に記載の装置。
【請求項７０】
前記走査を実行するために、前記１つまたは複数のプロセッサが、レート−歪み尺度に基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択するように構成される、請求項６９に記載の装置。
【請求項７１】
符号化するために、前記１つまたは複数のプロセッサが、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術符号化するように構成される、請求項５７に記載の装置。
【請求項７２】
前記１つまたは複数のプロセッサがさらに、
前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定するように構成され、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項７１に記載の装置。
【請求項７３】
ビデオ符号化処理において変換係数を符号化するための装置であって、
変換係数のブロックを複数のサブブロックに分割するための手段と、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成するための手段であって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、手段と、
変換係数の前記１次元アレイを符号化するための手段とを備える、装置。
【請求項７４】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項７３に記載の装置。
【請求項７５】
符号化するための手段が、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術符号化するための手段を備える、請求項７３に記載の装置。
【請求項７６】
前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定するための手段をさらに備え、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項７５に記載の装置。
【請求項７７】
実行されると、１つまたは複数のプロセッサに、
変換係数のブロックを複数のサブブロックへ分割することと、
サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成することであって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、生成することと、
変換係数の前記１次元アレイを符号化することとを行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項７８】
前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、請求項７７に記載のコンピュータ可読記憶媒体。
【請求項７９】
前記命令がさらに、前記１つまたは複数のプロセッサに、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術符号化させる、請求項７７に記載のコンピュータ可読記憶媒体。
【請求項８０】
前記１つまたは複数のプロセッサに、前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定させる命令をさらに備え、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項７９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１１年７月１９日に出願された米国仮特許出願第６１／５０９，５２２号、２０１１年７月２０日に出願された米国仮特許出願第６１／５０９，９２６号、２０１１年１０月２４日に出願された米国仮特許出願第６１／５５０，８２９号、および２０１１年１１月１日に出願された米国仮特許出願第６１／５５４，２９２号の優先権を主張する。
【０００２】
本開示は、ビデオコード化に関し、より詳細には、ビデオコード化処理によって生成される変換係数を走査し、コード化するための技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法のような、ビデオ圧縮技法を実装する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコード化の場合、ビデオピクチャまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化された(intra-coded)（Ｉ）フレームまたはスライス中のブロックは、同じピクチャまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化された(inter-coded)（ＰまたはＢ）フレームまたはスライス中のブロックは、同じピクチャまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャの参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コード化されるべきブロックの予測ブロックを生じる。残差データ(Residual data)は、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。
【０００５】
インターコード化されたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化されたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化されたブロックは、イントラコード化モードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、画素領域から変換領域に変換されて、残差変換係数(residual transform coefficients)を得ることができ、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される、量子化された変換係数は、特定の順序で走査されて、エントロピーコード化のための変換係数の１次元ベクトルを生成することができる。
【発明の概要】
【０００６】
概して、本開示では、ビデオコード化処理において残差ビデオデータのブロックに関連する変換係数をコード化するためのデバイスと方法とを説明する。コード化において、変換係数のブロックはサブセットに分割されてよく、このサブセットは複数のサブブロックという形態をとり得る。サブブロックは次いで、走査されコード化され得る。たとえば、ビデオエンコーダに関しては、サブブロックからの変換係数の２次元アレイが走査されて変換係数の１次元アレイを形成することができ、次いでその１次元アレイが符号化される。ビデオデコーダに関しては、変換係数の１次元アレイが受信され復号され、次いで２次元のサブブロックを復元するために使用され得る。
【０００７】
本開示の技法は全般に、変換係数のサブブロックを走査してコード化することに関する。たとえば、本明細書で説明されるように、係数の走査順序は、変換係数が残差データのブロックのサブブロック内で走査されコード化される順序を表し得る。サブブロックの走査順序は、サブブロック自体が走査されコード化される順序を表し得る。本開示の態様によれば、係数の走査順序は、残差データのブロック内の各サブブロック内の係数を次いで走査するために、サブブロックの走査順序、すなわちサブブロックが走査される順序と同じ方向を有し得る。すなわち、本開示の態様によれば、サブブロックの走査順序の走査パターン／方向／順序は、各サブブロック内の係数の走査順序のそれらと一致し得る。加えて、または代替的に、本開示の技法は、種々の基準に基づいて、係数の走査順序および／またはサブブロックの走査順序を適応的に決定することを含む。したがって、いくつかの例では、係数の走査順序は、サブブロックの走査順序とは異なり得る。
【０００８】
ある例では、本開示の態様は、変換係数の１次元アレイを復号することと、サブブロックの走査順序および係数の走査順序に従って変換係数の１次元アレイに対して走査を実行して、変換係数のブロックを生成することとを備える、ビデオ復号処理において変換係数を復号する方法に関し、サブブロックの走査順序は、ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、係数の走査順序は、複数のサブブロックの各サブブロックに対応する変換係数が走査される順序を備える。
【０００９】
別の例では、本開示の態様は、ビデオ復号処理において変換係数を復号するための装置に関し、装置は、変換係数の１次元アレイを復号し、サブブロックの走査順序および係数の走査順序に従って変換係数の１次元アレイに対して走査を実行して、変換係数のブロックを生成するように構成される、１つまたは複数のプロセッサを備え、サブブロックの走査順序は、ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、係数の走査順序は、複数のサブブロックの各サブブロックに対応する変換係数が走査される順序を備える。
【００１０】
[0010]  別の例では、本開示の態様は、ビデオ復号処理において変換係数を復号するための装置に関し、装置は、変換係数の１次元アレイを復号するための手段と、サブブロックの走査順序および係数の走査順序に従って変換係数の１次元アレイに対して走査を実行し、変換係数のブロックを生成するための手段とを備え、サブブロックの走査順序は、ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、係数の走査順序は、複数のサブブロックの各サブブロックに対応する変換係数が走査される順序を備える。
【００１１】
別の例では、本開示の態様は、実行されると、１つまたは複数のプロセッサに、変換係数の１次元アレイを復号させ、サブブロックの走査順序および係数の走査順序に従って変換係数の１次元アレイに対して走査を実行させて、変換係数のブロックを生成させる命令を記憶したコンピュータ可読記憶媒体に関し、サブブロックの走査順序は、ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、係数の走査順序は、複数のサブブロックの各サブブロックに対応する変換係数が走査される順序を備える。
【００１２】
別の例では、本開示の態様は、変換係数のブロックを複数のサブブロックに分割することと、サブブロックの走査順序および係数の走査順序に従って変換係数のブロックに対して走査を実行して、変換係数の１次元アレイを生成することと、ここにおいてサブブロックの走査順序が、複数のサブブロックの各々が走査される順序を備え、係数の走査順序が、複数のサブブロックの各々の中の変換係数が走査される順序を備え、変換係数の１次元アレイを符号化することとを備える、ビデオ符号化処理において変換係数を符号化するための方法に関する。
【００１３】
別の例では、本開示の態様は、符号化処理において変換係数を符号化するための装置に関し、装置は、変換係数のブロックを複数のサブブロックに分割することと、サブブロックの走査順序および係数の走査順序に従って変換係数のブロックに対して走査を実行して、変換係数の１次元アレイを生成することと、ここにおいてサブブロックの走査順序が、複数のサブブロックの各々が走査される順序を備え、係数の走査順序が、複数のサブブロックの各々の中の変換係数が走査される順序を備え、変換係数の１次元アレイを符号化することとを行うように構成される、１つまたは複数のプロセッサを備える。
【００１４】
別の例では、本開示の態様は、ビデオ符号化処理において変換係数を符号化するための装置に関し、装置は、変換係数のブロックを複数のサブブロックに分割するための手段と、サブブロックの走査順序および係数の走査順序に従って変換係数のブロックに対して走査を実行して、変換係数の１次元アレイを生成するための手段と、ここにおいてサブブロックの走査順序が、複数のサブブロックの各々が走査される順序を備え、係数の走査順序が、複数のサブブロックの各々の中の変換係数が走査される順序を備え、変換係数の１次元アレイを符号化するための手段とを備える。
【００１５】
別の例では、本開示の態様は、実行されると１つまたは複数のプロセッサに、変換係数のブロックを複数のサブブロックへ分割することと、サブブロックの走査順序および係数の走査順序に従って変換係数のブロックに対して走査を実行して、変換係数の１次元アレイを生成することと、ここにおいてサブブロックの走査順序が、複数のサブブロックの各々が走査される順序を備え、係数の走査順序が、複数のサブブロックの各々の中の変換係数が走査される順序を備え、変換係数の１次元アレイを符号化することとを行わせる命令を記憶したコンピュータ可読記憶媒体に関する。
【００１６】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１７】
【図１】本開示の技法を実行するように構成され得る例示的なビデオコード化システムを示すブロック図。
【図２】本開示の技法を実行するように構成され得る例示的なビデオエンコーダを示すブロック図。
【図３】本開示の技法を実行するように構成され得る例示的なビデオデコーダを示すブロック図。
【図４】有意性マップ(significance map)のコード化処理を示す概念図。
【図５Ａ】変換係数のコード化のための例示的な走査パターンと方向とを示す概念図。
【図５Ｂ】変換係数のコード化のための例示的な走査パターンと方向とを示す別の概念図。
【図５Ｃ】変換係数のコード化のための例示的な走査パターンと方向とを示す別の概念図。
【図５Ｄ】変換係数のコード化のための例示的な走査パターンと方向とを示す別の概念図。
【図５Ｅ】変換係数のコード化のための例示的な走査パターンと方向とを示す別の概念図。
【図５Ｆ】変換係数のコード化のための例示的な走査パターンと方向とを示す別の概念図。
【図６】ビデオデータのブロックの変換係数のコンテキスト適応コード化(context-adaptive coding)の例を示す概念図。
【図７】変換係数のブロックのサブブロックへ分割する例を示す概念図。
【図８Ａ】サブブロックへと分割された変換係数のブロックの例示的なジグザグのサブブロックの走査順序を示す概念図。
【図８Ｂ】サブブロックへと分割された変換係数のブロックの例示的な水平方向のサブブロックの走査順序を示す概念図。
【図８Ｃ】サブブロックへと分割された変換係数のブロックの例示的な垂直方向のサブブロックの走査順序を示す概念図。
【図８Ｄ】サブブロックへと分割された変換係数のブロックの例示的な対角方向のサブブロックの走査順序を示す概念図。
【図８Ｅ】図８Ｄに示される走査の反対である、サブブロックへと分割された変換係数のブロックの例示的な対角方向のサブブロックの走査順序を示す概念図。
【図９Ａ】サブブロックの変換係数の例示的な対角方向の係数の走査順序を示す図。
【図９Ｂ】サブブロックの例示的な対角方向のサブブロックの走査順序を示す図。
【図１０Ａ】図９Ａに示される走査に対して反対の、サブブロックの変換係数の例示的な対角方向の係数の走査順序を示す図。
【図１０Ｂ】図９Ｂに示される走査に対して反対の、サブブロックの例示的な対角方向のサブブロックの走査順序を示す図。
【図１１Ａ】サブブロックの変換係数の例示的な反対の垂直方向の係数の走査順序を示す図。
【図１１Ｂ】サブブロックの例示的な反対の垂直方向のサブブロックの走査順序を示す図。
【図１２Ａ】サブブロックの変換係数の例示的な反対の水平方向の係数の走査順序を示す図。
【図１２Ｂ】サブブロックの例示的な反対の水平方向のサブブロックの走査順序を示す図。
【図１３】ビデオデータのサブブロックの変換係数をコンテキスト適応コード化する例を示す概念図。
【図１４】ビデオデータのサブブロックの変換係数をコンテキスト適応コード化する別の例を示す概念図。
【図１５】本開示の技法による例示的なビデオ符号化処理を示すフローチャート。
【図１６】本開示の技法による例示的なビデオ復号処理を示すフローチャート。
【図１７】ビデオデータのサブブロックの変換係数をコンテキスト適応コード化するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１８】
ビデオコード化デバイスは、空間的冗長性または時間的冗長性を利用することによってビデオデータを圧縮し得る。たとえば、ビデオエンコーダは、隣接する、以前にコード化されたブロックに対してビデオデータのブロックをコード化することによって、空間的冗長性を利用し得る。同様に、ビデオエンコーダは、ピクチャとも呼ばれる以前にコード化されたピクチャのビデオデータに対してビデオデータのブロックをコード化することによって、時間的冗長性を利用し得る。具体的には、ビデオエンコーダは、空間的隣接部分のデータから、または以前にコード化されたピクチャのデータから、現在のブロックを予測し得る。次いでビデオエンコーダは、ブロックの実際の画素値とブロックの予測される画素値との間の差分としてブロックの残差を計算し得る。すなわち、ブロックの残差は、画素（または空間的）領域における画素ごとの差分値を含み得る。
【００１９】
したがって、ブロック（たとえば、ビデオデータの予測単位）をコード化するために、ブロックの予測子が最初に導出される。予測ブロックとも呼ばれる予測子(predictor)は、イントラ（Ｉ）予測（すなわち、空間的予測）またはインター（ＰまたはＢ）予測（すなわち時間的予測）のいずれかを通じて導出され得る。したがって、いくつかの予測単位は、同じピクチャ（またはスライス）中の隣接する参照ブロック中の参照サンプルに関する空間的予測を使用してイントラコード化（Ｉ）されてよく、他の予測単位は、以前にコード化された他のピクチャ（またはスライス）中の参照サンプルのブロックに関して単方向にインターコード化（Ｐ）されるかまたは双方向にインターコード化（Ｂ）されてよい。参照サンプルは、参照ブロック中の実際の画素、および／または、たとえば補間によって生成された合成された参照サンプルを含み得る。各々の場合において、参照サンプルは、コード化されるべきブロックの予測ブロックを形成するために使用され得る。
【００２０】
ブロックの残差値をさらに圧縮するために、ビデオエンコーダは、（「エネルギー」とも呼ばれる）できるだけ多くのデータをできるだけ少数の係数に圧縮する変換係数のセットに、残差値を変換し得る。この変換は、たとえば、離散コサイン変換（ＤＣＴ）、整数変換、Ｋａｒｈｕｎｅｎ−Ｌｏｅｖｅ（Ｋ−Ｌ）変換、または別の変換を使用して、残差値を、空間領域における画素レベル、たとえば輝度レベルおよび／または彩度レベルから、変換領域における変換係数へと変換する。変換係数は、元のブロックと通常同じサイズである変換係数の２次元行列に対応する。言い換えれば、通常、元のブロック中の画素とちょうど同数の変換係数がある。しかしながら、変換により、変換係数の多くは、０に等しい値を有し得る。
【００２１】
ビデオエンコーダは、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、一般に、相対的に大きな範囲内の値を相対的に小さな範囲中の値にマッピングし、それによって、量子化された変換係数を表すために必要とされるデータの量を減らすことを伴う。ビデオエンコーダは、あらかじめ定義されたアルゴリズムに従って量子化パラメータ（ＱＰ）を適用することによって、変換係数を量子化し得る。量子化の後、変換係数の一部は０という値を有し得る。加えて、変換スキップモードtransform skip modeのような何らかのビデオコード化モードでは、変換は行われなくてよく、量子化が予測残差に対して直接適用され得る。
【００２２】
次いで、エントロピーコーダは、量子化された変換係数に、コンテキスト適応可変長コード化（ＣＡＶＬＣ：Context Adaptive Variable Length Coding）、コンテキスト適応バイナリ算術コード化（ＣＡＢＡＣ：Context Adaptive Binary Arithmetic Coding）、確率間隔区分エントロピーコード化（ＰＩＰＥ：Probability Interval Partitioning Entropy Coding）などのようなエントロピーコード化を適用する。量子化された変換係数のブロックをエントロピーコード化するために、ブロック中の量子化された変換係数の２次元（２Ｄ）アレイが、特定の走査順序に従って、変換係数の順序付けられた１次元（１Ｄ）アレイ、すなわちベクトルへと再構成されるように、走査処理が通常実行される。変換係数のベクトルに、エントロピーコード化が適用される。量子化された変換係数の走査は、エントロピーコーダのために変換係数の２Ｄアレイを直列化する。
【００２３】
いくつかの例によれば、ビデオブロックにおける有意な係数（すなわち、０ではない変換係数）の位置は、変換係数の「レベル」と呼ばれることがある変換係数の値の前に符号化され得る。有意な係数の位置をコード化する処理は、有意性マップコード化と呼ばれることがある。有意性マップ（significance map）は、有意な係数の位置を示す２進値の２次元アレイを含む。
【００２４】
たとえば、ビデオデータのブロックの有意性マップは、１および０の２Ｄアレイを含んでよく、１は、ブロック内の有意な変換係数の場所を示し、０は、ブロック内の有意ではない（値が０の）変換係数の場所を示す。１および０は「有意係数フラグ(significant coefficient flag)」と呼ばれ得る。加えて、いくつかの例では、有意性マップは、１および０の別の２Ｄアレイを含んでよく、１は、ブロックに関連する走査順序に従ってブロック内の最後の有意な係数の場所を示し、０は、ブロック内のすべての他の係数の場所を示す。この場合、１および０は「最後有意係数フラグ」と呼ばれる。他の例では、そのような最後有意係数フラグは使用されない。むしろ、ブロック中の最後の有意な係数は、有意性マップの残りを送る前に最初にコード化され得る。いずれの場合も、ビデオデータのブロックのための有意性マップコード化は、ブロックをコード化するために使用されるビデオビットレートのかなりの割合を消費し得る。
【００２５】
[0050]  有意性マップが走査されコード化された後に、ビデオコーダは、各変換係数のレベルを走査しコード化し得る。たとえば、ビデオコーダは、各々の０ではない変換係数の絶対値、すなわちレベルを２進形態に変換し得る。このようにして、たとえば、単進コードまたは他のコードを使用して１つまたは複数のビットまたは「ビン」を生成して、各々の０ではない変換係数のレベルが「２値化」され、変換係数を表すことができる。加えて、ビデオデコーダがビデオデータを復号できるように、いくつかの他の２値化されたシンタックス要素が含まれ得る。
【００２６】
いくつかの例では、有意性マップの走査順序は、係数レベルの走査順序とは異なり得る。他の例では、係数レベルの走査が有意性マップの走査と同じになるように、すなわち走査方向と走査パターンについて、変換係数の走査順序は協調し得る。加えて、上で述べられたように、係数レベルおよび有意性係数に対する走査は、逆方向に、すなわち、ブロック中の最後の有意な係数からブロック中の最初の係数（ＤＣ成分）へと進む逆方向の走査として実行され得る。逆方向の走査を支援するために、ビデオコーダは、走査の前に最後の有意な係数を識別することができる。ブロック中の最後の有意な係数が識別されると、逆方向の走査順序が有意性マップと係数レベルの両方に適用され得る。
【００２７】
走査の後、走査方向に応じて、より高い周波数のエネルギーが低減したことにより、また量子化の効果により、いくつかの０の係数は、一般に、１Ｄアレイの一方の端部においてグループ化されることになり、これにより、ビット深度の低減時に、いくつかの０ではない係数が、値が０の係数になり得る。直列化された１Ｄアレイ内の係数分布のこれらの特性は、コード化効率を改善するためにエントロピーコーダ設計において利用され得る。言い換えると、何らかの適切な走査順序を通じて１Ｄアレイの一部分に０ではない係数が効果的に配置され得る場合、より良好なコード化効率が、多くのエントロピーコーダの設計により期待され得る。たとえば、エントロピーコード化は値が０の係数の連続をコード化して、コード化のためのより効率的なシンボルを与え得る。
【００２８】
一例として、ＤＣＴが変換係数に適用される場合、しばしば、２Ｄ変換単位の左上の角（すなわち、低周波数領域）に向かって、０ではない係数の確率が高くなる。したがって、変換係数の走査が左上の角において開始され、これによって係数の直列化された連続の相対的な開始時において、０ではない係数を一緒にグループ化する確率が上がり得る場合、エントロピーコード化の効率は上がり得る。加えて、値が０の係数は、直列化されたアレイの終端に向かって一緒にグループ化されてよく、これはエントロピーコード化の効率を上げ得る。
【００２９】
提案されているＨＥＶＣ規格において量子化された変換係数を走査する際に使用するために、対角方向（または波面）の走査順序が採用されている。変換および量子化を通じて、上述のように、変換がＤＣＴである例では、０ではない変換係数は、ブロックの左上領域のほうの低周波数エリアに位置し得る。その結果、最初に左上領域を横断し得る対角方向の走査処理の後、０ではない変換係数は、１Ｄアレイの前方部分に位置する可能性がより高くなり得る。最初に右下領域を横断する対角方向の走査処理の場合、０ではない変換係数は、通常、１Ｄアレイの後方部分に位置する可能性がより高くなる。
【００３０】
上の例は対角方向の走査に言及するが、１Ｄアレイの一方の端部により多くの０ではない係数を配置するという目的を達成するために、様々な走査順序が、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）のコード変換係数において使用され得る。ある場合には、対角方向の走査が効果的であり得る。他の場合には、ジグザグ、垂直方向または水平方向の走査など、異なるタイプの走査がより効果的であり得る。実施される具体的な走査は、レート−歪み尺度(rate-distortion metric)のような、様々な基準により得る。
【００３１】
異なる走査順序は、種々の方法で生成され得る。１つの例は、変換係数の各ブロックについて、いくつかの利用可能な走査順序から「最良」の走査順序が選定され得ることである。次いで、ビデオエンコーダが、各ブロックについて、それぞれのインデックスによって示される走査順序のセットのうちの最良の走査順序のインデックスの指示をデコーダに与え得る。最良の走査順序の選択は、いくつかの走査順序を適用することと、１Ｄベクトルの始端または終端の近くに０ではない係数を配置する際に最も効果的である走査順序を選択することとによって決定され、それにより効率的なエントロピーコード化が促進され得る。
【００３２】
0057
別の例では、現在のブロックの走査順序は、予測モード（Ｉ、Ｂ、Ｐ）、ブロックサイズ、変換または他の因子など、関連する予測単位のコード化に関係する様々な因子に基づいて決定され得る。場合によっては、エンコーダ側とデコーダ側の両方において同じ情報、たとえば、予測モードが推測され得るので、デコーダに走査順序インデックスの指示を与える必要はないことがある。代わりに、ビデオデコーダは、ブロックの予測モードの知識と、予測モードを特定の走査順序にマッピングする１つまたは複数の基準とが与えられれば、適切な走査順序を示す構成データを記憶し得る。
【００３３】
コード化効率をさらに改善するために、利用可能な走査順序は常に一定であるとは限らない。代わりに、たとえば、すでにコード化された係数に基づいて走査順序が適応的に調整されるように、何らかの適応が可能にされ得る。一般に、走査順序の適応は、選択された走査順序に従って、０の係数および０ではない係数が一緒にグループ化される可能性が高いような方法で行われ得る。
【００３４】
いくつかのビデオコーダでは、最初の利用可能な走査順序は、純水平方向、純垂直方向、純対角方向、または純ジグザグの走査など、極めて規則的な形態であり得る。代替的に、走査順序は、訓練プロセスを通じて導出されてよく、したがって、いくぶんランダムであるように見えることがある。訓練プロセスは、たとえば、上述のように、０ではない係数と値が０の係数との効率的な配置に関して望ましい結果を生成する走査順序を識別するための、ブロックまたは一連のブロックへの異なる走査順序の適用を伴い得る。
【００３５】
[0060]  走査順序が訓練プロセスから導出される場合、または多種多様な走査順序が選択され得る場合、エンコーダ側とデコーダ側の両方において特定の走査順序が保存され得る。そのような走査順序を指定するデータはかなりの量であり得る。たとえば、３２×３２の変換ブロックでは、１つの走査順序は１０２４個の変換係数の場所を含み得る。異なるサイズのブロックがあることがあり、変換ブロックの各サイズについて、いくつかの異なる走査順序があり得るので、保存される必要があるデータの総量は無視できない。
【００３６】
対照的に、対角方向、水平方向、垂直方向、またはジグザグの順序などの規則的な走査順序は、記憶を必要としないことがあり、または最小限の記憶しか必要としないことがある。しかしながら、順方向の水平または垂直な走査のような規則的な走査は、ある行／列を、左または上から右または下まで走査し、そして次の行／列のために左または上に戻る。このような走査順序の「強い」方向性は、大きなブロックに対しては効率的ではないことがあり、それは、ある行／列の終端の変換係数と次の行／列の始端の変換係数の間にほとんど相関がないことがあるからである。
【００３７】
いくつかの例では、効率を上げ、かつ／または実装を簡単にするために、変換係数のブロックはサブセットに分割されてよく、このサブセットは複数のサブブロックという形態をとり得る。たとえば、３２×３２のような大きなブロックに対してジグザグの走査または対角方向の走査を実施することは、ソフトウェアまたはハードウェアのビデオコーダにとって重荷となる（たとえば、計算上非効率である）ことがある。したがって、ブロックをサブブロックに分割した後、サブブロックは次いで、走査されコード化され得る。ビデオエンコーダに関しては、サブブロックからの変換係数の２次元アレイが走査されて変換係数の１次元アレイを形成することができ、次いでその１次元アレイが符号化される。ビデオデコーダに関しては、変換係数の１次元アレイが受信され復号されてよく、１次元アレイは次いで２次元のサブブロックを復元するために使用される。
【００３８】
本開示の技法は全般に、変換係数のサブブロックを走査してコード化することに関する。たとえば、本明細書で説明されるように、係数の走査順序は、変換係数がサブブロック内で走査されコード化される順序を表し得る。サブブロックの走査順序は、サブブロック自体が走査されコード化される順序を表し得る。本開示の態様によれば、係数の走査順序は、サブブロックの走査順序と同じ方向を有し得る。たとえば、本明細書で説明されるように、走査方向は一般に、走査方向、走査パターン、または走査の全体的な順序を指し得る。すなわち、ジグザグのパターン（たとえば、図５Ａに関して示され説明されるような）は、ジグザグの方向を有すると呼ばれ得る。加えて、対角方向の走査（たとえば、図５Ｄ〜図５Ｆに関して示され説明されるような）は、対角方向を有すると呼ばれ得る。本開示の態様によれば、サブブロックの走査順序の方向は、係数の走査順序の方向と一致し得る。
【００３９】
たとえば、本開示の態様によれば、ビデオコーダは、所定のサブブロックサイズよりも大きなブロックを、サブブロックへと副分割することができる。いくつかの例では、ビデオコーダは４×４のサブブロックへとブロックを分割し得るが、種々の他のサブブロックサイズ（たとえば、２×２、８×８、１６×１６など）も使用され得る。ビデオコーダがピクチャ（またはスライス）のすべてのブロックに対して同じサブブロックサイズを使用する場合、サブブロックサイズの均一性によって、ハードウェアの実装形態では利益が得られ得る。しかしながら、均一なサブブロックサイズは、本開示の技法を実行するために必須ではない。
【００４０】
変換係数のブロックをサブブロックへと分割した後、ビデオコーダは、係数の走査順序でサブブロックの変換係数を走査することができ、また、サブブロックの走査順序でサブブロック自体を走査することができる。本開示の態様によれば、係数の走査順序およびサブブロックの走査順序は、同じ方向（たとえば、同じ操作パターン、方向、または順序）を有し得る。すなわち、たとえば、ビデオコーダは、係数の走査順序で、サブブロックの変換係数（たとえば、有意性、符号、レベルなどを含む）の各々を対角方向に走査することができる。ビデオコーダはまた、サブブロックの走査順序で、サブブロックにわたって対角方向に走査することができる。例示すると、サブブロックが走査される順序は、サブブロック内の係数が最初に走査され、次いで第２のサブブロック内の係数が２番目に走査され、以下同様となることを規定することができるが、係数の走査の順序は、所与のサブブロック内の係数が走査される順序を規定する。
【００４１】
他の例では、本開示の態様によれば、係数の走査順序は、サブブロックの走査順序とは異なり得る。すなわち、たとえば、ビデオコーダは、対角方向のサブブロックの走査順序と、ジグザグの係数の走査順序とを実行し得る。以下でより詳しく説明されるように、ビデオコーダは、たとえば、レート−歪み尺度に基づいて、サブブロックの走査順序と係数の走査順序とを適応的に決定することができる。
【００４２】
いくつかの例では、ビデオコーダは、走査を反対方向に実行することができる。加えて、いくつかの態様によれば、ビデオコーダは、サブブロックを順番に走査しコード化することができる。すなわち、ビデオコーダは、サブブロックの走査順序で次のサブブロックに移る前に、係数の走査順序で現在のサブブロックの変換係数を走査しコード化することができる。
【００４３】
本開示の態様はまた、エントロピーコード化のための走査（たとえば、有意性マップの走査またはＣＡＢＡＣにおける係数レベルの走査）を実行するために、サブブロックの適応的な走査順序を使用することに関する。一例では、サブブロックの適応的な走査順序が、比較的大きなブロックサイズ（たとえば、３２×３２または１６×１６のブロックサイズ）に対して、上で説明されたような、強い水平方向または垂直方向の走査順序の代わりに使用され得る。しかしながら、以下の技法は、副分割され得る任意のサイズのブロックに対して使用され得る。上で述べられたように、適応的な走査は、ブロックの０ではない変換係数を一緒にグループ化するのを支援することができる。
【００４４】
いくつかの例では、変換係数のブロックをサブブロックに分割することで、（たとえば、コンテキストを使用したエントロピーコード化の場合）サブブロック内でコンテキスト依存性が生じることがある。たとえば、対角方向の走査を使用してサブブロック内で走査する場合、サブブロック内の左上の係数に対するコンテキストは、処理されている以前の係数（たとえば、現在の変換係数の下に位置する変換係数）に依存し得る。コンテキスト依存性(context dependency)は、エントロピーコード化の場合に、望ましくない遅延をもたらし得る。この依存性を回避し、そして並列化を強化するために、本開示の態様は、コンテキストサポート近傍(context support neighborhood)と呼ばれ得る、コンテキストが導出され得る場所を修正することに関する。たとえば、本開示の技法は、２つの連続する係数の依存性を除去するコンテキストサポート近傍を決定し、ビデオコーダが２つのビンを並列に処理することを可能にすることを含む。いくつかの例では、依存性の除去は、２つの連続する係数から、３つ、４つ、またはより多数の連続する係数へと増やされ得る。そうした場合、各場所におけるコンテキストサポート近傍は、ある特定の走査順序が与えられると、近傍におけるコンテキスト依存性を除去するように修正され得る。
【００４５】
[0070]  図１は、本開示の例による、変換係数をコード化するための技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されるように、システム１０は、通信チャネル１６を介して符号化されたビデオを宛先デバイス１４に送信するソースデバイス１２を含む。符号化されたビデオはまた、記憶媒体３４またはファイルサーバ３６に記憶されてよく、必要に応じて宛先デバイス１４によってアクセスされ得る。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンのような電話ハンドセット、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、多種多様なデバイスのいずれをも備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。
【００４６】
したがって、通信チャネル１６は、高周波（ＲＦ）スペクトルまたは１つまたは複数の物理的な伝送線、またはワイヤレス媒体および有線媒体の任意の組合せのような、符号化されたビデオデータの送信に適した、ワイヤレスチャネル、有線チャネル、またはワイヤレスチャネルおよび有線チャネルの組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成することができる。通信チャネル１６は、一般に、有線媒体またはワイヤレス媒体の任意の適切な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに適切な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を支援するのに有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００４７】
本開示の例による、変換係数をコード化するための技法は、無線を通じたテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、種々のマルチメディア用途のいずれかをサポートするビデオコード化に適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４８】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／または、ソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き電話またはテレビ電話を形成し得る。しかしながら、本開示で説明される技法は、概してビデオコード化に適用可能であってよく、ワイヤレスおよび／または有線の用途に適用され得る。
【００４９】
撮影されたビデオ、以前に撮影されたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他のコンポーネントを含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００５０】
ビデオエンコーダ２０によって符号化された、撮影されたビデオ、以前に撮影されたビデオ、またはコンピュータで生成されたビデオはまた、後で使用するために記憶媒体３４またはファイルサーバ３６に記憶され得る。記憶媒体３４は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化されたビデオを記憶するための任意の他の適切なデジタル記憶媒体を含み得る。記憶媒体３４に記憶された符号化されたビデオは、次いで、復号および再生のために宛先デバイス１４によってアクセスされ得る。
【００５１】
ファイルサーバ３６は、符号化されたビデオを記憶すること、およびその符号化されたビデオを宛先デバイス１４に送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または、符号化されたビデオデータを記憶すること、および符号化されたビデオデータを宛先デバイスに送信することが可能な任意の他のタイプのデバイスを含む。ファイルサーバ３６からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ３６は、インターネット接続を含む任意の標準的なデータ接続を通じて宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適切な、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデム、イーサネット（登録商標）、ＵＳＢなど）、または両方の組合せを含み得る。
【００５２】
図１の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を通じて情報を受信し、モデム２８は、その情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を通じて通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された種々のシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶される符号化されたビデオデータとともに含まれ得る。
【００５３】
ディスプレイデバイス３２は、宛先デバイス１４と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースをとるように構成されてよい。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、種々のディスプレイデバイスのいずれかを備え得る。
【００５４】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格などのビデオコード化規格に従って動作することができ、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）に準拠することができる。以後ＨＥＶＣ  ＷＤ７と呼ばれる、ＨＥＶＣの最新のＷｏｒｋｉｎｇ  Ｄｒａｆｔ（ＷＤ）は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／９＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｉ１００３−ｖ５．ｚｉｐから入手可能であり、さらに新しいバージョンは、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／９＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｉ１００３−ｖ６．ｚｉｐから入手可能であり、これらの両方が、その全体がここに記載されているかのように、参照によって本明細書に組み込まれる。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格のような、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオコード化規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００５５】
[0080]  ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明される技法は、一般にＨ．２６４規格に準拠するデバイスに適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ研究グループによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓに記載されており、本明細書ではＨ．２６４規格もしくはＨ．２６４仕様、またはＨ．２６４／ＡＶＣ規格もしくは仕様と呼ばれ得る。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００５６】
ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）と呼ばれるビデオコード化デバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対する、ビデオコード化デバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９個のイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００５７】
ＨＥＶＣ規格では、ビデオデータのブロックをコード化単位（ＣＵ）と呼ぶ。一般に、ＣＵは、ＣＵがサイズの差異を有さないことを除いて、Ｈ．２６４に従ってコード化されたマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに分割され得る。一般に、本開示におけるＣＵへの言及は、ピクチャの最大コード化単位（ＬＣＵ）またはＬＣＵのサブＣＵを指すことがある。たとえば、ビットストリーム内のシンタックスデータは、画素の数に関して最大のコード化単位であるＬＣＵを定義し得る。ＬＣＵはサブＣＵに分割されてよく、各サブＣＵはサブＣＵに分割されてよい。ビットストリームのシンタックスデータは、最大ＣＵ深さ(maximum CU depth)と呼ばれる、ＬＣＵが分割され得る最大回数(maximum number of times)を定義し得る。それに応じて、ビットストリームは最小コード化単位（ＳＣＵ：smallest coding unit）も定義し得る。
【００５８】
ＬＣＵは階層４分木データ構造と関連付けられ得る。一般に、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードがＬＣＵに対応する。ＣＵが４つのサブＣＵに分割される場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義されてよく、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００５９】
分割されないＣＵは、１つまたは複数の予測単位（ＰＵ）を含み得る。一般に、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４画素精度または１／８画素精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照リスト（たとえば、リスト０またはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコード化されないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって、異なり得る。
【００６０】
１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換単位（ＴＵ）を含み得る。ＰＵを使用した予測の後に、ビデオエンコーダは、ＰＵに対応するＣＵの部分の残差値を計算し得る。残差値は変換され、量子化され、走査され得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵの対応するＰＵよりも大きいことも小さいこともある。いくつかの例では、ＴＵの最大サイズ(maximum size)は、対応するＣＵのサイズであり得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」という用語を使用する。
【００６１】
ビデオエンコーダ２０は、ビデオコード化処理における変換係数の符号化を改善するために、本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコード化処理における変換係数の復号を改善するために、これらの技法のいずれかまたはすべてを実装し得る。本開示で説明されるビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコード化ユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコード化は、ビデオ符号化またはビデオ復号を指し得る。
【００６２】
本開示の態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、複数のサブブロック中のブロック（たとえば、ＴＵ）の変換係数を処理することができる。サブブロックは、等しいサイズであってよく、または異なるサイズであってよい。ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数の走査順序でサブブロックの変換係数を走査し、サブブロックの走査順序でサブブロック自体を走査することができる。すなわち、サブブロックは、第１のサブブロック中の係数が最初に走査され、第２のサブブロック中の係数が２番目に走査され、第３のサブブロック中の係数が３番目に走査され、以下同様であることを規定し得る。係数の走査順序は次いで、各サブブロック内の係数が走査される順序を規定し得る。本開示の態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数の走査順序およびサブブロックの走査順序について、同じ方向（たとえば、走査パターン、方向、または順序）を使用することができる。すなわち、本開示の態様によれば、サブブロックの走査順序の方向は、係数の走査順序の方向と一致し得る。他の例では、（たとえば、サブブロックの走査順序および係数の走査順序が適応的に決定される例において）サブブロックの走査順序は、係数の走査順序とは異なり得る。
【００６３】
たとえば、変換係数のブロックをサブブロックへと分割した後（または、変換係数のサブブロックを受信した後）、ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数の走査順序でサブブロックの変換係数を走査することができ、また、サブブロックの走査順序でサブブロック自体を走査することができる。すなわち、たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数の走査順序で、サブブロックの変換係数の各々を対角方向に走査することができる。ビデオエンコーダ２０および／またはビデオデコーダ３０はまた、サブブロックの走査順序で、サブブロックにわたって対角方向に走査することができる。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、走査を反対方向に実行することができる。加えて、いくつかの態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、サブブロックを順番に走査しコード化することができる。すなわち、ビデオエンコーダ２０および／またはビデオデコーダ３０は、サブブロックの走査順序で次のサブブロックに移る前に、係数の走査順序で現在のサブブロックの変換係数（たとえば、有意性、符号、レベルなどを含む）を走査しコード化することができる。
【００６４】
いくつかの態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、適応的なサブブロックの走査順序を実行することができる。一例では、サブブロックの適応的な走査順序が、比較的大きなブロックサイズ（たとえば、３２×３２または１６×１６のブロックサイズ）に対して、上で説明されたような、強い水平方向または垂直方向の走査順序の代わりに使用され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロックサイズ、ブロックの予測モード（たとえば、イントラ／インター予測モード）、近傍のブロックの情報（予測モード、動き情報、走査インデックス）に基づいて、かつ／または、エンコーダにおける完全なレート−歪みの判断およびデコーダにおける符号化されたビットストリームからのシンタックスから、ブロックに対して、サブブロックの走査順序と係数の走査順序とを適応的に決定することができる。
【００６５】
[0090]  図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合されてよく、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００６６】
ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、種々の適切なエンコーダ回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実施されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００６７】
図２は、本開示で説明される変換係数をコード化するための技法を使用し得る、ビデオエンコーダ２０のある例を示すブロック図である。図２では、ビデオエンコーダ２０のいくつかの態様が、例示のために提案されたＨＥＶＣコード化に関して説明され得るが、本開示の技法は、変換係数の走査を必要とし得る他のコード化規格または方法に関して限定されることなく、実行され得る。
【００６８】
図２の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、参照ピクチャバッファ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。図２に示される変換処理ユニット５２は、残差データのブロックに実際の変換を適用するユニットであり、ＣＵの変換ユニット（単位）（ＴＵ）と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック復元のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。復元されたビデオからブロック歪み (blockiness artifacts)を除去するためにブロック境界をフィルタリングするための、デブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタ(deblocking filter)は、一般に、加算器６２の出力をフィルタリングする。
【００６９】
符号化処理中に、ビデオエンコーダ２０は、コード化されるべきビデオピクチャまたはスライスを受信する。ピクチャまたはスライスは、複数のビデオブロック、たとえば、最大コード化単位（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コード化を実行する。イントラ予測ユニット４６は、空間圧縮を行うために、コード化されるべきブロックと同じピクチャまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コード化を実行し得る。
【００７０】
モード選択ユニット４０は、たとえば、各モードについてのレート歪み分析に基づいて、コード化モードのうちの１つ、すなわち、イントラまたはインターを選択することができ、得られたイントラコード化されたまたはインターコード化されたブロックを加算器５０に与えて、残差ブロックデータを生成し、かつ得られたイントラコード化されたまたはインターコード化されたブロックを加算器６２に与えて、参照ピクチャ中で使用する符号化されたブロックを復元する。いくつかのビデオピクチャはＩフレームとして指定されてよく、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００７１】
動き推定ユニット４２および動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、たとえば、参照ピクチャの参照サンプルに対する、現在のピクチャ中の予測単位の変位を示し得る。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分尺度によって求められ得る画素差分に関して、コード化されているＰＵを含むＣＵの部分と厳密に一致することが判明しているブロックであり得る。動き補償ユニット４４によって実行される動き補償は、動き推定によって求められた動きベクトルに基づいて予測単位の値をフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００７２】
動き推定ユニット４２は、予測単位を参照ピクチャバッファ６４に記憶された参照ピクチャの参照サンプルと比較することによって、インターコード化されたピクチャの予測単位の動きベクトルを計算する。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャバッファ６４に記憶された参照ピクチャのサブ整数画素位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４画素位置、１／８画素位置、または他の分数画素位置fractional pixel positionの値を計算し得る。したがって、動き推定ユニット４２は、フル画素位置と分数画素位置とに対する動き探索を実行し、分数画素精度で動きベクトルを出力し得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照ピクチャの部分は、参照サンプルと呼ばれることがある。参照サンプルは、コード化されるべき現在のブロックのための予測画素値を形成する際に使用される、画素値を定義することができる。動き補償ユニット４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在のＣＵの予測単位についての予測値を計算し得る。
【００７３】
イントラ予測ユニット４６は、動き推定ユニット４２および動き補償ユニット４４によって実行されるインター予測の代替として、受信されたブロックをイントラ予測符号化し得る。イントラ予測ユニット４６は、隣接する、以前にコード化されたブロック、たとえば、ブロックに対して左から右、上から下への符号化順序を仮定すると、現在のブロックの上のブロック、右上のブロック、左上のブロック、または左のブロックに対して、受信されたブロックを符号化し得る。イントラ予測ユニット４６は、多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３３個の方向性予測モードで構成され得る。
【００７４】
イントラ予測ユニット４６は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接する画素の値を合成し、その合成された値をＰＵ中の１つまたは複数の画素位置に適用するための機能を含み得る。ＰＵ中のすべての画素位置の値が計算されると、イントラ予測ユニット４６は、ＰＵと符号化されるべき受信されたブロックとの間の画素差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット４６は、次いで、ＰＵを加算器５０に送り得る。
【００７５】
[0100]  ビデオエンコーダ２０は、コード化されている元のビデオブロックから、動き補償ユニット４４またはイントラ予測ユニット４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数のコンポーネントを表す。残差ブロックは画素差分値の２次元行列に対応してよく、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中の画素の数と同じである。残差ブロック中の値は、ＰＵ中と、コード化されるべき元のブロック中とで、同じ位置にある画素の値の差分、すなわち、誤差に対応し得る。差分は、コード化されるブロックのタイプに応じて、彩度の差分または輝度の差分であり得る。
【００７６】
変換処理ユニット５２は、残差ブロックから１つまたは複数の変換単位（ＴＵ）を形成し得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換などの変換をＴＵに適用して、変換係数を備えるビデオブロックを生成する。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。変換スキップモードのようなあるビデオコード化モードモードでは、変換処理ユニット５２は、変換を実行することなく、残差ブロックを量子化ユニット５４に直接送り得る。そのような場合、残差値に対して変換は実際には適用されないが、それでも残差値は「変換係数」と本明細書では呼ばれ得る。
【００７７】
量子化ユニット５４は、次いで、その変換係数を量子化し得る。次いで、エントロピー符号化ユニット５６が、指定された走査順序に従って、行列中の量子化された変換係数の走査を実行し得る。本開示は、エントロピー符号化ユニット５６が走査を実行するものとして説明する。しかしながら、他の例では、ビデオエンコーダ２０が走査を実行できる場合、変換処理ユニット５２、量子化ユニット５４、または別のユニットなどの他の処理ユニットを理解されたい。
【００７８】
本開示の態様によれば、エントロピー符号化ユニット５６は、複数のサブブロックを使用して、２Ｄ  ＴＵの変換係数を走査することができる。たとえば、エントロピー符号化ユニット５６は、係数の走査順序でサブブロックの変換係数を走査し、サブブロックの走査順序でサブブロック自体を走査することができる。本開示の態様によれば、エントロピー符号化ユニット５６は、係数の走査順序およびサブブロックの走査順序について、同じ方向（たとえば、走査パターン、方向、または順序）を使用することができる。すなわち、本開示の態様によれば、サブブロックの走査順序の方向は、係数の走査順序の方向と一致し得る。他の例では、（たとえば、サブブロックの走査順序および係数の走査順序が適応的に決定される例において）サブブロックの走査順序は、係数の走査順序とは異なり得る。
【００７９】
たとえば、エントロピー符号化ユニット５６は、変換係数のＴＵを生成し得る。ＴＵを走査してＴＵを直列化する前に、エントロピー符号化ユニット５６は、複数のサブブロックへとＴＵを分割することができる。エントロピー符号化ユニット５６は次いで、係数の走査順序でサブブロックの変換係数を走査することができ、また、サブブロックの走査順序でサブブロック自体を走査することができる。すなわち、例示を目的とする例では、エントロピー符号化ユニット５６は、係数の走査順序で、サブブロックの変換係数の各々を対角方向に走査することができる。エントロピー符号化ユニット５６はまた、サブブロックの走査順序でサブブロック全体を対角方向に走査する（サブブロック自体を走査する）ことができる。いくつかの例では、エントロピー符号化ユニット５６は、走査を反対方向に実行することができる。加えて、いくつかの態様によれば、エントロピー符号化ユニット５６は、サブブロックを順番に走査しコード化することができる。すなわち、エントロピー符号化ユニット５６は、サブブロックの走査順序で次のサブブロックに移る前に、係数の走査順序で現在のサブブロックの変換係数と関連付けられるすべてのビンall binsを走査しコード化することができる。他の例では、エントロピー符号化ユニット５６は、次のビンをコード化する前に、ＴＵ全体（すべてのサブブロックを含む）の特定のビンをコード化することができる。
【００８０】
いくつかの態様によれば、エントロピー符号化ユニット５６は、適応的なサブブロックの走査順序を実行することができる。一例では、サブブロックの適応的な走査順序が、比較的大きなブロックサイズ（たとえば、３２×３２または１６×１６のブロックサイズ）に対して、上で説明されたような、強い水平方向または垂直方向の走査順序の代わりに使用され得る。エントロピー符号化ユニット５６は、ブロックサイズ、ブロックの予測モード（たとえば、イントラ／インター予測モード）、近傍のブロックの情報（予測モード、動き情報、走査インデックス）に基づいて、かつ／または、エンコーダにおける完全なレート−歪みの判断およびデコーダにおける符号化されたビットストリームからのシンタックスから、ブロックに対する、サブブロックの走査順序と係数の走査順序とを適応的に決定することができる。
【００８１】
変換係数が走査されると（または走査の間に）、エントロピー符号化ユニット５６は、それらの係数に、ＣＡＶＬＣ、ＰＩＰＥ、またはＣＡＢＡＣなどのエントロピーコード化を適用し得る。加えて、エントロピー符号化ユニット５６は、動きベクトル（ＭＶ）情報と、ビデオデコーダ３０においてビデオデータを復号する際に有用な種々のシンタックス要素のいずれかとを符号化し得る。シンタックス要素は、特定の係数が有意（たとえば、０ではない）であるかどうかを示す有意係数フラグと、特定の係数が最後の有意な係数であるかどうかを示す最後有意係数フラグ（いくつかの例では、最後の有意な係数の位置はコード化されなくてよい）とを伴う、有意性マップを含み得る。ビデオデコーダ３０は、これらのシンタックス要素を使用して、符号化されたビデオデータを復元し得る。エントロピー符号化ユニット５６によるエントロピーコード化の後に、得られた符号化されたビデオは、ビデオデコーダ３０などの別のデバイスに送信されてよく、または、後で送信するかまたは取り出すためにアーカイブされてよい。
【００８２】
いくつかの例では、変換係数のブロックをサブブロックに分割することで、（たとえば、コンテキスト）情報を使用したエントロピーコード化の場合）サブブロック内でコンテキスト依存性が生じることがある。たとえば、対角方向の走査を使用してサブブロック内で走査する場合、サブブロック内の左上の係数の特定のビン（有意性マップのビンなど）に対するコンテキストは、処理されている以前の係数（たとえば、現在の変換係数の下に位置する変換係数）に依存し得る。コンテキスト依存性は、エントロピーコード化の場合に、望ましくない遅延をもたらし得る。この依存性を回避し、そして並列化を強化するために、エントロピー符号化ユニット５６は、コンテキストサポート近傍を修正することができる。たとえば、エントロピー符号化ユニット５６は、２つの連続する係数のコンテキスト依存性を除去するコンテキストサポート近傍を決定することができ、エントロピー符号化ユニット５６が２つのビンを並列に符号化することを可能にする。すなわち、本開示の態様によれば、コンテキストを導出するために通常は使用されるであろう、位置のセットからの１つまたは複数の位置（すなわち、コンテキストサポート近傍）を除去することができ、これによって減らされたコンテキストのセットを確立する。いくつかの例では、エントロピー符号化ユニット５６は、依存性の除去を、２つの連続する係数から、３つ、４つ、またはより多数の連続する係数へと増やすことができる。そうした場合、各場所におけるコンテキストサポート近傍は、ある特定の走査順序が与えられると、近傍におけるコンテキスト依存性を除去するように修正され得る。
【００８３】
逆量子化ユニット５８および逆変換処理ユニット６０は、それぞれ逆量子化と逆変換とを適用して、たとえば、参照ブロックとして後で使用するために、画素領域中で残差ブロックを復元する。動き補償ユニット４４は、残差ブロックを参照ピクチャバッファ６４のピクチャのうちの１つの予測ブロックに加算することによって、参照ブロックを計算し得る。動き補償ユニット４４はまた、復元された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器６２は、復元された残差ブロックを、動き補償ユニット４４によって生成された動き補償された予測ブロックに加算して、参照ピクチャバッファ６４に記憶するための復元されたビデオブロックを生成する。復元されたビデオブロックは、後続のビデオピクチャ中のブロックをインターコード化するために、動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８４】
図３は、符号化されたビデオシーケンスを復号するビデオデコーダ３０のある例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャバッファ８２と、加算器８０とを含む。
【００８５】
[0110]  エントロピー復号７０は、図２のエントロピー符号化ユニット５６によって使用された処理の逆であり得る処理において、符号化されたビデオをエントロピー復号する。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。イントラ予測ユニット７４は、信号伝達されたイントラ予測モードと、現在のピクチャの以前に復号されたブロックからのデータとに基づいて、現在のピクチャの現在のブロックについての予測データを生成し得る。
【００８６】
いくつかの例では、エントロピー復号ユニット７０（または逆量子化ユニット７６）は、ビデオエンコーダ２０のエントロピー符号化ユニット５６（または量子化ユニット５４）によって使用された走査順序と一致する走査を使用して、受信された値を走査し得る。係数の走査は逆量子化ユニット７６において実行され得るが、走査は、例示のために、エントロピー復号ユニット７０によって実行されるものとして説明される。加えて、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ３０のエントロピー復号ユニット７０、逆量子化ユニット７６、および他のユニットの構造および機能は、互いに高度に統合され得る。
【００８７】
ビデオデコーダ３０は、符号化されたビットストリームから、ビデオエンコーダ２０によって使用された走査順序を特定する信号(signaling)を受信し得る。加えて、または代替的に、走査順序は、予測モード、ブロックサイズ、変換、または他の特性のような、コード化されたビデオの特性に基づいて、ビデオデコーダ３０によって推測され得る。別の例として、ビデオエンコーダ２０およびビデオデコーダ３０は、すべての使用事例について所定の走査順序とコンテキストとを使用することができるので、符号化されたビットストリームでの信号伝達は必要とされないであろう。
【００８８】
本開示の技法によれば、ビデオデコーダ３０によって決定される走査順序は、１Ｄベクトルからの変換係数が、どのように走査されて、複数のサブブロックに分割される２Ｄブロックになるかを定義する、サブブロックの走査順序と係数の走査順序とを含み得る。デコーダは、２Ｄブロックのサイズに基づいて、変換係数のブロックのサブブロックの数および／またはサイズを推測することができる。他の例では、サブブロックの数および／またはサイズは、符号化されたビデオビットストリームにおいて示され得る。
【００８９】
走査順序がどのように決定されるかにかかわらず、エントロピー復号ユニット７０は、エンコーダによって使用される走査順序の逆を使用して、１Ｄベクトルを走査して２Ｄアレイにする。本開示の技法によれば、エントロピー復号ユニット７０は、１Ｄベクトルのセクションからの変換係数を走査して２Ｄブロックの複数のサブブロックにする、走査処理を実行することができる。この処理は、図２を参照して上で説明された処理の逆であり得る。
【００９０】
たとえば、本開示の態様によれば、エントロピー復号ユニット７０は、複数のサブブロック中で、ＴＵを復号し逆走査することができる。すなわち、エントロピー復号ユニット７０は、係数の走査順序でサブブロックの変換係数を走査し、サブブロックの走査順序でサブブロック自体を走査することができる。本開示の態様によれば、エントロピー復号ユニット７０は、係数の走査順序およびサブブロックの走査順序について、同じ方向（たとえば、走査パターン、方向、または順序）を使用することができる。すなわち、本開示の態様によれば、サブブロックの走査順序の方向は、係数の走査順序の方向と一致し得る。他の例では、（たとえば、サブブロックの走査順序および係数の走査順序が適応的に決定される例において）サブブロックの走査順序は、係数の走査順序とは異なり得る。
【００９１】
たとえば、エントロピー復号ユニット７０は、ＴＵと関連付けられる変換係数の直列化されたアレイを受信し得る。エントロピー復号ユニット７０は、サブブロック中の変換係数を走査して、２Ｄ  ＴＵを復元することができる。すなわち、エントロピー復号ユニット７０は、係数の走査順序で変換係数を走査し、また、サブブロックの走査順序でサブブロック自体を走査することができる。例示のための例において、エントロピー復号ユニット７０は、係数の走査順序で、受信された変換係数の各々を対角方向に走査して、２Ｄのサブブロックを復元することができる。
【００９２】
エントロピー復号ユニット７０はまた、サブブロックの走査順序で、（サブブロックが生成されるに従って）復元されたサブブロックを対角方向に走査して、ＴＵを復元することができる。いくつかの例では、エントロピー復号ユニット７０は、走査を反対方向に実行することができる。加えて、いくつかの態様によれば、エントロピー復号ユニット７０は、サブブロックを順番に走査しコード化することができる。すなわち、エントロピー復号ユニット７０は、サブブロックの走査順序で次のサブブロックに移る前に、係数の走査順序で現在のサブブロックの変換係数と関連付けられるすべてのビンを走査し復号することができる。他の例では、エントロピー復号ユニット７０は、次のビンを復号する前に、ＴＵ全体（すべてのサブブロックを含む）の特定のビンを復号することができる。
【００９３】
いくつかの態様によれば、エントロピー復号ユニット７０は、適応的なサブブロックの走査順序を実行することができる。一例では、サブブロックの適応的な走査順序が、比較的大きなブロックサイズ（たとえば、３２×３２または１６×１６のブロックサイズ）に対して、上で説明されたような、強い水平方向または垂直方向の走査順序の代わりに使用され得る。エントロピー復号ユニット７０は、ブロックサイズ、ブロックの予測モード（たとえば、イントラ／インター予測モード）、近傍のブロックの情報（予測モード、動き情報、走査インデックス）に基づいて、かつ／または、エンコーダにおける完全なレート−歪みの判断およびデコーダにおける符号化されたビットストリームからのシンタックスから、ブロックに対して、サブブロックの走査順序と係数の走査順序とを適応的に決定することができる。
【００９４】
いくつかの例では、変換係数のブロックをサブブロックに分割することで、（たとえば、コンテキスト）情報を使用したエントロピーコード化の場合）サブブロック内でコンテキスト依存性が生じることがある。たとえば、対角方向の走査を使用してサブブロック内で走査する場合、サブブロック内の左上の係数に対するコンテキストは、処理されている以前の係数（たとえば、現在の変換係数の下に位置する変換係数）に依存し得る。コンテキスト依存性は、エントロピーコード化の場合に、望ましくない遅延をもたらし得る。この依存性を回避し、そして並列化を強化するために、エントロピー復号ユニット７０は、修正されたコンテキストサポート近傍を使用することができる。たとえば、エントロピー復号ユニット７０は、２つの連続する係数のコンテキスト依存性を除去するコンテキストサポート近傍を使用することができ、エントロピー復号ユニット７０が２つのビンを並列に復号することを可能にする。いくつかの例では、エントロピー復号ユニット７０は、依存性の除去を、２つの連続する係数から、３つ、４つ、またはより多数の連続する係数へと増やすことができる。そうした場合、各場所におけるコンテキストサポート近傍は、ある特定の走査順序が与えられると、近傍におけるコンテキスト依存性を除去するように修正され得る。
【００９５】
[0120]  エントロピー復号ユニット７０によって生成された変換係数の２Ｄアレイは、量子化されてよく、変換係数の１Ｄベクトルを生成するためにビデオエンコーダ２０のエントロピー符号化ユニット５６によって走査された変換係数の２Ｄアレイと概ね一致し得る。逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化された変換係数を逆の量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化処理は、たとえば、ＨＥＶＣのために提案された処理またはＨ．２６４復号規格によって定義された処理と同様の、従来の処理を含み得る。逆量子化処理は、量子化の程度を判定し、同様に、適用されるべき逆量子化の程度を判定するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。逆量子化ユニット７６は、係数が１Ｄベクトルから２Ｄアレイに変換される前または変換された後に、変換係数を逆量子化し得る。
【００９６】
逆変換ユニット５８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、逆ＫＬＴ、逆回転変換、逆方向性変換、または別の逆変換を適用する。いくつかの例では、逆変換処理ユニット７８は、ビデオエンコーダ２０からの信号伝達に基づいて、またはブロックサイズ、コード化モードなどの１つまたは複数のコード化特性から変換を推測することによって、逆変換を決定し得る。いくつかの例では、逆変換処理ユニット７８は、現在のブロックを含むＬＣＵのための４分木のルートノードにおける信号伝達された変換に基づいて、現在のブロックに適用すべき変換を決定し得る。いくつかの例では、逆変換処理ユニット７８はカスケード逆変換を適用し得る。受信された係数がいわゆるスキップモードを使用してコード化された例では、逆変換ユニット５８は変換を適用しなくてよい。
【００９７】
動き補償ユニット７２は動き補償されたブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数画素に対する補間された値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用される補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００９８】
動き補償ユニット７２およびイントラ予測ユニット７４は、ＨＥＶＣの例では、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化されたビデオシーケンスの（１つまたは複数の）ピクチャを符号化するために使用されるＬＣＵのサイズを決定し得る。動き補償ユニット７２およびイントラ予測ユニット７４はまた、シンタックス情報を使用して、符号化されたビデオシーケンスのピクチャの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を決定し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード（たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各々のインター符号化されたＰＵについての１つまたは複数の参照ピクチャ（および／またはそれらの参照ピクチャの識別子を含んでいる参照リスト）と、符号化されたビデオシーケンスを復号するための他の情報とを含み得る。
【００９９】
加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニット７４によって生成される対応する予測ブロックと合成して、復号されたブロックを形成する。たとえば、加算器８０は、予測画素値（たとえば、輝度および／または彩度）を残差画素差分値と合成して、画素値を復元することができる。必要に応じて、ブロック歪みを除去するために、デブロッキングフィルタを適用して、復号されたブロックをフィルタリングすることもできる。復号されたビデオブロックは、次いで、参照ピクチャバッファ８２に記憶され、参照ピクチャバッファ８２は、参照ブロックを後続の動き補償のために与え、また、（図１のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号されたビデオを生成する。
【０１００】
図４は、有意性マップのコード化を全般に示す概念図である。たとえば、上で述べられたように、ビデオエンコーダ（ビデオエンコーダ２０など）は、係数の値（レベル）を符号化する前に、変換ブロック（たとえば、ＴＵ）中の有意な係数（すなわち、０ではない変換係数）の位置を符号化することができる。有意性マップをコード化する処理は、有意性マップコード化と呼ばれることがあり、これはビットレートのうちの比較的高い割合を必要とする。ビデオデコーダ（ビデオデコーダ３０など）は、有意性マップを受信し、有意な変換係数の位置を決定することができる。
【０１０１】
図４の例は、第１の行に３個の有意な係数を有し、第２の行に４個の有意な係数を有し、第３の行に２個の有意な係数を有し、かつ第４の行に有意な係数を有さない、量子化された変換係数１００の４×４のブロックを示す。有意性マップ１０２は、有意な変換係数の各位置に（１）を含み、かつ値が０の変換係数の各位置に（０）を含む。一般に、有意な変換係数の位置を決定した後、ビデオエンコーダ２０は、有意性マップ１０２を直列化し符号化することができる。同様に、ビデオデコーダ３０は、直列化された有意性マップ１０２を受信し、有意な係数の位置を復元することができる。
【０１０２】
有意性マップをコード化するための例示的な処理は、Ｄ．Ｍａｒｐｅ、Ｈ．Ｓｃｈｗａｒｚ、およびＴ．Ｗｉｅｇａｎｄ「Ｃｏｎｔｅｘｔ−Ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ  ｉｎ  ｔｈｅ  Ｈ．２６４／ＡＶＣ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ｓｔａｎｄａｒｄ」、ＩＥＥＥ  Ｔｒａｎｓ．Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．１３、ｎｏ．７、２００３年７月、に記載されている。この処理では、有意性マップは、Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｆｌａｇ（ＣＢＦ）によって示されるように、ブロック中に少なくとも１つの有意な係数がある場合にコード化され、ＣＢＦは次のように定義され得る。
Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｆｌａｇ：ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇは１ビットシンボルであり、これは、変換係数の単一のブロック内に有意な、すなわち、０ではない係数があるかどうかを示し、これについてコード化されたブロックパターンは０ではないエントリを示す。ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇが０である場合、関連するブロックについてさらなる情報は送信されない。
【０１０３】
ブロック中に有意な係数がある場合、有意性マップは、以下のようにブロック中の変換係数の走査順序に従うことによって符号化される。
変換係数の走査：ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇがそれについて０ではないエントリを示すサブブロックの変換係数レベルの２次元アレイが、最初に、所与の走査パターンを使用して１次元リストにマッピングされる。言い換えれば、有意な係数をもつサブブロックが走査パターンに従って走査される。
【０１０４】
この走査パターンを仮定すれば、有意性マップは以下のように走査され得る。
有意性マップ：ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇが、ブロックが有意な係数を有することを示す場合、２進値の有意性マップが符号化される。走査順序における各変換係数について、１ビットシンボルｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが送信される。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇシンボルが１である場合、すなわち、０ではない係数がこの走査位置に存在する場合、さらなる１ビットシンボルｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが送られる。このシンボルは、現在の有意な係数がブロック内の最後の有意な係数であるかどうか、またはさらなる有意な係数が続くかどうかを示す。最後の走査位置に達し、有意性マップ符号化が、値１のｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇによってまだ終了されていなかった場合、最後の係数が有意でなければならないことは明らかである。
【０１０５】
[0130]  他のビデオコード化規格は、異なる処理を使用して有意な情報をコード化することができる。たとえば、提案されたＨＥＶＣ規格は、上で説明された処理と同様の処理を使用するが、最後有意係数フラグをコード化しない。代わりに、ＨＥＶＣによれば、最後の有意な係数を識別することができ、走査は、最後の有意な係数から最初の有意な係数へと反対の順序で進行し得る。
【０１０６】
本開示の態様によれば、有意性マップ１０２は、より大きな有意性マップの一部分を形成し得る。すなわち、たとえば、有意性マップ１０２は、有意性フラグのより大きなブロックに対する、有意性フラグのサブブロックであり得る。そのような例では、本開示の態様によれば、ビデオコーダは、同じ方向を有する走査を使用して、有意性マップ１０２とより大きな有意性マップとを走査することができる。有意性マップ１０２に加えて、以下でより詳しく説明されるように、種々の他のビン（たとえば、符号、レベルなど）も、有意性マップ１０２と同じまたは異なる方向に走査され得る。
【０１０７】
図５Ａ〜図５Ｆは全般に、変換係数をコード化するための走査パターンと走査方向とを示す。たとえば、図５Ａ〜図５Ｆに示される走査パターンは、変換係数（たとえば、有意性、レベル、符号など）の２Ｄアレイを直列化するとき、係数の走査順序として、ビデオエンコーダ（符号化されたビデオ２０など）によって使用され得る。別の例では、走査パターンは、コード化された変換係数の受信された直列化されたアレイから変換係数のブロックを復元するとき、係数の走査順序として、ビデオデコーダ（ビデオデコーダ３０など）によって使用され得る。
【０１０８】
いくつかの例では、図５Ａ〜図５Ｆに示される走査パターンおよび走査方向は、有意性マップ（図４に示される有意性マップ１０２など）、さらには変換係数レベルを走査するとき、ビデオデコーダによって実施され得る。たとえば、図５Ａは、ビデオデータのブロックの変換係数（たとえば、ＴＵに関連する変換係数）を走査するための、順方向のジグザグの走査パターン１１０を示す。一般に、ジグザグの走査パターン１１０は、ブロックの左上からブロックの右下まで、交互に４５度の角度でブロックを横断する。すなわち、図５Ａに示される例では、第１の係数１１２は、ブロックの左上の角に位置するＤＣ成分であり、走査されるべき最後の係数１１４はブロックの右下の角に位置する。
【０１０９】
図５Ｂは、ビデオデータのブロックの変換係数を走査するための順方向の水平の走査パターン１２０を示す。一般に、順方向の水平の走査パターン１２０は、左から右に、かつ上から下にブロックを横断する。すなわち、図５Ｂに示される例では、第１の係数１２２はブロックの左上の角に位置するＤＣ成分であり、走査されるべき最後の係数１２４はブロックの右下の角に位置する。順方向の水平の走査パターン１２０は、第１の係数１２２から、ブロックの上部にわたって、左から右に進む。各々の後続の行は、最後の係数１２４に達するまで、左から右に走査される。
【０１１０】
図５Ｃは、ビデオデータのブロックの変換係数を走査するための順方向の垂直の走査パターン１３０を示す。一般に、順方向の垂直の走査パターン１３０は、上から下に、かつ左から右にブロックを横断する。すなわち、図５Ｃに示される例では、第１の係数１３２はブロックの左上の角に位置するＤＣ成分であり、走査されるべき最後の係数１３４はブロックの右下の角に位置する。順方向の垂直の走査パターン１３０は、ブロックの相対的な下部に向かって、第１の係数１３２から下方向に進む。各々の後続の列は、最後の係数１３４に達するまで、上から下に走査される。
【０１１１】
図５Ｄは、ビデオデータのブロックの変換係数を走査するための対角方向の走査パターン１４０を示す。一般に、対角方向の走査パターン１４０は、右上から左下まで（たとえば、ブロックの左上の角からブロックの右下の角まで）、４５度の角度でブロックを横断する。すなわち、図５Ｄに示される例では、第１の係数１４２はブロックの左上の角に位置するＤＣ成分であり、走査されるべき最後の係数１４４はブロックの右下の角に位置する。対角方向の走査パターン１４０における対角線の各々は、ブロックの右上の角からブロックの左下の角まで、４５度の角度でブロックを横断する。
【０１１２】
図５Ｅは、ビデオデータのブロックの変換係数を走査するための別の対角方向の走査パターン１５０を示す。一般に、対角方向の走査パターン１５０は、右上から左下まで（たとえば、ブロックの左上の角からブロックの右下の角まで）、４５度の角度でブロックを横断する。すなわち、図５Ｅに示される例では、第１の係数１５２はブロックの左上の角に位置するＤＣ成分であり、走査されるべき最後の係数１５４はブロックの右下の角に位置する。しかしながら、対角方向の走査パターン１５０は、対角方向の走査パターン１４０と反対の方向に進む。対角方向の走査パターン１５０における対角線の各々は、ブロックの左下の角からブロックの右上の角まで、４５度の角度でブロックを横断する。
【０１１３】
図５Ａ〜図５Ｅに示される走査の各々は、順方向に、すなわち、変換ブロックの左上の角にあるより低い周波数の変換係数から変換ブロックの右下の角にあるより高い周波数の変換係数に進む。代替的に、走査の各々は、反対方向または逆方向（すなわち、ブロックの右下の角から左上の角）に進んでよい。そのような例では、上で述べられたように、値が０の変換係数は、直列化されたアレイの始端に位置し得る。
【０１１４】
たとえば、図５Ｆは、図５Ｅに示されるものとは反対の対角方向の走査パターンを示す。すなわち、図５Ｆは、ビデオデータのブロックの変換係数（たとえば、ＴＵに関連する変換係数）を走査するための、反対の対角方向の走査パターン１６０を示す。一般に、反対の対角方向の走査パターン１６０は、右から左に、かつ下から上に、４５度の角度でブロックを横断する。すなわち、図５Ｆに示される例では、第１の係数１６２はブロックの右下の角に位置し、走査されるべき最後の係数１６４はブロックの左上の角に位置する。言い換えると、対角方向の走査パターン１６０における対角線の各々は、ブロックの右上の角からブロックの左下の角まで、４５度の角度でブロックを横断する。ＤＣ係数は、ブロックの左上の角に残ってよく、高い周波数の係数がブロックの右下の角にある。
【０１１５】
[0140]  図５Ａ〜図５Ｆに示される走査パターンは説明のために与えられたものにすぎないことを理解されたい。加えて、異なる方向の走査を使用して、変換係数に関連する異なる成分（たとえば、有意性、符号、レベルなど）が走査され得る。係数のレベルは、係数が１よりも大きなレベルを有するか、２よりも大きなレベルを有するか、さらには、たとえば２よりも大きな残りのレベルを有するかどうかを示すシンタックス要素によって、走査されコード化され得る。いくつかの例では、有意性情報（たとえば、有意性フラグ）は、変換係数レベル（たとえば、係数のレベルと関連付けられる１つまたは複数のシンタックス要素）の反対方向に走査され得る。他の例では、有意性情報および変換係数レベルが同じ方向に走査されコード化されるような、統一された走査パターンが実装され得る。
【０１１６】
図５Ａ〜図５Ｆに示される走査は全般に、ブロック全体に対して実行されるものとして示されるが、本開示の態様によれば、および以下でより詳しく説明されるように、そのような走査は、変換係数のサブブロック内で、およびサブブロックにわたって使用され得る。すなわち、ある例として、図５Ｆに示される反対の対角方向の走査パターン１６０は、サブブロック内で変換係数を走査するための係数の走査順序、さらには、サブブロック自体を走査するためのサブブロックの走査順序として、使用され得る。
【０１１７】
図６は、対角方向の走査経路についての、コンテキストサポート近傍のある例を示す概念図である。たとえば、図６は、変換係数１７０のブロックと、現在コード化されている変換係数の位置１７２を通過する対角方向の走査線１７１とを示す。加えて、図６の例は、５つの要素を有するコンテキストサポート近傍１７４Ａ〜１７４Ｅ（まとめて、コンテキストサポート近傍１７４）を示す。
【０１１８】
たとえば、上で述べられたように、ビデオデータのブロックについての各ビンは、そのブロックについての残差変換係数レベル情報に対応するにせよ、そのブロックについての有意性マップ情報に対応するにせよ、ビンが所与の値（たとえば、「０」または「１」）を有する可能性を示す、ビンについての確率推定値を使用してコード化され得る。確率推定値は、「コンテキストモデル」とも呼ばれる確率モデル内に含まれる。確率モデルは、ビンのコンテキストを判定することによって選択され、これはコンテキストサポート近傍によって識別され得る。すなわち、コンテキストサポート近傍は、変換係数に関連する特定のシンボルまたはフラグをエントロピーコード化するために使用され得る、シンタックス要素の相対的な位置を識別し得る。コンテキスト、たとえば、コンテキスト近傍の位置にある実際の値は、確率モデルを決定する。
【０１１９】
図６に示される例では、走査パターン線１７１に沿った変換係数のいずれも、並列にコード化され得る。そのような走査パターンは、「並列フレンドリー」と呼ばれ得る。すなわち、走査線１７１におけるどの位置も、走査線１７１における別の位置に依存するコンテキストサポート近傍を含まないので、走査線１７１に沿った位置は、並列にコード化され得る。したがって、走査線１７１は、複数の有意性フラグのコンテキストが並列に計算されることを可能にし、それにより有意性フラグコード化のためのコンテキストプリフェッチングを可能にする。そのような走査線はまた、推測の計算を使用して、複数の有意性フラグのコード化を支援し得る。
【０１２０】
しかしながら、図１１および図１２に関して以下でより詳しく説明されるように、いくつかの例では、変換係数のブロックをサブブロックへと分割することで、（たとえば、コンテキストを使用するエントロピーコード化の場合）サブブロック内でコンテキスト依存性が生じ得る。すなわち、サブブロック中のいくつかの場所に対するコンテキストサポート近傍は、サブブロックからの走査順序における以前の係数に依存し得る。したがって、本開示の態様は、２つ以上の有意性フラグを並列にコード化することを可能にする、サブブロックの走査のためのコンテキストサポート近傍を決定することに関する（たとえば、コンテキストは、サブブロック中の２つ以上の位置に対してプリフェッチされ得る）。
【０１２１】
図７は全般に、変換係数１８０のブロックを、サブブロック１８４Ａ〜１８４Ｐ（まとめてサブブロック１８４）の形態のサブセットへと分割することを示す。たとえば、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０）は、ブロック１８０を走査してエントロピーコード化するとき、ブロック１８０をサブブロック１８４へと分割することができる。
【０１２２】
本開示の態様によれば、以下でより詳しく説明されるように、サブブロック１８４内の変換係数は、係数の走査順序で走査され得る。加えて、サブブロック１８４の各々は、サブブロックの走査順序で走査され得る。いくつかの例では、本開示の態様によれば、係数の走査順序は、サブブロックの走査順序と一致し得る。
【０１２３】
いくつかの例では、ビデオコーダは、２つ以上の経路で、サブブロック１８４の有意性情報と係数レベルとをコード化することができる。たとえば、ビデオコーダは、第１の経路を実行して有意性情報をコード化することができる。ビデオコーダは次いで、別の経路を実行してその変換係数レベルのビン１（たとえば、１よりも大きい）をコード化し、別の経路を実行してその変換係数レベルのビン２（たとえば、２よりも大きい）をコード化し、別の経路を実行してその変換係数レベルの残りのビン（たとえば、残りのレベル）をコード化し、別の経路を実行してその変換係数レベルの符号をコード化することができる。しかしながら、上で説明された５つの経路は例示するためのものにすぎず、異なるコード化システムが使用され得る。
【０１２４】
本開示のいくつかの態様によれば、ビデオコーダは、サブブロック１８４の各々を順番にコード化することができる。すなわち、ビデオコーダは、変換係数の走査順序で、サブブロック１８４Ａに対して上で説明された５つのコード化経路を実行することができる。ビデオコーダは次いで、サブブロックの走査順序で次のサブブロックに移り、変換係数の走査順序で同じ５つのコード化経路を実行することができる。他の例では、コード化経路は、次のコード化経路に移る前に、ブロック１８０全体に対して実行され得る。すなわち、ビデオコーダは、変化係数の走査順序でサブブロック１８４のすべての変換係数に対して、およびサブブロックの走査順序でサブブロック１８４のすべてに対して、ブロック１８０のための第１のコード化経路を実行することができる。ビデオコーダは次いで、すべてのコード化経路が完了するまで、同じ方法でブロック１８０のための次のコード化経路を実行することができる。
【０１２５】
[0150]  いくつかの例では、ビデオコーダは、サブブロック１８４の変換係数を走査するために統一された走査を使用することができる。たとえば、ビデオコーダは、同じ方向を有する走査（たとえば、対角方向の走査）を使用して、有意性情報と係数レベルとを走査することができる。他の例では、ビデオコーダは、反対方向の走査または他の方向を有する走査を使用して、変換係数の成分（たとえば、有意性、符号、レベルなど）を走査し得る。たとえば、ビデオコーダは最初、順方向走査で有意性マップ情報を走査することができる。ビデオコーダは次いで、反対方向の走査で、１つまたは複数の係数レベルのビンを走査することができる。
【０１２６】
図７に示される例では、ブロック１８０はサイズが１６×１６の変換係数であるが、より大きなまたはより小さなブロックが同様に分割され得ることを理解されたい。その上、サイズが４×４のサブブロック１８４であるが、より大きなサブブロックまたはより小さなサブブロックが使用され得ることを理解されたい。すなわち、他の例では、サブブロックのサイズが元のブロックサイズ以下である限り、サブブロックのサイズは、２×２、８×８、１６×１６、またはｎ×ｎであってよい。変換係数の特定のブロックがどのように副分割されるかは、ブロックのサイズに基づいて事前に決められていてよい。したがって、ビデオデコーダは、ブロックのサイズに基づいて、ブロックをどのように副分割すべきかを推測することができる。他の例では、サブブロックの数および／またはサイズは、エンコーダによって、符号化されたビデオビットストリームにおいて示され得る。
【０１２７】
図８Ａ〜図８Ｅは全般に、変換係数のサブブロックをコード化するための走査パターンと走査方向とを示す。たとえば、図８Ａ〜図８Ｅに示される走査パターンは、変換係数（たとえば、有意性、レベル、符号など）の２Ｄアレイを直列化するとき、サブブロックの走査順序として、ビデオエンコーダ（ビデオエンコーダ２０など）によって使用され得る。別の例では、走査パターンは、コード化された変換係数の受信された直列化されたアレイから変換係数のブロックを復元するとき、サブブロックの走査順序として、ビデオデコーダ（ビデオデコーダ３０など）によって使用され得る。
【０１２８】
たとえば、図８Ａは全般に、変換係数のブロックのサブブロック（より太い境界線によって示される４×４のサブブロック）にわたる走査のための、順方向のジグザグのサブブロックの走査順序１９０を示す。一般に、順方向のジグザグのサブブロックの走査順序１９０は、ブロックの左上の角にある相対的に最初のサブブロック１９２からブロックの右下の角にある最後のサブブロック１９４まで、ブロックの相対的な上部からブロックの相対的な下部へ、交互に４５度の角度で、サブブロックの各々を横断する。
【０１２９】
図８Ｂは全般に、変換係数のブロックのサブブロック（より太い境界線によって示される４×４のサブブロック）にわたる走査のための、順方向の水平のサブブロックの走査順序１９６を示す。一般に、順方向の水平のサブブロックの走査順序１９６は、ブロックの左上の角にある相対的に最初のサブブロック１９８から右下の角にある最後のサブブロック２００まで、一連の水平方向の線において、左から右かつ上から下に、サブブロックの各々を横断する。すなわち、図８Ｂに示される例では、順方向の水平のサブブロックの走査順序は、ブロックの上部にわたって、左から右に、第１のサブブロック１９８から進む。次いで、各々の後続の行が、最後のサブブロック２００に達するまで、左から右に走査される。
【０１３０】
図８Ｃは、変換係数のブロックのサブブロック（より太い境界線によって示される４×４のサブブロック）にわたる走査のための、順方向の垂直のサブブロックの走査順序２０４を示す。一般に、順方向の垂直のサブブロックの走査順序２０４は、ブロックの左上の角にある相対的に最初のサブブロック２０６から右下の角にある最後のサブブロック２０８まで、一連の垂直方向の線において、上から下かつ左から右に、サブブロックの各々を横断する。すなわち、図８Ｃに示される例では、順方向の垂直のサブブロックの走査順序は、ブロックの相対的な下部に向かって、第１のサブブロック２０６から下方向に進む。各々の後続の列が、最後のサブブロック２０８に達するまで、上から下に走査される。
【０１３１】
図８Ｄは全般に、変換係数のブロックのサブブロック（より太い境界線によって示される４×４のサブブロック）にわたる走査のための、対角方向のサブブロックの走査順序２１０を示す。一般に、対角方向のサブブロックの走査順序２１０は、ブロックの左上の角にある相対的に最初のサブブロック２１２からブロックの右下の角にある最後のサブブロック２１４まで、左から右かつ下から上に、４５度の角度で、サブブロックの各々を横断する。すなわち、図８Ｄに示される例では、対角方向のサブブロックの走査順序２１０は、ブロックの左下の角からブロックの右上の角へ、連続的な対角線において、第１のサブブロック２１２から最後のサブブロック２１４まで、４５度の角度でブロックを横断する。
【０１３２】
図８Ａ〜図８Ｄに示されるサブブロックの走査の各々は、順方向に、すなわち、変換ブロックの左上の角にあるより低い周波数の変換係数から変換ブロックの右下の角にあるより高い周波数の変換係数に進む。代替的に、走査の各々は、反対方向または逆方向（すなわち、ブロックの右下の角から左上の角）に進んでよい。そのような例では、上で述べられたように、値が０の変換係数は、直列化されたアレイの始端に位置し得る。最後の係数の位置がビットストリーム中で明示的にコード化される場合、反対方向のサブブロックの走査は、順方向の走査に関しては、最後の有意な係数を含むサブブロックから開始し得る。また、このサブブロック内で、走査は、（レベルコード化のために）最後の有意な係数から開始してよく、または、逆方向の走査順序で最後の有意な係数に続く係数から開始してよい。あるいは、サブブロックのすべておよび係数のすべてが常に走査されてよいが、順方向の走査に関する最後の有意な係数の後にある係数は、０であると推測され得る。
【０１３３】
たとえば、図８Ｅは全般に、図８Ｄに示されるサブブロックの走査順序と反対の、変換係数のブロックのサブブロック（より太い境界線によって示される４×４のサブブロック）にわたる走査のための、反対の対角方向のサブブロックの走査順序２１６を示す。一般に、反対の対角方向のサブブロックの走査順序２１６は、ブロックの右下の角にある相対的に最初のサブブロック２１７からブロックの左
上の角にある最後のサブブロック２１８まで、右から左かつ上から下に、４５度の角度で、サブブロックの各々を横断する。すなわち、図８Ｅに示される例では、反対の対角方向のサブブロックの走査順序２１６は、ブロックの右上の角からブロックの左下の角へ、連続的な対角線において、第１のサブブロック２１７から最後のサブブロック２１８まで、４５度の角度でブロックを横断する。
【０１３４】
図８Ａ〜図８Ｅに示されるサブブロックの走査順序は説明のために与えられたものにすぎないことを理解されたい。加えて、異なる方向の走査を使用して、変換係数に関連する異なる成分（たとえば、有意性、符号、レベルなど）が走査され得る。たとえば、いくつかの例では、有意性情報（たとえば、有意性マップ）が、変換係数レベルの反対方向に走査され得る。他の例では、有効性情報および変換係数レベルが同じ方向に走査されるような、統一された走査パターンが実装され得る。
【０１３５】
[0160]  本開示の態様によれば、図８Ａ〜図８Ｅに示されるサブブロックの走査順序は、サブブロックの各々の中の変換係数を走査するために使用されるそれぞれの係数の走査順序と一致し得る。すなわち、サブブロックの各々の中の係数を走査するための係数の走査順序は、サブブロック自体を走査するためのサブブロックの走査順序と同じであり得る。
【０１３６】
本開示の他の態様によれば、係数の走査順序および／またはサブブロックの走査順序は適応的であり得る。すなわち、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、ブロックサイズ、イントラ／インター予測モード、近傍のブロックの情報（予測モード、動き情報、走査インデックス）、または他のビデオコード化特性に基づいて、ブロックに対するサブブロックの走査順序および／または係数の走査順序を選択することができる。別の例では、サブブロックの走査順序および係数の走査順序は、ビデオエンコーダ２０におけるレート−歪み分析から決定され得る。この場合、サブブロックの走査順序と係数の走査順序とを示すシンタックス（たとえば、以下に示される表１からのブロック走査インデックス）は、デコーダにおいて使用するための、符号化されたビデオビットストリームで信号伝達され得る。
【０１３７】
したがって、図８Ａ〜図８Ｅに示される各サブブロック内の変換係数は、同じまたは異なる走査順序に従って走査され得る。すなわち、ジグザグの、水平方向の、対角方向の、または垂直方向の走査順序が、各サブブロック内の変換係数を走査するために使用され得る。やはり、これらの走査順序の各々は順方向または逆方向であってよい。係数の走査順序は、サブブロックの走査順序と異なっていてよく、または同じであってよい。加えて、係数の走査順序は、変換係数のブロック中のすべてのサブブロックに対して同じであってよく、または、各サブブロックに対する係数の走査順序は別々に選ばれてよい。たとえば、サブブロックの走査順序と係数の走査順序の両方が、以下の表１に示されるように、３つの走査（すなわち、対角方向、水平方向、および垂直方向）を使用する場合、ブロックに対する可能性のある走査の総数は３×３＝９である。
【０１３８】
【表１】
2016189598.tif 000003
【０１３９】
表１は例示を目的に与えられたものにすぎず、適応的な走査の決定において、他の走査が選択可能であり得ることを理解されたい。たとえば、ジグザグの走査、上記の走査のいずれかまたはすべての反対方向の走査、または、他の方向の走査も、選択可能であり得る。別の箇所で言及されたように、本開示の走査技法は、ＣＡＶＬＣ、ＣＡＢＡＣ、または他のエントロピーコード化技法のために使用される走査処理に対して適用可能であり得る。たとえば、前述の走査技法は、ＣＡＢＡＣのための係数レベル走査および有意性マップに使用するために適用し得る。
【０１４０】
図９Ａおよび図９Ｂは全般に、係数の走査順序で複数のサブブロックの変換係数を走査することと、さらに、サブブロックの走査順序で複数のサブブロックを走査することとを、より詳しく示す。たとえば、図９Ａに関して、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、ブロック２２０をコード化するとき、ブロック２２０を、サブブロック２２２Ａ、２２２Ｂ、２２２Ｃ、および２２２Ｄ（まとめてサブブロック２２２）へと分割することができる。すなわち、ビデオエンコーダ２０は、ブロック２２０の変換係数を直列化するとき、ブロック２２０をサブブロック２２２へと分割することができる。あるいは、ビデオデコーダ３０は、サブブロック２２２を使用して、ブロック２２０の変換係数を復元することができる。
【０１４１】
いずれの場合でも、図９Ａに示される例は全般に、ブロック２２０の変換係数を走査するための、対角方向の係数の走査順序を示し、図９Ｂは全般に、サブブロック２２２を走査するための、同様の方向である対角方向のサブブロックの走査順序を示す。したがって、図９Ａおよび図９Ｂに示されるように、ビデオコーダは、ブロック２２０の左上の角に位置する第１のサブブロック２２２Ａと関連付けられる変換係数を走査することができる。ビデオコーダは次いで、ブロック２２０の左下の角に位置する第２のサブブロック２２２Ｂと関連付けられる変換係数、続いて、ブロック２２０の右上の角に位置する第３のサブブロック２２２Ｃと関連付けられる変換係数、ブロック２２０の右下の角に位置する第４のサブブロック２２２Ｄと関連付けられる変換係数を走査することができる。
【０１４２】
上で述べられたように、いくつかの例では、ビデオコーダは、２つ以上の経路で、サブブロック２２２の有意性情報と係数レベルとをコード化することができる。本開示のいくつかの態様によれば、ビデオコーダは、サブブロック２２２の各々を順番にコード化することができる。すなわち、ビデオコーダは、変換係数の走査順序で、サブブロック２２２Ａに対してすべてのコード化経路を実行することができる。ビデオコーダは次いで、サブブロック２２２Ｂに移り、続いてサブブロック２２２Ｃとサブブロック２２２Ｄに移ることができ、次のサブブロックに移る前に１つのサブブロックにおいて係数のコード化を終える。
【０１４３】
他の例では、複数のコード化経路のうちの１つのコード化経路は、次のコード化経路に移る前に、ブロック２２０全体に対して実行され得る。すなわち、ビデオコーダは、変換係数の走査順序でサブブロック２２２のすべての変換係数に対して、およびサブブロックの走査順序でサブブロック２２２のすべてに対して、ブロック２２０のための第１のコード化経路を実行することができる。ビデオコーダは次いで、すべてのコード化経路が完了するまで、同じ方法でブロック２２２のための次のコード化経路を実行することができる。
【０１４４】
いくつかの例では、ビデオコーダは、サブブロック２２２の変換係数を走査するために統一された走査を使用することができる。たとえば、ビデオコーダは、図９Ａおよび図９Ｂに示される対角方向を有する走査を使用して、有意性情報（たとえば、有意性フラグ）と係数レベルとを走査することができる。他の例では、ビデオコーダは、反対方向の走査または他の方向を有する走査を使用して、ブロック２２２の変換係数の成分（たとえば、有意性、符号、レベルなど）を走査することができる。たとえば、ビデオコーダは最初、順方向の走査で有意性マップ情報を走査することができる。ビデオコーダは次いで、反対方向の走査で、１つまたは複数の係数レベルのビンを走査することができる。
【０１４５】
図９Ａおよび図９Ｂに示される例は全般に対角方向の走査パターンを示すが、図５Ａおよび図５Ｂに関して上で述べられたように、ジグザグのパターン、適応的な走査順序、水平方向のパターン、垂直方向のパターンなど、種々の他の走査パターンが使用され得る。加えて、図９Ａおよび図９Ｂに示される例は、４×４のサブブロックをもつ８×８のブロックの変換係数を示すが、本開示の技法は、他のサイズのブロック、ならびに他のサイズのサブブロックに適用され得ることを理解されたい。たとえば、サブブロックは、任意のｎ×ｎのブロック（または、サブブロックが正方形ではない例ではｎ×ｍのブロック）の、変換単位（ＴＵ）の変換係数を含んでよく、ｎ×ｎはＴＵのサイズ以下である。加えて、図９Ａおよび図９Ｂに示される、等しいサイズのサブブロックは、ハードウェアの効率性を達成することの助けになり得る（たとえば、ハードウェアが、静的なサブブロックサイズで動作するように最適化され得る）。しかしながら、他の例では、本開示の技法は、サイズが異なるサブブロックに適用され得る。
【０１４６】
図１０Ａおよび図１０Ｂもまた全般に、係数の走査順序で複数のサブブロックの変換係数を走査することと、さらに、サブブロックの走査順序で複数のサブブロックを走査することとを、より詳しく示す。たとえば、図１０Ａに関して、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、ブロック２２４をコード化するとき、ブロック２２４を、サブブロック２２６Ａ、２２６Ｂ、２２６Ｃ、および２２６Ｄ（まとめてサブブロック２２６）へと分割することができる。すなわち、ビデオエンコーダ２０は、ブロック２２４の変換係数を直列化するとき、ブロック２２４をサブブロック２２６へと分割することができる。あるいは、ビデオデコーダ３０は、サブブロック２２６を使用して、ブロック２２４の変換係数を復元することができる。
【０１４７】
図１０Ａに示される例は全般に、ブロック２２４の変換係数を走査するための、（図９Ａに示される対角方向の走査順序に対して）反対の対角方向の係数の走査順序を示すが、図１０Ｂは全般に、サブブロック２２２を走査するための、（図９Ｂに示される対角方向の走査順序に対して）同様の方向である反対の対角方向のサブブロックの走査順序を示す。したがって、図１０Ａおよび図１０Ｂに示されるように、ビデオコーダは最初に、ブロック２２４の右下の角に位置する第１のサブブロック２２６Ａと関連付けられる変換係数を走査することができる。ビデオコーダは次いで、ブロック２２４の右上の角に位置する第２のサブブロック２２６Ｂと関連付けられる変換係数、続いて、ブロック２２４の左下の角に位置する第３のサブブロック２２６Ｃと関連付けられる変換係数、ブロック２２４の左上の角に位置する第４のサブブロック２２６Ｄと関連付けられる変換係数を走査することができる。
【０１４８】
図１１Ａおよび図１１Ｂもまた全般に、係数の走査順序で複数のサブブロックの変換係数を走査することと、さらに、サブブロックの走査順序で複数のサブブロックを走査することとを、より詳しく示す。たとえば、図１１Ａに関して、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、ブロック２２８をコード化するとき、ブロック２２８を、サブブロック２３０Ａ、２３０Ｂ、２３０Ｃ、および２３０Ｄ（まとめてサブブロック２３０）へと分割することができる。すなわち、ビデオエンコーダ２０は、ブロック２２８の変換係数を直列化するとき、ブロック２２８をサブブロック２３０へと分割することができる。あるいは、ビデオデコーダ３０は、サブブロック２３０を使用して、ブロック２２８の変換係数を復元することができる。
【０１４９】
図１１Ａに示される例は全般に、ブロック２２８の変換係数を走査するための、反対の垂直方向の係数の走査順序を示すが、図１１Ｂは全般に、サブブロック２３０を走査するための、同様の方向である反対の垂直方向のサブブロックの走査順序を示す。したがって、図１１Ａおよび図１１Ｂに示されるように、ビデオコーダは最初に、ブロック２２８の右下の角に位置する第１のサブブロック２３０Ａと関連付けられる変換係数を走査することができる。ビデオコーダは次いで、ブロック２２８の右上の角に位置する第２のサブブロック２３０Ｂと関連付けられる変換係数、続いて、ブロック２２８の左下の角に位置する第３のサブブロック２３０Ｃと関連付けられる変換係数、ブロック２２８の左上の角に位置する第４のサブブロック２３０Ｄと関連付けられる変換係数を走査することができる。
【０１５０】
したがって、図１１Ａおよび図１１Ｂに示される例は、ブロック２２８に対して走査を実行することが、複数のサブブロックの各々の中で、下から上かつ右から左に係数の走査順序で複数のサブブロック２３０の各々の変換係数を垂直方向に走査することと、ブロック２２８の下から上かつ右から左にサブブロックの走査順序で複数のサブブロックの各々にわたって垂直方向に走査することとを含むような、反対の垂直方向を有する走査方向を含む。
【０１５１】
図１２Ａおよび図１２Ｂもまた全般に、係数の走査順序で複数のサブブロックの変換係数を走査することと、さらに、サブブロックの走査順序で複数のサブブロックを走査することとを、より詳しく示す。たとえば、図１２Ａに関して、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、ブロック２３４をコード化するとき、ブロック２３４を、サブブロック２３６Ａ、２３６Ｂ、２３６Ｃ、および２３６Ｄ（まとめてサブブロック２３６）へと分割することができる。すなわち、ビデオエンコーダ２０は、ブロック２３４の変換係数を直列化するとき、ブロック２３４をサブブロック２３６へと分割することができる。あるいは、ビデオデコーダ３０は、サブブロック２３６を使用して、ブロック２３４の変換係数を復元することができる。
【０１５２】
図１２Ａに示される例は全般に、ブロック２３４の変換係数を走査するための、反対の水平方向の係数の走査順序を示すが、図１２Ｂは全般に、サブブロック２３６を走査するための、同様の方向である反対の垂直方向のサブブロックの走査順序を示す。したがって、図１２Ａおよび図１２Ｂに示されるように、ビデオコーダは最初に、ブロック２３４の右下の角に位置する第１のサブブロック２３６Ａと関連付けられる変換係数を走査することができる。ビデオコーダは次いで、ブロック２３４の右上の角に位置する第２のサブブロック２３６Ｂと関連付けられる変換係数、続いて、ブロック２３４の左下の角に位置する第３のサブブロック２３６Ｃと関連付けられる変換係数、ブロック２３４の左上の角に位置する第４のサブブロック２３６Ｄと関連付けられる変換係数を走査することができる。
【０１５３】
したがって、図１２Ａおよび図１２Ｂに示される例は、ブロック２３４に対して走査を実行することが、複数のサブブロック２３６の各々の中で、右から左かつ下から上に係数の走査順序で複数のサブブロック２３６の各々の変換係数を水平方向に走査することと、ブロック２３４の右から左かつ下から上にサブブロックの走査順序で複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を有する走査方向を含む。
【０１５４】
図１０Ａ〜図１２Ｂに示される逆方向の走査を支援するために、いくつかの例では、ビデオコーダは最初に、それぞれのブロックの最後の有意な係数、さらに、各々のそれぞれのサブブロックの最後の有意な係数を識別することができる。すなわち、図１０Ａ〜図１２Ｂに示される例は全般に、走査されているすべての変換係数の位置を示すが、上で説明されたように、ビデオコーダは、有意な係数のみを走査することができる。したがって、ビデオコーダは、サブブロックの各々において最後の有意な係数を決定し、各サブブロックの最後の有意な係数から各サブブロックの相対的に最初の有意な係数（たとえば、ＤＣ係数）まで、係数の走査順序でサブブロックの各々を走査することができる。加えて、ビデオコーダは、ブロックの最後の有意な係数を決定し、ブロックの最後の有意な係数からブロックの相対的に最初の有意な係数（たとえば、ＤＣ係数）まで、サブブロックの走査順序でサブブロックを走査することができる。したがって、サブブロックの１つまたは複数が有意な係数を含まない場合、そのような変換係数および／またはサブブロックは走査されなくてよい。
【０１５５】
図１３は、ビデオデータのサブブロックの変換係数をコンテキスト適応コード化する例を示す概念図である。たとえば、図１３は、複数のサブブロック（より太い境界線で示される４×４のサブブロック）へと分割されている変換係数のブロック２４０と、現在コード化されている変換係数の位置２４４（ベタのブロック）を通過する、サブブロック内の対角方向の係数の走査順序とを示す。図１３に示される例は、４つのコンテキストサポート要素（影付きのブロック）を有するコンテキストサポート近傍２４６を含む。図６に示されるコンテキストサポート近傍に対して、コンテキストサポート近傍２４６は、除去された位置２４８を有する。すなわち、たとえば、現在コード化されている変換係数２４４の有意性フラグをコード化するためのコンテキストは、除去された位置２４８からのデータを含まない。
【０１５６】
[0180]  上で述べられたように、ビデオデータのブロックについての各ビンは、そのブロックについての残差変換係数レベル情報に対応するにせよ、そのブロックについての有意性情報に対応するにせよ、ビンが所与の値（たとえば、「０」または「１」）を有する可能性を示す、ビンについての確率推定値を使用してコード化され得る。確率モデルは、ビンのコンテキストを判定することによって選択され、これはコンテキストサポート近傍によって識別され得る。すなわち、コンテキストサポート近傍は、変換係数に関連する特定のシンボルまたはフラグをエントロピーコード化するためのコンテキストを導出するのに使用される、以前コード化されたシンタックス要素の相対的な位置を識別し得る。コンテキスト、たとえば、コンテキスト近傍の位置にあるシンタックス要素の実際の値は、確率モデルを決定する。
【０１５７】
図６に示される例では、走査パターン線１７１に沿った変換係数のいずれをも並列にコード化することができ、それは、走査線１７１中のいずれの位置も、走査線１７１中の別の位置に依存するコンテキストサポート近傍を含まないからである（同じコンテキストサポート近傍がすべての位置に対して使用されると仮定する）。したがって、走査線１７１は、複数の有意性フラグのコンテキストが並列に計算されることを可能にし、それにより有意性フラグのコード化のためのコンテキストプリフェッチングを可能にする。
【０１５８】
しかしながら、ジグザグなまたは対角方向の走査が（図６に示されるもののように）比較的大きなブロックに適用される場合、いくつかの係数を同時にフェッチすることができ、これによって、ハードウェア実装形態における負荷が増す。すなわち、走査線１７１に沿って現在コード化されている変換係数の前または後に処理される変換係数は、現在コード化されている変換係数と同じ列または行に配置されない。従来、変換係数は、列および行ごとに並べられ記憶される。したがって、連続的なデータを取り出すことを可能にするために、変換係数の２つ以上の対角線が処理される必要があり得る。いくつかの例では、ソフトウェアベースの単一命令、複数データ（ＳＩＭＤ：single instruction, multiple data）の実装形態は、これらの大きな走査を並列化するときに同様の問題に直面し得る。サブブロックに局所性をもたらすことで、この問題を軽減するのを助けることができる。すなわち、より小さなサブブロックは、データがより効率的な方法で取り出されることを可能にし得る。
【０１５９】
変換係数のブロックをサブブロックに分割することは上で説明された問題を軽減するのを助け得るが、サブブロックはまた、（たとえば、コンテキストを使用したエントロピーコード化の場合）サブブロック内でコンテキスト依存性を生じさせ得る。すなわち、サブブロック中のいくつかの場所に対するコンテキストサポート近傍は、サブブロックにおける他の場所に依存し得る。例示を目的とした例として、および図１３に示されるように、ジグザグのまたは順方向の対角の係数の走査順序を使用してサブブロック内を走査するとき、最初の変換係数の位置（すなわち、ブロックの左上の角にある現在コード化されている位置２４４）に対するコンテキストサポート近傍は、（たとえば、図６に示される５つの位置のコンテキストサポート近傍を使用して）現在コード化されている位置２４４のすぐ下の位置を通常含み得る。しかしながら、この依存性は、エントロピーコード化の場合に、望ましくない遅延をもたらし得る。すなわち、現在コード化されている位置２４４のすぐ前に位置するサブブロックの変換係数は、現在コード化されている位置のコンテキストを導出するためにコード化される必要があり得る。この依存性を回避し、そして並列化を強化するために、本開示の態様は、コンテキストがサブブロック中で導出される位置、すなわち、サブブロック内の位置に対するコンテキストサポート近傍を、修正することに関する。
【０１６０】
本開示の態様によれば、１つまたは複数の位置が、サブブロック内のいくつかの位置に対するコンテキストサポート近傍から除去され得る。すなわち、図１３に示される例では、ビデオコーダは、現在の位置２４４をコード化するとき、コンテキストサポート近傍から除去される位置２４８を除去することができ、これによってコンテキストサポート近傍を減らす。除去された位置２４８は、係数の走査順序で現在の位置２４４のすぐ前に位置する。コード化において除去された位置２４８と関連付けられるデータを取り出さないことによって、上で説明される依存性がなくなる。したがって、ビデオコーダは、現在の位置２４４と除去された位置２４８の両方を、並列にコード化することができる（たとえば、コンテキストが、サブブロック中の２つ以上の位置に対してプリフェッチされ得る）。図１３に関して示され説明されるコンテキストサポート近傍の除去技法は、並列に走査されコード化される変換係数の数に応じて、２つの位置から３つ以上の位置に拡張され得る。すなわち、たとえば、３つの変換係数が並列にコード化される場合、ビデオコーダは、除去される位置２４８、さらに、走査順序で除去される位置のすぐ前の位置（たとえば、現在の位置２４４のすぐ右の位置）を除去することができる。
【０１６１】
いくつかの例では、本開示の態様を実行するために、ビデオコーダは、係数のブロックベースの位置が与えられると、係数の走査順序で位置を導出することができる。位置を決定するために使用され得る１つの処理を、（たとえば、８×８のサブブロックおよび対角方向の走査の場合について、Ｃ言語のコードとして）以下に示す。
【０１６２】
【数１】
2016189598.tif 000004
【０１６３】
ここで、ｕｉＰｏｓＬａｓｔＸおよびｕｉＰｏｓＬａｓｔＸは、ブロック中の変換係数のＸの位置およびＹの位置に対する入力であり、ｕｉＷｉｄｔｈは、ブロックの幅および高さであり（例示のために、ブロックが正方形であると仮定して）、ｕｉＳｃａｎＰｏｓＬａｓｔは、サブブロックの走査順序で係数の位置を識別する出力である。変換係数の位置が知られた後、ビデオコーダは、何らかのコンテキスト依存性が存在するかどうかを決定することができる。そのようなコンテキスト依存性が存在する場合、ビデオコーダは、上で説明されたように、コンテキストサポート近傍から１つまたは複数の位置を除去することができる。
【０１６４】
本開示の態様によれば、いくつかのコンテキストサポート近傍の位置が除去され得ない。たとえば、（たとえば、ブロックの左上の角の）ＤＣ位置は、図１３に示される例から除去されたコンテキスト位置を依然として使用し得る。コンテキストサポート近傍から位置を除去するかどうかに関する決定は、コンテキストサポート近傍中のすべての位置を含めることによって（たとえば、現在の位置が「１」または「０」であるというより正確な推定によって）得られるコード化効率と、位置のすべてを含めることによってもたらされる遅延とのバランスに基づき得る。その上、以下で図１４に関して説明されるように、サブブロックのすべての位置が、図１３に関して説明されたものと同じ遅延の問題の影響を受けるとは限らない。
【０１６５】
図１４は、ビデオデータのサブブロックの変換係数をコンテキスト適応コード化する別の例を示す概念図である。たとえば、図１４は、複数のサブブロック（より太い境界線で示される４×４のサブブロック）へと分割されている変換係数のブロック２５０と、現在コード化されている変換係数の位置２５４（ベタの黒いブロック）を通過する、サブブロック内の対角方向の係数の走査順序とを示す。図１４に示される例は、５つのコンテキストサポート要素（影付きのブロック）を有するコンテキストサポート近傍２５６を含む。すなわち、図１４のコンテキストサポート近傍は５つすべての位置を含む。
【０１６６】
図１３に関して説明されるコンテキスト依存性の問題はもはや存在しないので、図１４に示されるコンテキストサポート近傍２５４は、５つすべてのコンテキストサポート近傍の位置を含み得る。たとえば、現在の位置２５４のすぐ前に走査されコード化される位置は、コンテキストサポート近傍２５６に含まれない。したがって、上で説明されたコンテキスト依存性の問題および関連する閉ループの遅延は存在しない。したがって、上で述べられるようないくつかの例では、ビデオコーダは、コンテキストサポート近傍から位置を除去する前に、現在コード化されている変換係数の位置を決定することができる。
【０１６７】
図１５は、変換係数を符号化するための例示的なビデオ符号化処理を示すフローチャートである。この方法は、図１および図２のビデオエンコーダ２０によって実行され得る。ビデオデコーダ２０に関して説明されているが、図１５に関して説明される技法は、種々の他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）のようなハードウェアベースのコード化ユニットなどによって実行され得ることを理解されたい。
【０１６８】
[0190]  ビデオエンコーダ２０は、変換係数のブロックを複数のサブブロックに分割することができる（２８０）。いくつかの例では、サブブロックは、サイズが４×４の変換係数であってよい。他の例では、ビデオエンコーダ２０は、より大きなまたはより小さなサブブロックを形成し得る。すなわち、他の例では、サブブロックのサイズが元のブロックサイズ以下である限り、サブブロックのサイズは、２×２、８×８、１６×１６、またはｎ×ｎであってよい。ビデオエンコーダ２０は、ブロックのサイズに基づいて、ブロックが分割される方法を決定することができる。この例では、ビデオデコーダ（ビデオデコーダ３０など）は、ブロックのサイズに基づいて、ブロックをどのように副分割すべきかを推測することができる。他の例では、ビデオエンコーダ２０は、符号化されたビットストリームの中で（たとえば、ヘッダ、パラメータセットなどの中で）、サブブロックの数および／またはサイズを示し得る。
【０１６９】
ビデオエンコーダ２０はまた、複数のサブブロックのための、サブブロックの走査順序と、複数のサブブロックの各々の中の変換係数のための、係数の走査順序とを決定することができる（２８２）。一般に、サブブロックの走査順序は、複数のサブブロックの各々が走査される順序であり得る。係数の走査順序は、複数のサブブロックの各々の中の変換係数が走査される順序であり得る。サブブロックの走査順序および係数の走査順序は、走査パターンと走査方向（たとえば、特定の方向を有する対角方向の走査パターン）の両方を含み得る。たとえば、サブブロックの走査順序は、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つであり得る。同様に、係数の走査順序は、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つであり得る。
【０１７０】
本開示の態様によれば、ビデオエンコーダ２０は、サブブロックの各々の中の変換係数を走査するために使用される係数の走査順序と一致する、サブブロックの走査順序を決定することができる。すなわち、ビデオエンコーダ２０は、サブブロック自体を走査するためのサブブロックの走査順序と同じである、サブブロックの各々の中の係数を走査するための係数の走査順序を使用することができる。例示を目的とする例では、図１０Ａおよび図１０Ｂに関して説明されたように、ビデオエンコーダ２０は、サブブロックの走査順序および係数の走査順序について、反対の対角方向を決定することができる。この例では、走査は、サブブロックの右下の角からサブブロックの左上の角まで、係数の走査順序でサブブロックを横断し、かつブロックの右下のサブブロックからブロックの左上のサブブロックまで、サブブロックの走査順序でサブブロックの各々にわたって対角方向に走査する。
【０１７１】
本開示の他の態様によれば、ビデオエンコーダ２０は、係数の走査順序および／またはサブブロックの走査順序を適応的に決定することができる。すなわち、ビデオエンコーダ２０は、ブロックサイズ、イントラ／インター予測モード、近傍のブロックの情報（予測モード、動き情報、走査インデックス）、または他のビデオコード化特性に基づいて、ブロックに対するサブブロックの走査順序および／または係数の走査順序を選択することができる。別の例では、ビデオエンコーダ２０は、レート−歪み分析に基づいて、サブブロックの走査順序と係数の走査順序とを決定することができる。この場合、ビデオエンコーダ２０は、デコーダにおいて使用するために、サブブロックの走査順序と係数の走査順序とを示すシンタックス（たとえば、上の表１で示されたようなブロック走査インデックス）を、符号化されたビットストリームに含め得る。
【０１７２】
ビデオエンコーダ２０はまた、サブブロックの走査順序および係数の走査順序に従って変換係数のブロックに対して走査を実行し、変換係数の１次元アレイを生成することができる（２８４）。ビデオエンコーダ２０はまた、変換係数の１次元アレイをコード化（コーディング）することができる（２８６）。いくつかの例では、変換係数の走査およびコード化は、インターリーブされ得る。すなわち、（たとえば、コード化する前にブロックのすべての変換係数を走査するのではなく）変換係数が走査されるにつれて、変換係数をコード化することができる。
【０１７３】
図１５に関して示され説明されるステップは、単に一例として与えられたものにすぎないことを理解されたい。すなわち、図１５の方法のステップは必ずしも図１５に示される順序で実行される必要はなく、より少数の、追加の、または代替のステップが実行され得る。
【０１７４】
図１６は、例示的なビデオ復号処理を示すフローチャートである。いくつかの例では、図１６の方法は、図１および図３のビデオデコーダ３０によって実行され得る。ビデオデコーダ３０に関して説明されるが、図１６に関して説明される技法は、種々の他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコード化ユニットなどによって実行され得ることを理解されたい。
【０１７５】
ビデオデコーダ３０は、変換係数の１次元アレイを受信することができる（３００）。いくつかの例によれば、変換係数のアレイは、複数のサブブロックに従ってコード化され得る。たとえば、サブブロックは、サイズが４×４の変換係数であってよい。他の例では、サブブロックのサイズが元のブロックサイズ以下である限り、サブブロックは、２×２、８×８、１６×１６、またはｎ×ｎであってよい。いくつかの例では、ビデオデコーダ３０は、受信されたブロックのサイズに基づいて（たとえば、ブロックのサイズを示す受信されたシンタックスに基づいて）、サブブロックのサイズを推測することができる。他の例では、ビデオデコーダ３０は、符号化されたビットストリームの中で（たとえば、ヘッダ、パラメータセットなどの中で）、サブブロックの数および／またはサイズに関する指示を受信し得る。
【０１７６】
いずれの場合でも、ビデオデコーダ３０は、複数のサブブロックのための、サブブロックの走査順序と、複数のサブブロックの各々の中の変換係数のための、係数の走査順序とを決定することができる（３０２）。サブブロックの走査順序および係数の走査順序は、走査パターンと走査方向（たとえば、特定の方向を有する対角方向の走査パターン）の両方を含み得る。たとえば、サブブロックの走査順序は、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つであり得る。同様に、係数の走査順序は、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つであり得る。
【０１７７】
本開示の態様によれば、ビデオデコーダ３０は、サブブロックの各々の中の変換係数を走査するために使用される係数の走査順序と一致する、サブブロックの走査順序を決定することができる。すなわち、ビデオデコーダ３０は、たとえば、パターンおよび方向に関して、サブブロック自体を走査するためのサブブロックの走査順序と同じである、サブブロックの各々の中の係数を走査するための係数の走査順序を使用することができる。例示を目的とする例では、図１０Ａおよび図１０Ｂに関して説明されたように、ビデオデコーダ３０は、サブブロックの走査順序および係数の走査順序について、反対の対角方向を決定することができる。この例では、走査は、サブブロックの右下の角からサブブロックの左上の角まで、係数の走査順序でサブブロックを横断し、ブロックの右下のサブブロックからブロックの左上のサブブロックまで、サブブロックの走査順序でサブブロックの各々にわたって対角方向に走査する。
【０１７８】
[0200]  本開示の他の態様によれば、ビデオデコーダ３０は、係数の走査順序および／またはサブブロックの走査順序を適応的に決定することができる。すなわち、ビデオデコーダ３０は、ブロックサイズ、イントラ／インター予測モード、近傍のブロックの情報（予測モード、動き情報、走査インデックス）、または他のビデオコード化特性に基づいて、ブロックに対するサブブロックの走査順序および／または係数の走査順序を選択することができる。別の例では、ビデオデコーダ３０は、サブブロックの走査順序と係数の走査順序とを示す１つまたは複数のシンタックス要素を、符号化されたビットストリームにおいて受信することができる。
【０１７９】
ビデオデコーダ３０はまた、サブブロックの走査順序および係数の走査順序に従って変換係数の１次元アレイに対して走査を実行し、変換係数のブロックを生成することができる（３０４）。すなわち、ビデオデコーダは、受信された変換係数を係数の走査順序で走査して、サブブロックを復元し、サブブロックの走査順序でサブブロック自体を走査して、ビデオエンコーダによってコード化された変換係数の２次元ブロックを復元することができる。次いで、ビデオデコーダ３０は、変換係数の２次元ブロックを逆量子化し、逆変換を適用して、残差値を生成することができる。ビデオデコーダは次いで、残差値を予測値に加算して、コード化されたブロックの画素を復元することができる。
【０１８０】
図１６に関して示され説明されるステップは、単に一例として与えられたものにすぎないことを理解されたい。すなわち、図１６の方法のステップは必ずしも図１６に示される順序で実行される必要はなく、より少数の、追加の、または代替のステップが実行され得る。
【０１８１】
図１７は、ビデオデータのサブブロックの変換係数をコンテキスト適応コード化するための例示的な方法を示す。図１７に示される例では、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０）は最初に、サブブロックの走査順序で、現在コード化されている変換係数の位置を決定することができる（３２０）。すなわち、ビデオコーダは、現在コード化されている変換係数の相対的な位置、さらに、変換係数を走査するために使用されている走査の具体的な方向を決定することができる。
【０１８２】
走査順序の位置および方向に基づいて、ビデオコーダは、何らかのコンテキスト依存性が、現在コード化されている変換係数をコンテキストコード化するためのコンテキストサポート近傍に存在するかどうかを、判定することができる（３２２）。たとえば、上の図１１および図１２に関して上で説明されたように、いくつかの例では、サブブロック中の変換係数の位置に対するコンテキストサポート近傍は、現在コード化されている変換係数のすぐ前にコード化された位置に依存し得る。
【０１８３】
本開示の態様によれば、ビデオコーダは、並列コンテキスト計算パラメータ（たとえば、並列にコード化されている変換係数の数）に基づいて、コンテキスト依存性を除去することができる（３２４）。すなわち、上の図１３の例で示されたように、ビデオコーダは、２つの変換係数が並列にコード化される例では、コンテキストサポート近傍から、現在コード化されている変換係数のすぐ前の位置を除去することができる。他の例では、３つ以上の位置が、コンテキストサポート近傍から除去され得る。ビデオコーダは次いで、（コンテキスト依存性がなくされた）決定されたコンテキストサポート近傍を使用して、現在コード化されている変換係数をエントロピーコーディング（コード化）することができる（３２６）。
【０１８４】
図１７に関して示され説明されたステップは、単に一例として与えられたものにすぎないことを理解されたい。すなわち、図１７の方法のステップは必ずしも図１７に示される順序で実行される必要はなく、より少数の、追加の、または代替のステップが実行され得る。
【０１８５】
その上、例によっては、本明細書で説明される方法のうちいずれかの、いくつかの動作またはイベントは、異なる順序で実行されてよく、追加され、統合され、または完全に除外されてよい（たとえば、すべての説明された動作またはイベントが、本方法の実施に必要であるとは限らない）ことを理解されたい。その上、いくつかの例では、動作またはイベントは、順番にではなく、同時に、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて実行され得る。加えて、本開示のいくつかの態様は、明快にするために単一のモジュールまたはユニットによって実行されるものとして説明されるが、本開示の技法は、ビデオコーダに関連するユニットまたはモジュールの組合せによって実行され得ることを理解されたい。
【０１８６】
１つまたは複数の例では、本開示において説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読命令またはコードの形態のソフトウェアを実行する１つまたは複数のプロセッサなど、ハードウェアベースの処理ユニットによって実行され得る。そのような命令またはコードは、コンピュータ可読媒体上に記憶されてよく、またはコンピュータ可読媒体を通じて送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形の非一時的媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１８７】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリ、ＣＤ−ＲＯＭ、もしくは光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイスを含む、任意の他のソリッドステート、光学または磁気データ記憶媒体、または、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、有形コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）と、レーザーディスク（登録商標）（disc）と、光ディスク（disc）と、デジタル多用途ディスク（disc）（ＤＶＤ）と、フロッピー（登録商標）ディスク（disk）と、ブルーレイディスク（disc）とを含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１８８】
[0210]  命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路などの１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明された技法の実装に適切な任意の他の構造を指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／もしくはソフトウェアモジュール内で与えられてよく、または複合コーデックに組み込まれてよい。また、本技法は、１つまたは複数の回路または論理要素中で完全に実装されてよい。
【０１８９】
本開示の技法は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスまたは装置によって実行され得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。さらに、そのような技法は、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）によって実装され得る。本開示の技法を実行するように構成されたデバイスは、上述のデバイスのいずれかを含んでよく、場合によっては、ハードウェアと、ソフトウェアと、ファームウェアとの組合せによって形成され得る、ビデオエンコーダもしくはビデオデコーダ、または複合ビデオエンコーダデコーダ、すなわち、ビデオコーデックであってよい。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されることがあるが、それらのコンポーネント、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられてよく、または相互動作可能なハードウェアユニットの集合によって与えられてよい。
【０１９０】
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
【図１】
2016189598.tif 000005
【図２】
2016189598.tif 000006
【図３】
2016189598.tif 000007
【図４】
2016189598.tif 000008
【図５Ａ】
2016189598.tif 000009
【図５Ｂ】
2016189598.tif 000010
【図５Ｃ】
2016189598.tif 000011
【図５Ｄ】
2016189598.tif 000012
【図５Ｅ】
2016189598.tif 000013
【図５Ｆ】
2016189598.tif 000014
【図６】
2016189598.tif 000015
【図７】
2016189598.tif 000016
【図８Ａ】
2016189598.tif 000017
【図８Ｂ】
2016189598.tif 000018
【図８Ｃ】
2016189598.tif 000019
【図８Ｄ】
2016189598.tif 000020
【図８Ｅ】
2016189598.tif 000021
【図９Ａ】
2016189598.tif 000022
【図９Ｂ】
2016189598.tif 000023
【図１０Ａ】
2016189598.tif 000024
【図１０Ｂ】
2016189598.tif 000025
【図１１Ａ】
2016189598.tif 000026
【図１１Ｂ】
2016189598.tif 000027
【図１２Ａ】
2016189598.tif 000028
【図１２Ｂ】
2016189598.tif 000029
【図１５】
2016189598.tif 000030
【図１６】
2016189598.tif 000031
【図１７】
2016189598.tif 000032
【図１３】
2016189598.tif 000033
【図１４】
2016189598.tif 000034
【手続補正書】
【提出日】平成28年6月30日(2016.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオ復号処理において変換係数を復号するための方法であって、
変換係数のブロックと関連する変換係数の一次元アレイを符号化されたビットストリームから取得することと、
変換係数の前記ブロックに対して変換係数の複数のサブブロックを決定することと、
前記複数のサブブロックの各サブブロックは等しいサイズを有し、それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定することと、
前記統一された対角方向の走査に従って変換係数の前記一次元アレイを走査することと、ここにおいて、前記走査は統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査すること及び変換係数の前記ブロックを生成するために前記統一された対角方向の走査を用いて前記複数のサブブロックを走査することとを備え、
変換係数の前記ブロックを復号することと、
を備える、方法。
【請求項２】
前記対角方向の走査は、走査することが前記複数のサブブロックの各々の右下隅から左上隅に前記複数のサブブロックの各々の変換係数を逆対角方向に走査することと、前記ブロックの右下サブブロックから前記ブロックの左上サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような逆対角方向を備える、請求項１の方法。
【請求項３】
前記対角方向の走査は、走査することが前記複数のサブブロックの各々の左上隅から右下隅に前記複数のサブブロックの各々の変換係数を前方対角方向に走査することと、前記ブロックの左上サブブロックから右下サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することとを備える、請求項１に記載の方法。
【請求項４】
走査することは変換係数の前記一次元アレイの最後の有意性係数を含む前記複数のサブブロックの１つのサブブロックにおいて前記走査を開始することを備える、請求項１に記載の方法。
【請求項５】
走査することは、係数走査順序で最後の有意性係数から前記複数のサブブロックの各々において前記走査することを開始することを備える、請求項１に記載の方法。
【請求項６】
走査することは、サブブロック走査順序で前記複数のサブブロックの次のサブブロックの変換係数と関連するビンを走査する前に前記複数のサブブロックの現在サブブロックの変換係数と関連する全てのビンを走査することを備える、請求項１の方法。
【請求項７】
走査することは、変換係数レベル情報を走査する前に前記有意性情報を走査することを備える、請求項１に記載の方法。
【請求項８】
前記統一された対角方向の走査を決定することは、レート歪みメトリック、ブロックサイズ、予測モード、及び隣接ブロックと関連する情報の１つに基づいて前記統一された対角方向の走査を選択することを備える、請求項１に記載の方法。
【請求項９】
変換係数の前記一次元アレイを復号することは、変換係数の前記一次元アレイをコンテキスト適応バイナリ算術復号する、請求項１に記載の方法。
【請求項１０】
前記変換係数と並列に関連する前記有意性情報を復号するためのコンテキストを決定することを更に含み、前記コンテキストは前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項９の方法。
【請求項１１】
ビデオ復号プロセスにおいて変換係数を復号するための装置であって、前記装置は、
変換係数の一次元アレイを記憶するように構成されるメモリーと、
符号化されたビットストリームから、変換係数の前記一次元アレイを取得することと、
変換係数のブロックに対して変換係数の複数のサブブロックを決定することと、前記複数のサブブロックの各サブブロックは同一サイズを有し、
それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定することと、
前記統一された対角方向の走査に従って変換係数の前記一次元アレイを走査することと、ここにおいて、前記走査は統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査すること及び変換係数の前記ブロックを生成するために前記統一された対角方向の走査を用いて前記複数のサブブロックを走査することとを備え、
変換係数の前記ブロックを復号することと、
を行うように構成される１つ以上のプロセッサと、
を備える、装置。
【請求項１２】
前記対角方向の走査は、走査が前記複数のサブブロックの各々の右下隅から左上隅に前記複数のサブブロックの各々の変換係数を逆対角方向に走査することと、前記ブロックの右下サブブロックから前記ブロックの左上サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することを備えるような逆対角方向を備える、請求項１１の装置。
【請求項１３】
前記対角方向の走査は、走査することが前記複数のサブブロックの各々の左上隅から右下隅に前記複数のサブブロックの各々の変換係数を前方対角方向に走査することと、前記ブロックの左上サブブロックから右下サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することとを備える、請求項１１に記載の装置。
【請求項１４】
走査するため、前記１つ以上のプロセッサは、変換係数の前記一次元アレイの最後の有意性係数を含む前記複数のサブブロックの１つのサブブロックにおいて前記走査を開始するように構成される、請求項１１に記載の装置。
【請求項１５】
走査するために、前記１つ以上のプロセッサは、係数走査順序で最後の有意性係数から前記複数のサブブロックの各々において前記走査を開始するように構成される、請求項１１に記載の装置。
【請求項１６】
走査するために、前記１つ以上のプロセッサは、サブブロック走査順序で前記複数のサブブロックの次のサブブロックの変換係数と関連するビンを走査する前に前記複数のサブブロックの現在サブブロックの変換係数と関連する全てのビンを走査するように構成される、請求項１１の装置。
【請求項１７】
走査するために、前記１つ以上のプロセッサは、前記ブロックの変換係数レベルビンを走査する前に前記ブロックの有意性ビンを走査するように構成される、請求項１１の装置。
【請求項１８】
前記統一された対角方向の走査を決定するために、前記１以上のプロセッサは、レート歪みメトリック、ブロックサイズ、予測モード及び隣接ブロックと関連する情報の１つに基づいて前記統一された対角方向の走査を選択するように構成される、請求項１１に記載の装置。
【請求項１９】
変換係数の前記一次元アレイを復号するために、前記１つ以上のプロセッサは、変換係数の前記一次元アレイをコンテキスト適応バイナリ算術復号するように構成される、請求項１１に記載の装置。
【請求項２０】
前記１以上のプロセッサは、前記変換係数と並列に関連する前記有意性情報を復号するためのコンテキストを決定するように更に構成され、前記コンテキストは前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項１９に記載の装置。
【請求項２１】
ビデオ復号処理において変換係数を復号するための装置であって、前記装置は、
変換係数のブロックと関連する変換係数の一次元アレイを、符号化ビットストリームから、取得するための手段と、
変換係数の前記ブロックに対して変換係数の複数のサブブロックを決定するための手段と、前記複数のサブブロックの各サブブロックは等しいサイズを有し、
それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定するための手段と、
前記統一された対角方向の走査に従って変換係数の前記一次元アレイを走査するための手段と、ここにおいて、前記走査するための手段は統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査するための手段及び変換係数の前記ブロックを生成するために前記統一された対角方向の走査を用いて前記複数のサブブロックを走査するための手段とを備え、
変換係数の前記ブロックを復号するための手段と、
を備える、装置。
【請求項２２】
復号するための手段は、変換係数の前記一次元アレイをコンテキスト適応バイナリ算術復号するための手段を備える、請求項２１に記載の装置。
【請求項２３】
前記変換係数と並列に関連する前記有意性情報を復号するためのコンテキストを決定するための手段を更に備え、前記コンテキストは前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項２２に記載の装置。
【請求項２４】
実行されたとき、１つ以上のプロセッサに
変換係数の一次元アレイを、符号化されたビットストリームから、取得することと、
変換係数のブロックに対して変換係数の複数のサブブロックを決定することと、前記複数のサブブロックの各サブブロックは等しいサイズを有し、
それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定することと、
前記統一された対角方向の走査に従って変換係数の前記一次元アレイを走査することと、ここにおいて、前記走査は統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査すること及び変換係数の前記ブロックを生成するために前記統一された対角方向の走査を用いて前記複数のサブブロックを走査することとを備え、
変換係数の前記ブロックを復号することと、
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項２５】
前記命令は、前記１つ以上のプロセッサに変換係数の前記一次元アレイをコンテキスト適応バイナリ算術復号させる、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記１つ以上のプロセッサに前記変換係数と並列に関連する前記有意性情報を復号するためのコンテキストを決定させる命令を更に備え、前記コンテキストは前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２７】
ビデオ符号化処理において変換係数を符号化するための方法であって、
変換係数のブロックを複数のサブブロックに分割することと、前記複数のサブブロックの各サブブロックは等しいサイズを有し、
それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定することと、
前記統一された対角方向の走査に従って変換係数の一次元アレイを走査することと、ここにおいて、前記走査することは統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査すること及び変換係数の一次元アレイを生成するために前記統一された対角方向の走査を用いて前記複数のサブブロックを走査することとを備え、
変換係数の前記一次元アレイを符号化することと、
を備える、方法。
【請求項２８】
前記対角方向の走査は、走査することが前記複数のサブブロックの各々の右下隅から左上隅に前記複数のサブブロックの各々の変換係数を逆対角方向に走査することと、前記ブロックの右下サブブロックから前記ブロックの左上サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することを備えるような逆対角方向を備える、請求項２７の方法。
【請求項２９】
前記対角方向の走査は、走査することが前記複数のサブブロックの各々の左上隅から右下隅に前記複数のサブブロックの各々の変換係数を前方対角方向に走査することと、前記ブロックの左上サブブロックから右下サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することとを備える、請求項２７に記載の方法。
【請求項３０】
走査することは、変換係数の前記一次元アレイの最後の有意性係数を含む前記複数のサブブロックの１つのサブブロックにおいて前記走査することを開始することを備える、請求項２７の方法。
【請求項３１】
走査することは、係数走査順序で最後の有意性係数から前記複数のサブブロックの各々において前記走査を開始することを備える、請求項２７に記載の方法。
【請求項３２】
走査することは、サブブロック走査順序で前記複数のサブブロックの次のサブブロックの変換係数と関連するビンを走査する前に前記複数のサブブロックの現在サブブロックの変換係数と関連する全てのビンを走査することを備える、請求項２７の方法。
【請求項３３】
走査することは、変換係数レベル情報を走査する前に前記有意性情報を走査することを備える、請求項２７に記載の方法。
【請求項３４】
前記統一された対角方向の走査を決定することは、レート歪みメトリック、ブロックサイズ、予測モード及び隣接ブロックと関連する情報のうちの1つに基づいて前記統一された対角方向の走査を選択することを備える、請求項２７に記載の方法。
【請求項３５】
符号化することはコンテキスト適応バイナリ算術符号化を更に備える、請求項２７の方法。
【請求項３６】
前記変換係数と並列に関連する前記有意性情報を符号化するためのコンテキストを決定することを更に備え、前記コンテキストは前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項３５に記載の方法。
【請求項３７】
符号化プロセスにおいて変換係数を符号化するための装置であって、前記装置は、
変換係数のブロックを記憶するように構成されるメモリと、
１つ以上のプロセッサと、を備え、前記１つ以上のプロセッサは、
変換係数の前記ブロックを複数のサブブロックに分割することと、前記複数のサブブロックの各サブブロックは等しいサイズを有し、
それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定することと、
前記統一された対角方向の走査に従って変換係数の前記ブロックを走査することと、ここにおいて、前記ブロックを走査するため、前記１つ以上のプロセッサは前記走査は統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査すること及び変換係数の一次元アレイを生成するために前記統一された対角方向の走査を用いて前記複数のサブブロックを走査するように構成され、
変換係数の前記一次元アレイを符号化することとを行うように構成される、
装置。
【請求項３８】
前記対角方向の走査は、走査が前記複数のサブブロックの各々の右下隅から左上隅に前記複数のサブブロックの各々の変換係数を逆対角方向に走査することと、前記ブロックの右下サブブロックから前記ブロックの左上サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することを備えるような逆対角方向を備える、請求項３７の装置。
【請求項３９】
前記対角方向の走査は、走査が前記複数のサブブロックの各々の左上隅から右下隅に前記複数のサブブロックの各々の変換係数を前方対角方向に走査することと、前記ブロックの左上サブブロックから右下サブブロックに前記複数のサブブロックの各々にわたって対角方向に走査することとを備える、請求項３７に記載の装置。
【請求項４０】
走査するために、前記１つ以上プロセッサは、変換係数の前記一次元アレイの最後の有意性係数を含む前記複数のサブブロックの１つのサブブロックにおいて走査を開始するように構成される、請求項３７に記載の装置。
【請求項４１】
走査するために、前記１つ以上のプロセッサは、係数走査順序で最後の有意性係数から前記複数のサブブロックの各々において前記走査を開始するように構成される、請求項３７の装置。
【請求項４２】
走査するために、前記１つ以上のプロセッサは、サブブロック走査順序で前記複数のサブブロックの次のサブブロックの変換係数と関連するビンを走査する前に前記複数のサブブロックの現在サブブロックの変換係数と関連する全てのビンを走査するように構成される、請求項３７の装置。
【請求項４３】
走査するために、前記１つ以上のプロセッサは、変換係数レベル情報を走査する前に前記有意性情報を走査するように構成される、請求項３７に記載の装置。
【請求項４４】
前記統一された対角方向の走査を決定するために、前記１つ以上のプロセッサは、レート歪みメトリック、ブロックサイズ、予測モード及び隣接ブロックと関連する情報のうちの1つに基づいて前記統一された対角方向の走査を選択するように構成される、請求項３７に記載の装置。
【請求項４５】
符号化するために、前記１つ以上のプロセッサは、変換係数の前記一次元アレイをコンテキスト適応バイナリ算術符号化するように更に構成される、請求項３７の装置。
【請求項４６】
前記１つ以上のプロセッサは、前記変換係数と並列に関連する前記有意性情報を符号化するためのコンテキストを決定するように更に構成され、前記コンテキストは前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項４５に記載の装置。
【請求項４７】
ビデオ符号化プロセスにおいて変換係数を符号化するための装置であって、
変換係数のブロックを複数のサブブロックに分割するための手段と、前記複数のサブブロックの各サブブロックは等しいサイズを有し、
それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定するための手段と、
前記統一された対角方向の走査に従って変換係数の前記ブロックを走査するための手段と、ここにおいて、前記走査するための手段は統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査するための手段及び前記統一された対角方向の走査を用いて前記複数のサブブロックを走査するための手段とを備え、
変換係数の一次元アレイを符号化するための手段と、
を備える、装置。
【請求項４８】
符号化するための手段は、変換係数の前記一次元アレイをコンテキスト適応バイナリ算術符号化するための手段を備える、請求項４７の装置。
【請求項４９】
前記変換係数と並列に関連する前記有意性情報を符号化するためのコンテキストを決定するための手段を更に備え、前記コンテキストは前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項４８に記載の装置。
【請求項５０】
実行されたとき、１つ以上のプロセッサに
変換係数のブロックを複数のサブブロックに分割することと、前記複数のサブブロックの各サブブロックは等しいサイズを有し、
それぞれのサブブロックの前記変換係数の有意性情報、それぞれのサブブロックの前記変換係数の係数レベル情報及び前記複数のサブブロックを走査するための統一された対角方向の走査を決定することと、
前記統一された対角方向の走査に従って変換係数のブロックを走査することと、ここにおいて、前記走査することは統一された対角方向の走査を用いて前記複数のサブブロックの各サブブロック毎に前記変換係数の前記有意性情報及び前記変換係数の前記係数レベル情報を走査すること及び変換係数の一次元アレイを生成するために前記統一された対角方向の走査を用いて前記複数のサブブロックを走査することとを備え、
変換係数の前記一次元アレイを符号化することと
を行なわせる命令を記憶したコンピュータ可読記憶媒体。
【請求項５１】
前記命令は、前記１つ以上のプロセッサに、更に変換係数の前記一次元アレイをコンテキスト適応バイナリ算術符号化させる、請求項５０のコンピュータ可読記憶媒体。
【請求項５２】
前記１つ以上のプロセッサに前記変換係数と並列に関連する前記有意性情報を符号化するためのコンテキストを決定させる命令を更に備え、前記コンテキストは前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、請求項５１に記載のコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１９０
【補正方法】変更
【補正の内容】
【０１９０】
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
［１］  ビデオ復号処理において変換係数を復号するための方法であって、変換係数の１次元アレイを復号することと、サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行して、変換係数のブロックを生成することとを備え、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、方法。
［２］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［１］に記載の方法。
［３］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、反対の対角方向を前記走査方向が備える、［２］に記載の方法。
［４］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、［２］に記載の方法。
［５］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、［２］に記載の方法。
［６］  前記走査を実行することが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて、前記走査を開始することを備える、［１］に記載の方法。
［７］  前記走査を実行することが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において、前記走査を開始することを備える、［１］に記載の方法。
［８］  前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、［１］に記載の方法。
［９］  前記走査を実行することが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査することを備える、［１］に記載の方法。
［１０］  前記現在のサブブロックの変換係数を走査することが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査することを備える、［９］に記載の方法。
［１１］  前記走査を実行することが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査することを備える、［１］に記載の方法。
［１２］  前記複数のサブブロックに対する、前記サブブロックの走査順序を決定することと、前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定することとをさらに備える、［１］に記載の方法。
［１３］  前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、［１］に記載の方法。
［１４］  前記走査を実行することがさらに、レート−歪み尺度、ブロックサイズ、予測モード、および近傍のブロックと関連付けられる情報のうちの１つに基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択することを備える、［１３］に記載の方法。
［１５］  符号化することが、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号する、［１］に記載の方法。
［１６］  前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定することをさらに備え、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、［１５］に記載の方法。
［１７］  ビデオ復号処理において変換係数を復号するための装置であって、変換係数の１次元アレイを復号し、サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行して、変換係数のブロックを生成するように構成される１つまたは複数のプロセッサを備え、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、装置。
［１８］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［１７］に記載の装置。
［１９］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、逆の対角方向を前記走査方向が備える、［１８］に記載の装置。
［２０］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、［１８］に記載の装置。
［２１］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、［１８］に記載の装置。
［２２］  前記走査を実行するために、前記１つまたは複数のプロセッサが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて前記走査を開始するように構成される、［１７］に記載の装置。
［２３］  前記走査を実行するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において前記走査を開始するように構成される、［１７］に記載の装置。
［２４］  前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、［１７］に記載の装置。
［２５］  前記走査を実行するために、前記１つまたは複数のプロセッサが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査するように構成される、［１７］に記載の装置。
［２６］  前記現在のサブブロックの変換係数を走査するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査するように構成される、［２５］に記載の装置。
［２７］  前記走査を実行するために、前記１つまたは複数のプロセッサが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査するように構成される、［１７］に記載の装置。
［２８］  前記１つまたは複数のプロセッサがさらに、前記複数のサブブロックに対する、前記サブブロックの走査順序を決定し、前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定するように構成される、［１７］に記載の装置。
［２９］  前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、［１７］に記載の装置。
［３０］  前記走査を実行するために、前記１つまたは複数のプロセッサが、レート−歪み尺度、ブロックサイズ、予測モード、および近傍のブロックと関連付けられる情報のうちの１つに基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択するように構成される、［２９］に記載の装置。
［３１］  変換係数の前記１次元アレイを復号するために、前記１つまたは複数のプロセッサが、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号するように構成される、［１７］に記載の装置。
［３２］  前記１つまたは複数のプロセッサがさらに、前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定するように構成され、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、［３１］に記載の装置。
［３３］  ビデオ復号処理において変換係数を復号するための装置であって、変換係数の１次元アレイを復号するための手段と、サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行して、変換係数のブロックを生成するための手段とを備え、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、装置。
［３４］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［３３］に記載の装置。
［３５］  復号するための手段が、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号するための手段を備える、［３３］に記載の装置。
［３６］  前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定するための手段をさらに備え、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、［３５］に記載の装置。
［３７］  実行されると、１つまたは複数のプロセッサに、変換係数の１次元アレイを復号させ、サブブロックの走査順序および係数の走査順序に従って変換係数の前記１次元アレイに対して走査を実行させて、変換係数のブロックを生成させる、命令を記憶したコンピュータ可読記憶媒体であって、前記サブブロックの走査順序が、前記ブロック内の複数のサブブロックの各サブブロックが走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各サブブロックに対応する前記変換係数が走査される順序を備える、コンピュータ可読記憶媒体。
［３８］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［３７］に記載のコンピュータ可読記憶媒体。
［３９］  前記命令がさらに、前記１つまたは複数のプロセッサに、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術復号させる、［３７］に記載のコンピュータ可読記憶媒体。
［４０］  前記１つまたは複数のプロセッサに、前記変換係数と関連付けられる有意性情報を並列に復号するためのコンテキストを決定させる命令をさらに備え、前記コンテキストが、前記ブロックにおいて現在復号されている変換係数の位置に基づいて変化する、［３９］に記載のコンピュータ可読記憶媒体。
［４１］  ビデオ符号化処理において変換係数を符号化するための方法であって、変換係数のブロックを複数のサブブロックに分割することと、サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成することであって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、生成することと、変換係数の前記１次元アレイを符号化することとを備える、方法。
［４２］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［４１］に記載の方法。
［４３］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、反対の対角方向を前記走査方向が備える、［４２］に記載の方法。
［４４］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、［４２］に記載の方法。
［４５］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、［４２］に記載の方法。
［４６］  前記走査を実行することが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて、前記走査を開始することを備える、［４１］に記載の方法。
［４７］  前記走査を実行することが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において、前記走査を開始することを備える、［４１］に記載の方法。
［４８］  前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、［４１］に記載の方法。
［４９］  前記走査を実行することが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査することを備える、［４１］に記載の方法。
［５０］  前記現在のサブブロックの変換係数を走査することが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査することを備える、［４９］に記載の方法。
［５１］  前記走査を実行することが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査することを備える、［４１］に記載の方法。
［５２］  前記複数のサブブロックに対する、前記サブブロックの走査順序を決定することと、前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定することとをさらに備える、［４１］に記載の方法。
［５３］  前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、［４１］に記載の方法。
［５４］  前記走査を実行することがさらに、レート−歪み尺度、ブロックサイズ、予測モード、および近傍のブロックと関連付けられる情報のうちの１つに基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択することを備える、［５３］に記載の方法。
［５５］  符号化することが、コンテキスト適応バイナリ算術符号化することを備える、［４１］に記載の方法。
［５６］  前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定することをさらに備え、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、［５５］に記載の方法。
［５７］  符号化処理において変換係数を符号化するための装置であって、変換係数のブロックを複数のサブブロックに分割することと、サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成することであって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、生成することと、変換係数の前記１次元アレイを符号化することとを行うように構成される、１つまたは複数のプロセッサを備える、装置。
［５８］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［５７］に記載の装置。
［５９］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の右下の角から左上の角まで前記係数の走査順序で前記複数のサブブロックの各々の変換係数を反対の対角方向に走査することと、前記ブロックの右下のサブブロックから前記ブロックの左上のサブブロックまで前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって対角方向に走査することとを備えるような、反対の対角方向を前記走査方向が備える、［５８］に記載の装置。
［６０］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、右から左かつ下から上に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を水平方向に走査することと、前記ブロックの右から左かつ下から上に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって水平方向に走査することとを備えるような、反対の水平方向を前記走査方向が備える、［５８］に記載の装置。
［６１］  前記ブロックに対して前記走査を実行することが、前記複数のサブブロックの各々の中で、下から上かつ右から左に前記係数の走査順序で前記複数のサブブロックの各々の変換係数を垂直方向に走査することと、前記ブロックの下から上かつ右から左に前記サブブロックの走査順序で前記複数のサブブロックの各々にわたって垂直方向に走査することとを備えるような、反対の垂直方向を前記走査方向が備える、［５８］に記載の装置。
［６２］  前記走査を実行するために、前記１つまたは複数のプロセッサが、変換係数の前記アレイの最後の有意な係数を含む前記複数のサブブロックのうちの１つのサブブロックにおいて前記走査を開始するように構成される、［５７］に記載の装置。
［６３］  前記走査を実行するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、最後の有意な係数から、前記複数のサブブロックの各々において前記走査を開始するように構成される、［５７］に記載の装置。
［６４］  前記サブブロックの走査順序および前記係数の走査順序が、異なる方向を有する、［５７］に記載の装置。
［６５］  前記走査を実行するために、前記１つまたは複数のプロセッサが、前記サブブロックの走査順序で、前記複数のサブブロックの次のサブブロックの変換係数と関連付けられるビンを走査する前に、前記複数のサブブロックの現在のサブブロックの変換係数と関連付けられるすべてのビンを走査するように構成される、［５７］に記載の装置。
［６６］  前記現在のサブブロックの変換係数を走査するために、前記１つまたは複数のプロセッサが、前記係数の走査順序で、有意性ビンと変換係数レベルビンとを走査するように構成される、［６５］に記載の装置。
［６７］  前記走査を実行するために、前記１つまたは複数のプロセッサが、前記ブロックの変換係数レベルビンを走査する前に、前記ブロックの有意性ビンを走査するように構成される、［５７］に記載の装置。
［６８］  前記１つまたは複数のプロセッサがさらに、前記複数のサブブロックに対する、前記サブブロックの走査順序を決定し、前記複数のサブブロックの各々の中の変換係数に対する、前記係数の走査順序を決定するように構成される、［５７］に記載の装置。
［６９］  前記サブブロックの走査順序および前記係数の走査順序が、順方向のジグザグの走査、順方向の水平の走査、順方向の垂直の走査、順方向の対角の走査、逆方向のジグザグの走査、逆方向の水平の走査、逆方向の垂直の走査、および逆方向の対角の走査のうちの１つである、［５７］に記載の装置。
［７０］  前記走査を実行するために、前記１つまたは複数のプロセッサが、レート−歪み尺度に基づいて、前記サブブロックの走査順序と前記係数の走査順序とを適応的に選択するように構成される、［６９］に記載の装置。
［７１］  符号化するために、前記１つまたは複数のプロセッサが、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術符号化するように構成される、［５７］に記載の装置。
［７２］  前記１つまたは複数のプロセッサがさらに、前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定するように構成され、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、［７１］に記載の装置。
［７３］  ビデオ符号化処理において変換係数を符号化するための装置であって、変換係数のブロックを複数のサブブロックに分割するための手段と、サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成するための手段であって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、手段と、変換係数の前記１次元アレイを符号化するための手段とを備える、装置。
［７４］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［７３］に記載の装置。
［７５］  符号化するための手段が、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術符号化するための手段を備える、［７３］に記載の装置。
［７６］  前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定するための手段をさらに備え、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、［７５］に記載の装置。
［７７］  実行されると、１つまたは複数のプロセッサに、変換係数のブロックを複数のサブブロックへ分割することと、サブブロックの走査順序および係数の走査順序に従って変換係数の前記ブロックに対して走査を実行して、変換係数の１次元アレイを生成することであって、前記サブブロックの走査順序が、前記複数のサブブロックの各々が走査される順序を備え、前記係数の走査順序が、前記複数のサブブロックの各々の中の前記変換係数が走査される順序を備える、生成することと、変換係数の前記１次元アレイを符号化することとを行わせる命令を記憶したコンピュータ可読記憶媒体。
［７８］  前記サブブロックの走査順序および前記係数の走査順序が、同じ走査方向を有する、［７７］に記載のコンピュータ可読記憶媒体。
［７９］  前記命令がさらに、前記１つまたは複数のプロセッサに、変換係数の前記１次元アレイをコンテキスト適応バイナリ算術符号化させる、［７７］に記載のコンピュータ可読記憶媒体。
［８０］  前記１つまたは複数のプロセッサに、前記変換係数と関連付けられる有意性情報を並列に符号化するためのコンテキストを決定させる命令をさらに備え、前記コンテキストが、前記ブロックにおいて現在符号化されている変換係数の位置に基づいて変化する、［７９］に記載のコンピュータ可読記憶媒体。
【外国語明細書】
2016189598000001.pdf