(57)【要約】  ビデオコーディングメカニズムが開示される。本メカニズムは、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、画像を区分するステップを含む。本メカニズムは、コーディングツリーノードの高さが最大変換ユニット(TU)の高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップをさらに含む。本メカニズムは、決定に基づいて、コーディングツリーノードの分割モードを選択するステップをさらに含む。分割モードは、四分木分割、水平二分木分割、および分割なしから選択される。本メカニズムは、1つまたは複数のコーディングユニット(CU)を作成するために、分割モードをコーディングツリーノードに適用するステップをさらに含む。本メカニズムは、CUをビットストリームにエンコードするステップをさらに含む。本メカニズムは、ビットストリームをデコーダに向けて送信するステップをさらに含む。
2021532643.tif 000002
【特許請求の範囲】
【請求項１】
エンコーダに実装された方法であって、
前記エンコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために画像を区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大TUの高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記コーディングツリーノードの分割モードを選択するステップであって、前記分割モードが、四分木分割、水平二分木分割、および分割なしから選択される、ステップと、
前記プロセッサによって、1つまたは複数のコーディングユニット(CU)を作成するために、前記分割モードを前記コーディングツリーノードに適用するステップと、
前記プロセッサによって、前記CUをビットストリームにエンコードするステップと、
前記エンコーダの送信機によって、前記ビットストリームをデコーダに向けて送信するステップと、
を備える、方法。
【請求項２】
前記コーディングツリーノードの高さが最大TUの高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記分割モードが、垂直二分木分割、垂直三分木分割、および水平三分木分割から選択されない、請求項1に記載の方法。
【請求項３】
前記分割モードが四分木分割であるかどうかを示す第1のフラグと、前記分割モードが水平二分木分割であるか、分割なしであるかを示す第2のフラグをエンコードすることによって、前記ビットストリーム内の前記コーディングツリーノードの前記分割モードをシグナリングするステップをさらに備える、請求項1に記載の方法。
【請求項４】
前記第1のフラグがqt_split_cu_flagであり、前記第2のフラグがmtt_split_cu_flagである、請求項3に記載の方法。
【請求項５】
エンコーダに実装された方法であって、
前記エンコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために画像を区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大TUの高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記コーディングツリーノードの分割モードを選択するステップであって、前記分割モードが、垂直二分木分割と分割なしから選択される、ステップと、
前記プロセッサによって、1つまたは複数のコーディングユニット(CU)を作成するために、前記分割モードを前記コーディングツリーノードに適用するステップと、
前記プロセッサによって、前記CUをビットストリームにエンコードするステップと、
前記エンコーダの送信機によって、前記ビットストリームをデコーダに向けて送信するステップと、
を備える、方法。
【請求項６】
前記分割モードが、前記コーディングツリーノードの高さが最大TUの高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、水平二分木分割、四分木分割、垂直三分木分割、および水平三分木分割から選択されない、請求項5に記載の方法。
【請求項７】
前記分割モードが垂直二分木分割であるか分割なしであるかを示す第1のフラグをエンコードすることによって、前記ビットストリーム内の前記コーディングツリーノードの前記分割モードをシグナリングするステップをさらに備える、請求項5に記載の方法。
【請求項８】
プロセッサと、前記プロセッサに結合された送信機とを備え、前記プロセッサおよび前記送信機が、請求項1から7のいずれか一項に記載の方法を実行するように構成された、ビデオコーディングデバイス。
【請求項９】
ビデオコーディングデバイスによって使用するためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体であって、前記コンピュータプログラム製品が、プロセッサによって実行されたときに前記ビデオコーディングデバイスに請求項1から7のいずれか一項に記載の方法を実行させる、前記非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を備える、非一時的コンピュータ可読媒体。
【請求項１０】
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、画像を区分するための区分手段と、
前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段と、
前記コーディングツリーノードの高さが最大TUの高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であり、水平方向の二分木分割であり、分割なしであるという前記決定に基づいて、前記コーディングツリーノードの分割モードを選択するための分割モード選択手段と、
1つまたは複数のコーディングユニット(CU)を作成するために、前記分割モードを前記コーディングツリーノードに適用するための分割モード適用手段と、
前記CUをビットストリームにエンコードするためのエンコーディング手段と、
前記ビットストリームをデコーダに向けて送信するための送信手段と、
を備える、エンコーダ。
【請求項１１】
前記エンコーダが、請求項1から4のいずれか一項に記載の方法を実行するようにさらに構成される、請求項10に記載のエンコーダ。
【請求項１２】
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、画像を区分するための区分手段と、
前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段と、
前記コーディングツリーノードの高さが最大TUの高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記コーディングツリーノードの分割モードを選択するための分割モード選択手段であって、前記分割モードが、垂直二分木分割と分割なしから選択される、分割モード選択手段と、
1つまたは複数のコーディングユニット(CU)を作成するために、前記分割モードを前記コーディングツリーノードに適用するための分割モード適用手段と、
前記CUをビットストリームにエンコードするためのエンコーディング手段と、
前記ビットストリームをデコーダに向けて送信するための送信手段と、
を備える、エンコーダ。
【請求項１３】
前記エンコーダが、請求項5から7のいずれか一項に記載の方法を実行するようにさらに構成される、請求項12に記載のエンコーダ。
【請求項１４】
デコーダに実装される方法であって、
前記デコーダの受信機によって、画像データを含むビットストリームを受信するステップと、
前記デコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、前記画像データを区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大TUの高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記コーディングツリーノードの分割モードを決定するために前記ビットストリームを解析するステップであって、前記分割モードが、四分木分割、水平二分木分割、および分割なしから選択される、ステップと、
前記プロセッサによって、1つまたは複数のコーディングユニット(CU)を取得するために、前記分割モードを前記コーディングツリーノードに適用するステップと、
前記プロセッサによって、画像を作成するために、前記ビットストリームに基づいて前記CUをデコードするステップと、
前記プロセッサによって、前記画像をディスプレイに向けて転送するステップと、
を備える、方法。
【請求項１５】
前記コーディングツリーノードの高さが最大TUの高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記分割モードが、垂直二分木分割、垂直三分木分割、および水平三分木分割から選択されない、請求項14に記載の方法。
【請求項１６】
前記コーディングツリーノードの前記分割モードを決定するために前記ビットストリームを解析するステップが、前記分割モードが四分木分割であるかどうかを決定するために第1のフラグを解析するステップを含む、請求項14に記載の方法。
【請求項１７】
前記コーディングツリーノードの前記分割モードを決定するために前記ビットストリームを解析するステップが、前記分割モードが水平二分木分割であるか分割なしであるかを決定するために第2のフラグを解析するステップをさらに含む、請求項16に記載の方法。
【請求項１８】
前記第1のフラグがqt_split_cu_flagであり、前記第2のフラグがmtt_split_cu_flagである、請求項17に記載の方法。
【請求項１９】
デコーダに実装される方法であって、
前記デコーダの受信機によって、画像データを含むビットストリームを受信するステップと、
前記デコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、前記画像データを区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが最大TUの高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記コーディングツリーノードの分割モードを決定するために前記ビットストリームを解析するステップであって、前記分割モードが、垂直二分木分割と分割なしから選択される、ステップと、
前記プロセッサによって、1つまたは複数のコーディングユニット(CU)を取得するために、前記分割モードを前記コーディングツリーノードに適用するステップと、
前記プロセッサによって、画像を作成するために、前記ビットストリームに基づいて前記CUをデコードするステップと、
前記プロセッサによって、前記画像をディスプレイに向けて転送するステップと、
を備える、方法。
【請求項２０】
前記分割モードが、前記コーディングツリーノードの高さが最大TUの高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、水平二分木分割、四分木分割、垂直三分木分割、および水平三分木分割から選択されない、請求項19に記載の方法。
【請求項２１】
前記コーディングツリーノードの前記分割モードを決定するために前記ビットストリームの解析するステップが、前記分割モードが垂直二分木分割であるか分割なしであるかを決定するために第1のフラグを解析するステップを含む、請求項19に記載の方法。
【請求項２２】
プロセッサと、前記プロセッサに結合された受信機とを備え、前記プロセッサおよび前記受信機が、請求項14から21のいずれか一項に記載の方法を実行するように構成された、ビデオコーディングデバイス。
【請求項２３】
ビデオコーディングデバイスによって使用するためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体であって、前記コンピュータプログラム製品が、プロセッサによって実行されたときに前記ビデオコーディングデバイスに請求項14から21のいずれか一項に記載の方法を実行させる、前記非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を備える、非一時的コンピュータ可読媒体。
【請求項２４】
画像データを含むビットストリームを受信するための受信手段と、
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、前記画像データを区分するための区分手段と、
前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段と、
前記コーディングツリーノードの高さが最大TUの高さの2倍であり、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記コーディングツリーノードの分割モードを決定するために前記ビットストリームを解析するための分割モード決定手段であって、前記分割モードが、四分木分割、水平二分木分割、および分割なしから選択される、分割モード決定手段と、
1つまたは複数のコーディングユニット(CU)を取得するために、前記分割モードを前記コーディングツリーノードに適用するための分割モード適用手段と、
画像を作成するために、前記ビットストリームに基づいて前記CUをデコードするためのデコード手段と、
前記画像をディスプレイに向けて転送するための表示手段と、
を備える、デコーダ。
【請求項２５】
前記デコーダが、請求項14から18のいずれか一項に記載の方法を実行するようにさらに構成される、請求項24に記載のデコーダ。
【請求項２６】
画像データを含むビットストリームを受信するための受信手段と、
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、前記画像データを区分するための区分手段と、
前記コーディングツリーノードの高さが最大変換ユニット(TU)の高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段と、
前記コーディングツリーノードの高さが最大TUの高さを超えず、前記コーディングツリーノードの幅が最大TUの幅の2倍であるという前記決定に基づいて、前記コーディングツリーノードの分割モードを決定するために前記ビットストリームを解析するための分割モード決定手段であって、前記分割モードが、垂直二分木分割と分割なしから選択される、分割モード決定手段と、
1つまたは複数のコーディングユニット(CU)を取得するために、前記分割モードを前記コーディングツリーノードに適用するための分割モード適用手段と、
画像を作成するために、前記ビットストリームに基づいて前記CUをデコードするためのデコード手段と、
前記画像をディスプレイに向けて転送するための表示手段と、
を備える、デコーダ。
【請求項２７】
前記デコーダが、請求項19から21のいずれか一項に記載の方法を実行するようにさらに構成される、請求項26に記載のデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本特許出願は、参照により本明細書に組み込まれる、2018年7月17日にJianle Chenらによって出願された、「Constrained Coding Tree For Video Coding」と題する米国仮特許出願第62/699,489号の利益を主張する。
【０００２】
本開示は、一般に、ビデオコーディングに関し、特に、ビデオコーディングにおいてコーディングツリーユニット(CTU)を区分するためのコーディングツリーの生成に関する。
【背景技術】
【０００３】
比較的短いビデオでも描写するのに必要なビデオデータの量は、かなりの量になる可能性があり、限られた帯域幅容量の通信ネットワークを介してデータがストリーミングまたは他の方法で通信される場合に問題が発生する可能性がある。したがって、ビデオデータは通常、現代の電気通信ネットワークを介して通信される前に圧縮される。ビデオがストレージデバイスに記憶される場合、メモリリソースが制限される可能性があるため、ビデオのサイズも問題になる可能性がある。ビデオ圧縮デバイスは、多くの場合、送信または保存の前にビデオデータをコーディングするために、ソースにおいてソフトウェアおよび/またはハードウェアを使用し、それによって、デジタルビデオ画像を表すために必要なデータの量が減少する。次いで、圧縮されたデータは、ビデオデータをデコードするビデオ解凍デバイスによって宛先において受信される。ネットワークリソースが限られており、より高いビデオ品質に対する要求がますます高まっているため、画質をほとんどまたはまったく犠牲にすることなく圧縮率を向上させる、改善された圧縮および解凍技法が望まれている。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施形態では、本開示は、エンコーダに実装された方法を含む。本方法は、エンコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために画像を区分するステップを備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大変換ユニット(TU)の高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップをさらに備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを選択するステップであって、分割モードが、四分木分割、水平二分木分割、および分割なしから選択される、ステップをさらに備える。本方法は、プロセッサによって、1つまたは複数のコーディングユニット(CU)を作成するために分割モードをコーディングツリーノードに適用するステップをさらに備える。本方法は、プロセッサによって、CUをビットストリームにエンコードするステップをさらに備える。本方法は、エンコーダの送信機によって、ビットストリームをデコーダに向けて送信するステップをさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【０００５】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、分割モードは、垂直二分木分割、垂直三分木分割、および水平三分木分割から選択されないことを提供する。
【０００６】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、分割モードが四分木分割であるかどうかを示す第1のフラグと、分割モードが水平二分木分割であるか、分割なしであるかを示す第2のフラグをエンコードすることによって、ビットストリーム内のコーディングツリーノードの分割モードをシグナリングすることをさらに備えることを提供する。
【０００７】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、第1のフラグはqt_split_cu_flagであり、第2のフラグはmtt_split_cu_flagであることを提供する。
【０００８】
一実施形態では、本開示は、エンコーダに実装された方法を含む。本方法は、エンコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために画像を区分するステップを備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップをさらに備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを選択するステップであって、分割モードが、垂直二分木分割と分割なしから選択される、ステップをさらに備える。本方法は、プロセッサによって、1つまたは複数のコーディングユニット(CU)を作成するために分割モードをコーディングツリーノードに適用するステップをさらに備える。本方法は、プロセッサによって、CUをビットストリームにエンコードするステップをさらに備える。本方法は、エンコーダの送信機によって、ビットストリームをデコーダに向けて送信するステップをさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【０００９】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、分割モードは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、水平二分木分割、四分木分割、垂直三分木分割、および水平三分木分割から選択されないことを提供する。
【００１０】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、分割モードが垂直二分木分割であるか分割なしであるかを示す第1のフラグをエンコードすることによって、ビットストリーム内のコーディングツリーノードの分割モードをシグナリングすることをさらに備えることを提供する。
【００１１】
一実施形態では、本開示は、プロセッサと、プロセッサに結合された送信機とを備えるビデオコーディングデバイスであって、プロセッサおよび送信機が、前述の態様のうちのいずれかに記載の方法を実行するように構成された、ビデオコーディングデバイスを含む。
【００１２】
一実施形態では、本開示は、ビデオコーディングデバイスによって使用するためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体を含み、コンピュータプログラム製品は、プロセッサによって実行されたときに、ビデオコーディングデバイスに前述の態様のうちのいずれかに記載の方法を実行させる、非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を備える。
【００１３】
一実施形態では、本開示は、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために画像を区分するための区分手段を備えるエンコーダを含む。エンコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段をさらに備える。エンコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であり、水平方向の二分木分割であり、分割なしであるという決定に基づいて、コーディングツリーノードの分割モードを選択するための分割モード選択手段をさらに備える。エンコーダは、1つまたは複数のCUを作成するために分割モードをコーディングツリーノードに適用するための分割モード適用手段をさらに備える。エンコーダは、CUをビットストリームにエンコードするためのエンコーディング手段をさらに備える。エンコーダは、ビットストリームをデコーダに向けて送信するための送信手段をさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【００１４】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、エンコーダが、前述の態様のうちのいずれかに記載の方法を実行するようにさらに構成されることを提供する。
【００１５】
一実施形態では、本開示は、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために画像を区分するための区分手段を備えるエンコーダを含む。エンコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段をさらに備える。エンコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを選択するための分割モード選択手段であって、分割モードが、垂直二分木分割と分割なしから選択される、分割モード選択手段をさらに備える。エンコーダは、1つまたは複数のCUを作成するために分割モードをコーディングツリーノードに適用するための分割モード適用手段をさらに備える。エンコーダは、CUをビットストリームにエンコードするためのエンコーディング手段をさらに備える。エンコーダは、ビットストリームをデコーダに向けて送信するための送信手段をさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【００１６】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、エンコーダが、前述の態様のうちのいずれかに記載の方法を実行するようにさらに構成されることを提供する。
【００１７】
一実施形態では、本開示は、デコーダに実装された方法を含む。本方法は、デコーダの受信機によって、画像データを含むビットストリームを受信するステップを備える。本方法は、デコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために、画像データを区分するステップをさらに備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップをさらに備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するステップであって、分割モードが、四分木分割、水平二分木分割、および分割なしから選択される、ステップをさらに備える。本方法は、プロセッサによって、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用するステップをさらに備える。本方法は、プロセッサによって、画像を作成するために、ビットストリームに基づいてCUをデコードするステップをさらに備える。本方法は、プロセッサによって、画像をディスプレイに向けて転送するステップをさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【００１８】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、分割モードは、垂直二分木分割、垂直三分木分割、および水平三分木分割から選択されないことを提供する。
【００１９】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するステップは、分割モードが四分木分割であるかどうかを決定するために第1のフラグを解析するステップを含むことを提供する。
【００２０】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するステップは、分割モードが水平二分木分割であるか分割なしであるかを決定するために第2のフラグを解析するステップをさらに含むことを提供する。
【００２１】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、第1のフラグはqt_split_cu_flagであり、第2のフラグはmtt_split_cu_flagであることを提供する。
【００２２】
一実施形態では、本開示は、デコーダに実装された方法を含む。本方法は、デコーダの受信機によって、画像データを含むビットストリームを受信するステップを備える。本方法は、デコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために、画像データを区分するステップをさらに備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するステップをさらに備える。本方法は、プロセッサによって、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するステップであって、分割モードが、垂直二分木分割と分割なしから選択される、ステップをさらに備える。本方法は、プロセッサによって、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用するステップをさらに備える。本方法は、プロセッサによって、画像を作成するために、ビットストリームに基づいてCUをデコードするステップをさらに備える。本方法は、プロセッサによって、画像をディスプレイに向けて転送するステップをさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【００２３】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、分割モードは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、水平二分木分割、四分木分割、垂直三分木分割、および水平三分木分割から選択されないことを提供する。
【００２４】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、コーディングツリーノードの分割モードを決定するためにビットストリームの解析するステップは、分割モードが垂直二分木分割であるか分割なしであるかを決定するために第1のフラグを解析するステップを含むことを提供する。
【００２５】
一実施形態では、本開示は、プロセッサと、プロセッサに結合された受信機とを備えるビデオコーディングデバイスであって、プロセッサおよび受信機が、前述の態様のうちのいずれかに記載の方法を実行するように構成された、ビデオコーディングデバイスを備えるビデオコーディングデバイスを含む。
【００２６】
一実施形態では、本開示は、ビデオコーディングデバイスによって使用するためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体を含み、コンピュータプログラム製品は、プロセッサによって実行されたときに、ビデオコーディングデバイスに前述の態様のうちのいずれかに記載の方法を実行させる、非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を備える。
【００２７】
一実施形態では、本開示は、画像データを含むビットストリームを受信するための受信手段を備えるデコーダを含む。デコーダは、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために、画像データを区分するための区分手段をさらに備える。デコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段をさらに備える。デコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するための分割モード決定手段であって、分割モードが、四分木分割、水平二分木分割、および分割なしから選択される、分割モード決定手段をさらに備える。デコーダは、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用するための分割モード適用手段をさらに備える。デコーダは、画像を作成するために、ビットストリームに基づいてCUをデコードするためのデコード手段をさらに備える。デコーダは、画像をディスプレイに向けて転送するための表示手段をさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【００２８】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、デコーダが、前述の態様のうちのいずれかに記載の方法を実行するようにさらに構成されることを提供する。
【００２９】
一実施形態では、本開示は、画像データを含むビットストリームを受信するための受信手段を備えるデコーダを含む。デコーダは、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために、画像データを区分するための区分手段をさらに備える。デコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定手段をさらに備える。デコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するための分割モード決定手段であって、分割モードが、垂直二分木分割と分割なしから選択される、分割モード決定手段をさらに備える。デコーダは、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用するための分割モード適用手段をさらに備える。デコーダは、画像を作成するために、ビットストリームに基づいてCUをデコードするためのデコード手段をさらに備える。デコーダは、画像をディスプレイに向けて転送するための表示手段をさらに備える。上記のメカニズムにより、CUがパイプラインブロックの境界を越えて区分される可能性を軽減するために、CTU区分を改善することができる。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。これにより、そのようなパイプライン構造が採用されている場合に、より高速なコーディングが可能になる。
【００３０】
任意で、前述の態様のいずれかにおいて、本態様の別の実装形態は、デコーダが、前述の態様のうちのいずれかに記載の方法を実行するようにさらに構成されることを提供する。
【００３１】
明確にするために、前述の実施形態のうちのいずれか1つを、本開示の範囲内で新しい実施形態を作成するために他の前述の実施形態のうちのいずれか1つまたは複数と組み合わせることができる。
【００３２】
これらおよび他の特徴は、添付の図面および特許請求の範囲と併せて取られる以下の詳細な説明からより明確に理解されるであろう。
【００３３】
本開示のより完全な理解のために、添付の図面および詳細な説明に関連して取られた以下の簡単な説明が参照され、図面において同様の参照番号は同様の部品を表す。
【図面の簡単な説明】
【００３４】
【図１】ビデオ信号をコーディングする例示的な方法のフローチャートである。
【図２】ビデオコーディングのための例示的なコーディングおよびデコーディング(コーデック)システムの概略図である。
【図３】ビデオコーディング用の例示的なビデオエンコーダを示す概略図である。
【図４】ビデオコーディング用の例示的なビデオデコーダを示す概略図である。
【図５】コーディングツリーユニット(CTU)をコーディングユニット(CU)に区分する例示的なメカニズムを示す概略図である。
【図６】CTUに適用されるようなコーディングツリーノードを備えた例示的なコーディングツリーを示す図である。
【図７】コーディングツリーにおいて採用される分割モードの例示的なセットを示す概略図である。
【図８】コーディングツリーノードを区分するために分割モードを選択するときに、制約付きコーディングツリーによって適用される例示的な制約を示す概略図である。
【図９】コーディングツリーノードを区分するために分割モードを選択するときに、制約付きコーディングツリーによって適用される例示的な制約を示す概略図である。
【図１０】エンコード中にCTUのコーディングツリーノードを区分するために制約付きコーディングツリーを適用する例示的な方法のフローチャートである。
【図１１】エンコード中にCTUのコーディングツリーノードを区分するために制約付きコーディングツリーを適用する別の例示的な方法のフローチャートである。
【図１２】デコード中にCTUのコーディングツリーノードを区分するために制約付きコーディングツリーを適用する例示的な方法のフローチャートである。
【図１３】デコード中にCTUのコーディングツリーノードを区分するために制約付きコーディングツリーを適用する別の例示的な方法のフローチャートである。
【図１４】例示的なビデオコーディングデバイスの概略図である。
【図１５】CTUのコーディングツリーノードを区分するために、制約付きコーディングツリーを適用するための例示的なシステムの概略図である。
【発明を実施するための形態】
【００３５】
1つまたは複数の実施形態の例示的な実装形態が以下に提供されるが、開示されるシステムおよび/または方法は、現在知られているか存在するかにかかわらず、任意の数の技法を使用して実装され得ることを最初に理解されたい。本開示は、本明細書に例示および説明される例示的な設計および実装形態を含む、以下に例示される例示的な実装形態、図面、および技法に決して限定されるべきではなく、それらの同等物の全範囲とともに添付の特許請求の範囲内で修正され得る。
【００３６】
ビデオコーディングは、ビデオファイルのサイズを圧縮するために、ビデオフレーム(ピクチャとも呼ばれる)をブロックに区分し、イントラ予測およびインター予測を介してブロックをエンコードすることを含む。本開示は、区分プロセスの改善に関する。具体的には、ビデオフレームはスライスに区分され、スライスはフレーム全体に水平に延びる場合がある。次いで、各スライスは、あらかじめ定められたサイズのコーディングツリーユニット(CTU)に細分化される。CTUは、たとえば、スライスの行または列におけるピクセル数が、それぞれCTUの幅または高さによって均等に割り切れない場合などに、スライス全体でサイズが異なる場合がある。次いで、CTUをコーディングユニット(CU)にさらに細分化するために、コーディングツリーが各CTUに適用される。各CUは、インター予測およびイントラ予測を介してエンコードおよびデコードすることができるルーマ(たとえば、光)およびクロマ(たとえば、色)ブロックを含む。
【００３７】
コーディングツリーは、CTUをCUに分割するために処理される1つまたは複数のコーディングツリーノードを含む。コーディングツリーノードは、対応する分割モードの適用のために指定された、CTUに含まれるピクセルのセットまたはサブセットである。コーディングツリーノードは、親/子関係のコーディングツリーによって関連付けられる。たとえば、コーディングツリーにおける第1のコーディングツリーノードはCTUをサブグループに分割することができ、次いで、後続の子コーディングツリーノードは、サブグループをさらに細分化することができる。そのような細分化は、条件が満たされるまで(たとえば、最小CUおよび/またはブロックサイズに達するまで)再帰的に発生する可能性がある。エンコーダがCTUを比較的均一なルーマおよび/またはクロマ値を含むCUに区分できるようにするために、エンコーダにいくつかの分割モードを使用することができる。そのような比較的均一なピクセルのグループは、異なる値を有するピクセルのグループよりも効率的な方法で(たとえば、より高い圧縮およびより少ないビットで)エンコードすることができる。たとえば、エンコーダは、コーディングツリーノードを4つの等しい部分に分割する四分木分割モード、コーディングツリーノードを2つの等しい部分に分割する垂直バイナリ分割モードまたは水平バイナリ分割モード、および/またはコーディングツリーノードを3つの等しい部分に分割する垂直三分木分割モードを選択することができる。次いで、エンコーダは、デコーダがデコードの目的でCTUを区分できるようにするために、ビットストリームにおいてコーディングツリーをデコーダに信号で送ることができる。
【００３８】
多くのビデオコーデックは、区分されたCTUをエンコードおよび/またはデコードするときに、ブロックベースのパイプライン設計を採用している。具体的には、コーデックは、各CTUのサブセットをあらかじめ定義された順序でエンコードまたはデコードする。具体的な例として、CTUをサブ部分に編成し、次いで、サブ部分を左から右、および上から下にエンコードおよび/またはデコードすることができる。そのようなサブ部分は、パイプラインブロックと呼ばれることもある(コーディングブロックと混同しない)。たとえば、CTUはS×Sパイプラインブロック(または、2S×2S、2S×S、S×2Sなど)に編成することができ、Sの値は最大変換ユニット(TU)のサイズである。TUは、コーディングプロセス(たとえば、インター予測またはイントラ予測)から生じる残余値のコーディングブロックに空間的に適用される変換関数である。パイプラインブロックに編成されると、CTUをパイプラインに従ってコーディングすることができ、たとえば、左上のセクション、右上のセクション、左下のセクション、次いで右下のセクションなどである。残念ながら、特定の分割モードをCTU(および、そのコーディングツリーノード)に適用すると、たとえば複数のパイプラインブロックに存在するCUを作成することによって、パイプライン構造に完全に分類されないCUが作成される可能性がある。このシナリオは、対応するCTUのパイプラインベースのコーディングを複雑にする、および/または妨げる可能性がある。
【００３９】
本明細書に開示されるのは、パイプラインブロック境界を越えてCUが区分される可能性を軽減するために、CTU区分を改善するメカニズムである。具体的には、制約付きコーディングツリーがCTUに適用され、制約付きコーディングツリーは、パイプライン構造を破壊する分割を防ぐためのルールを含む。制約付きコーディングツリーを生成するとき、エンコーダは最大TUの高さおよび最大TUの幅を、それぞれ現在のコーディングツリーノードの高さおよび幅と比較する。第1の例では、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍である場合(たとえば、128×128ピクセル、および/または2S×2S)、分割モードは、四分木分割、水平二分木分割、および分割なしからなるグループから選択される。したがって、コーディングツリーは、垂直二分木分割、垂直三分木分割、および水平三分木分割のグループからコーディングツリーノードの分割モードを選択することから制約される。潜在的な分割モードのグループは、四分木分割、水平二分木分割、および分割なしに制約されているため、分割モードは2つのフラグを介してシグナリングすることができる。第1のフラグ(たとえば、qt_split_cu_flag)は、分割モードが四分木分割であるかどうかシグナリングすることができ、第2のフラグ(たとえば、mtt_split_cu_flag)は、分割モードが水平二分木分割であるか分割なしであるかシグナリングすることができる。第2の例では、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍である場合(たとえば、幅が高さおよび/または2S×Sで示される128×64ピクセル)、分割モードは、垂直二分木分割および分割なしからなるグループから選択される。したがって、コーディングツリーは、水平二分木、四分木分割、垂直三分木、および水平三分木のグループからコーディングツリーノードの分割モードを選択することから制約される。潜在的な分割モードのグループは、垂直二分木分割と分割なしに制約されているため、分割モードは、単一のフラグを介してシグナリングすることができる(たとえば、垂直二分木分割または分割なしを示す)。したがって、本明細書で説明する方法で制約付きコーディングツリーを適用すると、パイプラインブロック内に収まらないCUに関連付けられる速度低下を防ぐことによって、エンコードおよびデコードの速度が向上する。さらに、制約付きコーディングツリーは、分割モードを通知するために採用されるビット数を、たとえば2S×2Sのコーディングツリーノードの場合は2ビットに、2S×Sのコーディングツリーノードの場合は1ビットに減らすことによって、コーディング効率を高める。開示された制約付きコーディングツリーは、イントラ予測(I)スライス、一方向インター予測(P)スライス、および/または双方向インター予測(B)スライス内におけるCTUに適用することができる。
【００４０】
図1は、ビデオ信号をコーディングする例示的な動作方法100のフローチャートである。具体的には、ビデオ信号はエンコーダにおいてエンコードされる。エンコーディングプロセスは、ビデオファイルのサイズを縮小するために様々なメカニズムを採用することによって、ビデオ信号を圧縮する。ファイルサイズを小さくすると、圧縮されたビデオファイルをユーザに向けて送信できると同時に、関連付けられる帯域幅のオーバーヘッドを削減することができる。次いで、デコーダは、エンドユーザに表示するための元のビデオ信号を再構築するために、圧縮されたビデオファイルをデコードする。デコーディングプロセスは、一般に、デコーダがビデオ信号を一貫して再構築できるようにするために、エンコーディングプロセスをミラーリングする。
【００４１】
ステップ101において、ビデオ信号がエンコーダに入力される。たとえば、ビデオ信号は、メモリに記憶された非圧縮ビデオファイルであり得る。別の例として、ビデオファイルは、ビデオカメラなどのビデオキャプチャデバイスによってキャプチャされ、ビデオのライブストリーミングをサポートするようにエンコードされ得る。ビデオファイルは、オーディオコンポーネントとビデオコンポーネントの両方を含み得る。ビデオコンポーネントは一連の画像フレームを含み、順番に表示すると、動きの視覚的な印象を与える。フレームは、本明細書ではルーマ成分(または、ルーマサンプル)と呼ばれる光、およびクロマ成分(または、色サンプル)と呼ばれる色に関して表現されるピクセルを含む。いくつかの例では、フレームはまた、3次元表示をサポートするために深度値を含み得る。
【００４２】
ステップ103において、ビデオはブロックに区分される。区分は、各フレーム内のピクセルを圧縮のために正方形および/または長方形のブロックに細分化することを含む。たとえば、高効率ビデオコーディング(HEVC)(H.265およびMotion Picture Experts Group(MPEG)-Hパート2としても知られる)では、フレームを最初にコーディングツリーユニット(CTU)に分割することができ、これは、あらかじめ定義されたサイズ(たとえば、64ピクセル×64ピクセル)のブロックである。CTUは、ルーマサンプルとクロマサンプルの両方を含む。CTUをブロックに分割し、次いで、さらなるエンコーディングをサポートする構成が実現されるまでブロックを再帰的に細分化するために、コーディングツリーが採用され得る。たとえば、フレームのルーマ成分は、個々のブロックが比較的均一な照明値を含むまで細分化され得る。さらに、フレームのクロマ成分は、個々のブロックが比較的均一な色値を含むまで細分化され得る。したがって、区分メカニズムは、ビデオフレームの内容によって異なる。
【００４３】
ステップ105において、ステップ103において区分された画像ブロックを圧縮するために、様々な圧縮メカニズムが採用される。たとえば、インター予測および/またはイントラ予測が採用され得る。インター予測は、共通のシーン内のオブジェクトが連続するフレームに表示される傾向があるという事実を利用するように設計されている。したがって、参照フレーム内のオブジェクトを表すブロックは、隣接するフレーム内で繰り返し記述される必要はない。具体的には、テーブルなどのオブジェクトは、複数のフレームにわたって一定の位置に留まる場合がある。したがって、テーブルは1回記述され、隣接するフレームは参照フレームに戻って参照することができる。複数のフレームにわたってオブジェクトを一致させるためにパターンマッチングメカニズムが採用され得る。さらに、移動するオブジェクトは、たとえば、オブジェクトの動きまたはカメラの動きのために、複数のフレームにわたって表され得る。特定の例として、ビデオは、複数のフレームにわたって画面を横切って移動する自動車を示し得る。そのような動きを記述するために動きベクトルを採用することができる。動きベクトルは、フレーム内のオブジェクトの座標から参照フレーム内のオブジェクトの座標へのオフセットを提供する2次元ベクトルである。したがって、インター予測は、現在のフレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す動きベクトルのセットとしてエンコードすることができる。
【００４４】
イントラ予測は、共通フレーム内のブロックをエンコードする。イントラ予測は、ルーマ成分およびクロマ成分がフレーム内でクラスタ化する傾向があるという事実を利用する。たとえば、ツリーの一部にある緑のパッチは、同様の緑のパッチに隣接して配置される傾向がある。イントラ予測は、複数の方向予測モード(たとえば、HEVCでは33)、平面モード、および直流(DC)モードを採用している。方向モードは、現在のブロックが対応する方向における隣接ブロックのサンプルと類似/同一であることを示す。平面モードは、行/列に沿った一連のブロック(たとえば、平面)が、行の端にある隣接するブロックに基づいて補間できることを示す。平面モードは、事実上、値の変化において比較的一定の勾配を採用することによって、行/列にわたる光/色の平滑な遷移を示す。DCモードは境界平滑化に採用され、ブロックが方向予測モードの角度方向に関連付けられるすべての隣接ブロックのサンプルに関連付けられる平均値と類似/同一であることを示す。したがって、イントラ予測ブロックは、実際の値ではなく、様々なリレーショナル予測モード値として画像ブロックを表すことができる。さらに、インター予測ブロックは、画像ブロックを実際の値ではなく動きベクトル値として表すことができる。いずれの場合も、予測ブロックが画像ブロックを正確に表していない場合がある。差異は残余ブロックに記憶される。ファイルをさらに圧縮するために、残余ブロックに変換が適用され得る。
【００４５】
ステップ107において、様々なフィルタリング技法が適用され得る。HEVCでは、フィルタはインループフィルタリングスキームに従って適用される。上で説明したブロックベースの予測により、デコーダにおいてブロックノイズのある画像が作成される場合がある。さらに、ブロックベースの予測スキームは、ブロックをエンコードし、次いで、後で参照ブロックとして使用するために、エンコードされたブロックを再構築し得る。インループフィルタリングスキームは、ノイズ抑制フィルタ、非ブロックフィルタ、適応ループフィルタ、およびサンプル適応オフセット(SAO)フィルタをブロック/フレームに繰り返し適用する。これらのフィルタは、エンコードされたファイルを正確に再構築できるように、そのようなブロッキングアーティファクトを軽減する。さらに、これらのフィルタは、再構築された参照ブロック内のアーティファクトを軽減するため、アーティファクトが、再構築された参照ブロックに基づいてエンコードされた後続のブロックに追加のアーティファクトを作成する可能性が低くなる。
【００４６】
ビデオ信号が区分され、圧縮され、フィルタリングされると、結果として得られるデータは、ステップ109においてビットストリームにエンコードされる。ビットストリームは、上記のデータ、ならびにデコーダにおける適切なビデオ信号の再構築をサポートするために必要なシグナリングデータを含む。たとえば、そのようなデータは、区分データ、予測データ、残余ブロック、およびデコーダにコーディング命令を提供する様々なフラグを含み得る。ビットストリームは、要求に応じてデコーダに向けて送信するためにメモリに記憶され得る。ビットストリームはまた、複数のデコーダに向けてブロードキャストおよび/またはマルチキャストされ得る。ビットストリームの作成は反復的なプロセスである。したがって、ステップ101、103、105、107、および109は、多くのフレームおよびブロックにわたって連続的および/または同時に発生し得る。図1に示される順序は、説明を明確かつ容易にするために提示されており、ビデオコーディングプロセスを特定の順序に限定することを意図するものではない。
【００４７】
ステップ111において、デコーダはビットストリームを受信し、デコーディングプロセスを開始する。具体的には、デコーダは、ビットストリームを対応する構文およびビデオデータに変換するためにエントロピデコーディングスキームを採用する。デコーダは、ステップ111においてフレームの区分を決定するために、ビットストリームからの構文データを採用する。区分は、ステップ103におけるブロック区分の結果と一致する必要がある。次に、ステップ111において採用されるエントロピーエンコーディング/デコーディングについて説明する。エンコーダは、入力画像内の値の空間的配置に基づいて、いくつかの可能な選択肢からブロック区分スキームを選択するなど、圧縮プロセス中に多くの選択を行う。正確な選択を通知するには、多数のビンを採用する場合がある。本明細書で使用される場合、ビンは、変数として扱われるバイナリ値(たとえば、コンテキストに応じて変化する可能性があるビット値)である。エントロピコーディングにより、エンコーダは、特定のケースにとって明らかに実行不可能なオプションを破棄し、許容可能なオプションのセットを残すことができる。次いで、許容可能な各オプションにコードワードが割り当てられる。コードワードの長さは、許容可能なオプションの数に基づいている(たとえば、2つのオプションに対して1つのビン、3〜4つのオプションに対して2つのビンなど)。次いで、エンコーダは選択されたオプションのコードワードをエンコードする。このスキームは、コードワードが必要なだけ大きいため、コードワードのサイズを縮小し、可能なすべてのオプションの潜在的に大きいセットからの選択を一意に示すのではなく、許容可能なオプションの小さいサブセットからの選択を一意に示す。次いで、デコーダは、エンコーダと同様の方法で許容可能なオプションのセットを決定することによって選択をデコードする。許容可能なオプションのセットを決定することによって、デコーダはコードワードを読み取り、エンコーダによって行われた選択を決定することができる。
【００４８】
ステップ113において、デコーダはブロックデコーディングを実行する。具体的には、デコーダは、残余ブロックを生成するために逆変換を採用する。次いで、デコーダは、区分に従って画像ブロックを再構築するために、残余ブロックおよび対応する予測ブロックを採用する。予測ブロックは、ステップ105においてエンコーダにおいて生成されるようなイントラ予測ブロックとインター予測ブロックの両方を含み得る。次いで、再構築された画像ブロックは、ステップ111において決定された区分データに従って、再構築されたビデオ信号のフレームに配置される。ステップ113の構文は、上記のようにエントロピコーディングを介してビットストリームにおいてシグナリングすることもできる。
【００４９】
ステップ115において、フィルタリングは、エンコーダにおけるステップ107と同様の方法で、再構築されたビデオ信号のフレームに対して実行される。たとえば、ブロッキングアーティファクトを除去するために、ノイズ抑制フィルタ、非ブロックフィルタ、適応ループフィルタ、およびSAOフィルタをフレームに適用し得る。フレームがフィルタリングされると、ビデオ信号は、エンドユーザが見るために、ステップ117においてディスプレイに出力することができる。
【００５０】
図2は、ビデオコーディングのための例示的なコーディングおよびデコーディング(コーデック)システム200の概略図である。具体的には、コーデックシステム200は、動作方法100の実装形態をサポートする機能を提供する。コーデックシステム200は、エンコーダとデコーダの両方において採用されるコンポーネントを描写するように一般化されている。コーデックシステム200は、動作方法100におけるステップ101および103に関して説明したように、ビデオ信号を受信して区分し、その結果、区分されたビデオ信号201が得られる。次いで、コーデックシステム200は、方法100におけるステップ105、107、および109に関して説明したように、エンコーダとして機能するときに、区分されたビデオ信号201をコーディングされたビットストリームに圧縮する。デコーダコーデックシステム200として機能するときに、動作方法100におけるステップ111、113、115、および117に関して説明したように、ビットストリームから出力ビデオ信号を生成する。コーデックシステム200は、一般的なコーダ制御コンポーネント211、変換スケーリングおよび量子化コンポーネント213、イントラピクチャ推定コンポーネント215、イントラピクチャ予測コンポーネント217、動き補償コンポーネント219、動き推定コンポーネント221、スケーリングおよび逆変換コンポーネント229、フィルタ制御分析コンポーネント227、インループフィルタコンポーネント225、デコードされたピクチャバッファコンポーネント223、ならびにヘッダフォーマッティングおよびコンテキスト適応バイナリ算術コーディング(CABAC)コンポーネント231を含む。そのようなコンポーネントは、示されているように結合される。図2において、黒い線はエンコード/デコードされるデータの動きを示し、破線は他のコンポーネントの動作を制御する制御データの動きを示している。コーデックシステム200のコンポーネントはすべてエンコーダ内に存在し得る。デコーダは、コーデックシステム200のコンポーネントのサブセットを含み得る。たとえば、デコーダは、イントラピクチャ予測コンポーネント217、動き補償コンポーネント219、スケーリングおよび逆変換コンポーネント229、インループフィルタコンポーネント225、およびデコードされたピクチャバッファコンポーネント223を含み得る。次に、これらのコンポーネントについて説明する。
【００５１】
区分されたビデオ信号201は、コーディングツリーによってピクセルのブロックに区分されたキャプチャされたビデオシーケンスである。コーディングツリーは、ピクセルのブロックをピクセルのより小さいブロックに細分化するために、様々な分割モードを採用する。次いで、これらのブロックをより小さいブロックに細分化することができる。ブロックは、コーディングツリー上のノードと呼ばれる場合がある。より大きい親ノードはより小さい子ノードに分割される。ノードが細分化される回数は、ノード/コーディングツリーの深さと呼ばれる。分割されたブロックは、場合によってはコーディングユニット(CU)に含めることができる。たとえば、CUは、ルーマブロック、赤の差分クロマ(Cr)ブロック、および青の差分クロマ(Cb)ブロックを、CUの対応する構文命令とともに含む、CTUのサブ部分にすることができる。分割モードは、採用する分割モードに応じて、ノードを様々な形状の2つ、3つ、または4つの子ノードにそれぞれ区分するために採用される二分木(BT)、三分木(TT)、および四分木(QT)を含み得る。区分されたビデオ信号201は、圧縮のために、一般的なコーダ制御コンポーネント211、変換スケーリングおよび量子化コンポーネント213、イントラピクチャ推定コンポーネント215、フィルタ制御分析コンポーネント227、および動き推定コンポーネント221に転送される。
【００５２】
一般的なコーダ制御コンポーネント211は、アプリケーションの制約に従って、ビデオシーケンスの画像のビットストリームへのコーディングに関連する決定を行うように構成される。たとえば、一般的なコーダ制御コンポーネント211は、ビットレート/ビットストリームサイズ対再構築品質の最適化を管理する。そのような決定は、ストレージスペース/帯域幅の可用性と画像解像度の要求に基づいて行うことができる。一般的なコーダ制御コンポーネント211はまた、バッファのアンダーランおよびオーバーランの問題を軽減するために、送信速度に照らしてバッファ利用を管理する。これらの問題を管理するために、一般的なコーダ制御コンポーネント211は、他のコンポーネントによる区分、予測、およびフィルタリングを管理する。たとえば、一般的なコーダ制御コンポーネント211は、解像度を増加させ、帯域幅の使用量を増加させるために圧縮の複雑さを動的に増加させるか、または解像度および帯域幅の使用量を減少させるために圧縮の複雑さを減少させる。したがって、一般的なコーダ制御コンポーネント211は、ビデオ信号再構築品質とビットレートの懸念とのバランスをとるために、コーデックシステム200の他のコンポーネントを制御する。一般的なコーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを作成する。制御データはまた、ビットストリームにエンコードされて、デコーダにおいてデコードするためのパラメータを通知するために、ヘッダフォーマッティングおよびCABACコンポーネント231に転送される。
【００５３】
区分されたビデオ信号201はまた、インター予測のために動き推定コンポーネント221および動き補償コンポーネント219に送信される。区分されたビデオ信号201のフレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定コンポーネント221および動き補償コンポーネント219は、時間的予測を提供するために、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実行する。コーデックシステム200は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００５４】
動き推定コンポーネント221および動き補償コンポーネント219は高度に統合され得るが、概念的な目的のために別々に示されている。動き推定コンポーネント221によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。たとえば、動きベクトルは、予測ブロックに対するコーディングされたオブジェクトの変位を示し得る。予測ブロックは、ピクセル差に関して、コーディングされるブロックと厳密に一致することがわかったブロックである。予測ブロックはまた、参照ブロックとも呼ばれ得る。そのようなピクセル差は、絶対差の合計(SAD)、二乗差の合計(SSD)、または他の差メトリックによって決定され得る。HEVCは、CTU、コーディングツリーブロック(CTB)、およびCUを含むいくつかのコーディングされたオブジェクトを採用している。たとえば、CTUをCTBに分割し、次いでCTBをCBに分割してCUに含めることができる。CUは、予測データを含む予測ユニット(PU)および/またはCUの変換された残余データを含む変換ユニット(TU)としてエンコードすることができる。動き推定コンポーネント221は、レート歪み最適化プロセスの一部としてレート歪み分析を使用することによって、動きベクトル、PU、およびTUを生成する。たとえば、動き推定コンポーネント221は、現在のブロック/フレームに対して複数の参照ブロック、複数の動きベクトルなどを決定し得、最良のレート歪み特性を有する参照ブロック、動きベクトルなどを選択し得る。最良のレート歪み特性は、ビデオ再構築の品質(たとえば、圧縮によるデータ損失の量)とコーディング効率(たとえば、最終的なエンコーディングのサイズ)の両方のバランスを取る。
【００５５】
いくつかの例では、コーデックシステム200は、デコードされたピクチャバッファコンポーネント223に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオコーデックシステム200は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定コンポーネント221は、全ピクセル位置および分数ピクセル位置に対して動き検索を実行し、分数ピクセル精度で動きベクトルを出力し得る。動き推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコードされたスライス内のビデオブロックのPUの動きベクトルを計算する。動き推定コンポーネント221は、計算された動きベクトルを動きデータとして、エンコーディングためにヘッダフォーマッティングおよびCABACコンポーネント231に、動きを動き補償コンポーネント219に出力する。
【００５６】
動き補償コンポーネント219によって実行される動き補償は、動き推定コンポーネント221によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含み得る。やはり、いくつかの例では、動き推定コンポーネント221および動き補償コンポーネント219は、機能的に統合され得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償コンポーネント219は、動きベクトルが指す予測ブロックを見つけることができる。次いで、残りのビデオブロックは、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を差し引くことによって形成され、ピクセル差値を形成する。一般に、動き推定コンポーネント221は、ルーマ成分に関連する動き推定を実行し、動き補償コンポーネント219は、クロマ成分およびルーマ成分の両方のルーマ成分に基づいて計算された動きベクトルを使用する。予測ブロックおよび残余ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。
【００５７】
区分されたビデオ信号201はまた、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217に送信される。動き推定コンポーネント221および動き補償コンポーネント219と同様に、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217は、高度に統合され得るが、概念的な目的のために別々に示されている。上記のように、フレーム間の動き推定コンポーネント221および動き補償コンポーネント219によって実行されるインター予測の代替として、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217は、現在のフレーム内のブロックに対して現在のブロックをイントラ予測する。特に、イントラピクチャ推定コンポーネント215は、現在のブロックをエンコードするために使用するイントラ予測モードを決定する。いくつかの例では、イントラピクチャ推定コンポーネント215は、複数のテストされたイントラ予測モードから現在のブロックをエンコードするために、適切なイントラ予測モードを選択する。次いで、選択されたイントラ予測モードは、エンコーディングのためにヘッダフォーマッティングおよびCABACコンポーネント231に転送される。
【００５８】
たとえば、イントラピクチャ推定コンポーネント215は、様々なテストされたイントラ予測モードのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択する。レート歪み分析は、一般に、エンコードされたブロックと、エンコードされたブロックを生成するためにエンコードされた元のエンコードされていないブロックとの間の歪み(または、エラー)の量、ならびにエンコードされたブロックを生成するために使用されるビットレート(たとえば、ビット数)を決定する。イントラピクチャ推定コンポーネント215は、どのイントラ予測モードがブロックに対して最良のレート歪み値を示すかを決定するために、様々なエンコードされたブロックの歪みおよびレートから比率を計算する。さらに、イントラピクチャ推定コンポーネント215は、レート歪み最適化(RDO)に基づく深度モデリングモード(DMM)を使用して深度マップの深度ブロックをコーディングするように構成され得る。
【００５９】
イントラピクチャ予測コンポーネント217は、エンコーダに実装されたときにイントラピクチャ推定コンポーネント215によって決定された選択されたイントラ予測モードに基づいて予測ブロックから残余ブロックを生成してもよく、またはデコーダに実装されたときにビットストリームから残余ブロックを読み取ってもよい。残余ブロックは、行列として表される、予測ブロックと元のブロックの間の値の差を含む。次いで、残余ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217は、ルーマ成分およびクロマ成分の両方において動作し得る。
【００６０】
変換スケーリングおよび量子化コンポーネント213は、残余ブロックをさらに圧縮するように構成される。変換スケーリングおよび量子化コンポーネント213は、離散コサイン変換(DCT)、離散正弦変換(DST)、または概念的に類似した変換などの変換を残余ブロックに適用し、残余変換係数値を備えるビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用することができる。変換は、残余情報をピクセル値ドメインから周波数ドメインなどの変換ドメインに変換し得る。変換スケーリングおよび量子化コンポーネント213はまた、たとえば周波数に基づいて、変換された残余情報をスケーリングするように構成される。そのようなスケーリングでは、残余情報にスケール係数を適用して、異なる周波数情報が異なる粒度において量子化されるようにし、これは、再構築されたビデオの最終的な視覚品質に影響を与える可能性がある。変換スケーリングおよび量子化コンポーネント213はまた、ビットレートをさらに低減するために、変換係数を量子化するように構成される。量子化プロセスは、係数の一部またはすべてに関連付けられるビット深度を減らす可能性がある。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、次いで、変換スケーリングおよび量子化コンポーネント213は、量子化された変換係数を含む行列のスキャンを実行し得る。量子化された変換係数は、ビットストリームにエンコードされるために、ヘッダフォーマッティングおよびCABACコンポーネント231に転送される。
【００６１】
スケーリングおよび逆変換コンポーネント229は、動き推定をサポートするために、変換スケーリングおよび量子化コンポーネント213の逆演算を適用する。スケーリングおよび逆変換コンポーネント229は、ピクセルドメイン内の残余ブロックを再構築するために、たとえば、別の現在のブロックの予測ブロックになる可能性がある参照ブロックとして後で使用するために、逆スケーリング、変換、および/または量子化を適用する。動き推定コンポーネント221および/または動き補償コンポーネント219は、後のブロック/フレームの動き推定において使用するために、残余ブロックを対応する予測ブロックに追加しなおすことによって参照ブロックを計算し得る。フィルタは、スケーリング、量子化、および変換中に作成されたアーティファクトを軽減するために、再構築された参照ブロックに適用される。そうでなければ、そのようなアーティファクトは、後続のブロックが予測されるときに不正確な予測を引き起こす(そして、追加のアーティファクトを作成する)可能性がある。
【００６２】
フィルタ制御分析コンポーネント227およびインループフィルタコンポーネント225は、フィルタを残余ブロックおよび/または再構築された画像ブロックに適用する。たとえば、スケーリングおよび逆変換コンポーネント229からの変換された残余ブロックは、元の画像ブロックを再構築するために、イントラピクチャ予測コンポーネント217および/または動き補償コンポーネント219からの対応する予測ブロックと組み合わせることができる。次いで、フィルタは再構築された画像ブロックに適用され得る。いくつかの例では、フィルタは代わりに残余ブロックに適用される場合がある。図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227およびインループフィルタコンポーネント225は、高度に統合され、一緒に実装され得るが、概念的な目的のために別々に示されている。再構築された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、そのようなフィルタが適用される方法を調整するための複数のパラメータを含む。フィルタ制御分析コンポーネント227は、そのようなフィルタが適用されるべき場所を決定し、対応するパラメータを設定するために、再構築された参照ブロックを分析する。そのようなデータは、エンコーディングのためのフィルタ制御データとして、ヘッダフォーマッティングおよびCABACコンポーネント231に転送される。インループフィルタコンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、非ブロックフィルタ、ノイズ抑制フィルタ、SAOフィルタ、および適応ループフィルタを含み得る。そのようなフィルタは、例に応じて、空間/ピクセルドメイン(たとえば、再構築されたピクセルブロック)または周波数ドメインに適用され得る。
【００６３】
エンコーダとして動作する場合、フィルタリングされた再構築された画像ブロック、残余ブロック、および/または予測ブロックは、前述のように動き推定において後で使用するために、デコードされたピクチャバッファコンポーネント223に記憶される。デコーダとして動作する場合、デコードされたピクチャバッファコンポーネント223は、再構築されフィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに向けて転送する。デコードされたピクチャバッファコンポーネント223は、予測ブロック、残余ブロック、および/または再構築された画像ブロックを記憶することができる任意のメモリデバイスであり得る。
【００６４】
ヘッダフォーマッティングおよびCABACコンポーネント231は、コーデックシステム200の様々なコンポーネントからデータを受信し、そのようなデータを、デコーダに向けて送信するために、コーディングされたビットストリームにエンコードする。具体的には、ヘッダフォーマッティングおよびCABACコンポーネント231は、一般的な制御データおよびフィルタ制御データなどの制御データをエンコードするための様々なヘッダを生成する。さらに、イントラ予測および動きデータを含む予測データ、ならびに量子化された変換係数データの形式の残余データは、すべてビットストリームにエンコードされる。最終的なビットストリームは、元の区分されたビデオ信号201を再構築するためにデコーダによって所望されるすべての情報を含む。そのような情報は、イントラ予測モードのインデックステーブル(コードワードマッピングテーブルとも呼ばれる)、様々なブロックのエンコーディングコンテキストの定義、最も可能性の高いイントラ予測モードの表示、区分情報の表示なども含み得る。そのようなデータは、エントロピコーディングを採用することによってエンコードされ得る。たとえば、情報は、コンテキスト適応可変長コーディング(CAVLC)、CABAC、構文ベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率区間区分エントロピ(PIPE)コーディング、または別のエントロピコーディング技法を採用することによってエンコードされ得る。エントロピコーディングに続いて、コーディングされたビットストリームは、別のデバイス(たとえば、ビデオデコーダ)に送信されてもよく、後で送信または検索するためにアーカイブされてもよい。
【００６５】
図3は、ビデオコーディング用の例示的なビデオエンコーダ300を示すブロック図である。ビデオエンコーダ300は、コーデックシステム200のエンコード機能を実装するために、および/または動作方法100のステップ101、103、105、107、および/または109を実装するために採用され得る。エンコーダ300は入力ビデオ信号を区分し、結果として区分されたビデオ信号301を生成し、これは区分されたビデオ信号201と実質的に同様である。次いで、区分されたビデオ信号301は、エンコーダ300のコンポーネントによって圧縮され、ビットストリームにエンコードされる。
【００６６】
具体的には、区分されたビデオ信号301は、イントラ予測のためにイントラピクチャ予測コンポーネント317に転送される。イントラピクチャ予測コンポーネント317は、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217と実質的に同様であり得る。区分されたビデオ信号301はまた、デコードされたピクチャバッファコンポーネント323内の参照ブロックに基づくインター予測のために動き補償コンポーネント321に転送される。動き補償コンポーネント321は、動き推定コンポーネント221および動き補償コンポーネント219と実質的に同様であり得る。イントラピクチャ予測コンポーネント317および動き補償コンポーネント321からの予測ブロックおよび残余ブロックは、残余ブロックの変換および量子化のために、変換および量子化コンポーネント313に転送される。変換および量子化コンポーネント313は、変換スケーリングおよび量子化コンポーネント213と実質的に同様であり得る。変換および量子化された残余ブロックおよび対応する予測ブロック(および、関連付けられる制御データ)は、ビットストリームにコーディングするためにエントロピコーディングコンポーネント331に転送される。エントロピコーディングコンポーネント331は、ヘッダフォーマッティングおよびCABACコンポーネント231と実質的に同様であり得る。
【００６７】
変換および量子化された残余ブロックおよび/または対応する予測ブロックもまた、動き補償コンポーネント321によって使用される参照ブロックに再構築するために、変換および量子化コンポーネント313から逆変換および量子化コンポーネント329に転送される。逆変換および量子化コンポーネント329は、スケーリングおよび逆変換コンポーネント229と実質的に同様であり得る。インループフィルタコンポーネント325内のインループフィルタはまた、例に応じて、残余ブロックおよび/または再構築された参照ブロックに適用される。インループフィルタコンポーネント325は、フィルタ制御分析コンポーネント227およびインループフィルタコンポーネント225と実質的に同様であり得る。インループフィルタコンポーネント325は、インループフィルタコンポーネント225に関して論じられるように、複数のフィルタを含み得る。次いで、フィルタリングされたブロックは、動き補償コンポーネント321によって参照ブロックとして使用するために、デコードされたピクチャバッファコンポーネント323に記憶される。デコードされたピクチャバッファコンポーネント323は、デコードされたピクチャバッファコンポーネント223と実質的に同様であり得る。
【００６８】
図4は、ビデオコーディング用の例示的なビデオデコーダ400を示すブロック図である。ビデオデコーダ400は、コーデックシステム200のデコード機能を実装するために、および/または動作方法100のステップ111、113、115、および/または117を実装するために採用され得る。デコーダ400は、たとえばエンコーダ300からビットストリームを受信し、エンドユーザに表示するためのビットストリームに基づいて再構築された出力ビデオ信号を生成する。
【００６９】
ビットストリームは、エントロピデコーディングコンポーネント433によって受信される。エントロピデコーディングコンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディング、または他のエントロピコーディング技法などのエントロピデコーディングスキームを実装するように構成される。たとえば、エントロピデコーディングコンポーネント433は、ビットストリーム内のコードワードとしてエンコードされた追加のデータを解釈するためのコンテキストを提供するために、ヘッダ情報を採用し得る。デコードされた情報は、一般的な制御データ、フィルタ制御データ、区分情報、運動データ、予測データ、および残余ブロックからの量子化された変換係数など、ビデオ信号をデコードするための任意の所望の情報を含む。量子化された変換係数は、残余ブロックへの再構築のために、逆変換および量子化コンポーネント429に転送される。逆変換および量子化コンポーネント429は、逆変換および量子化コンポーネント329と同様であり得る。
【００７０】
再構築された残余ブロックおよび/または予測ブロックは、イントラ予測動作に基づいて画像ブロックに再構築するために、イントラピクチャ予測コンポーネント417に転送される。イントラピクチャ予測コンポーネント417は、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217と同様であり得る。具体的には、イントラピクチャ予測コンポーネント417は、フレーム内の参照ブロックを見つけ、残余ブロックを結果に適用して、イントラ予測された画像ブロックを再構築するために、予測モードを採用する。再構築されたイントラ予測された画像ブロックおよび/または残余ブロック、および対応するインター予測データは、それぞれデコードされたピクチャバッファコンポーネント223およびインループフィルタコンポーネント225と実質的に同様であり得る、インループフィルタコンポーネント425を介して、デコードされたピクチャバッファコンポーネント423に転送される。インループフィルタコンポーネント425は、再構築された画像ブロック、残余ブロック、および/または予測ブロックをフィルタリングし、そのような情報は、デコードされたピクチャバッファコンポーネント423に記憶される。デコードされたピクチャバッファコンポーネント423から再構築された画像ブロックは、インター予測のために動き補償コンポーネント421に転送される。動き補償コンポーネント421は、動き推定コンポーネント221および/または動き補償コンポーネント219と実質的に同様であり得る。具体的には、動き補償コンポーネント421は、予測ブロックを生成し、残余ブロックを結果に適用して、画像ブロックを再構築するために、参照ブロックからの動きベクトルを採用する。結果として得られる再構築されたブロックはまた、インループフィルタコンポーネント425を介して、デコードされたピクチャバッファコンポーネント423に転送され得る。デコードされたピクチャバッファコンポーネント423は、追加の再構築された画像ブロックを記憶し続け、これは、区分情報を介してフレームに再構築することができる。そのようなフレームはまた、順番に配置され得る。シーケンスは、再構築された出力ビデオ信号としてディスプレイに向けて出力される。
【００７１】
本開示は、方法100、コーデックシステム200、エンコーダ300、および/またはデコーダ400に従って、ビデオコーディングの複雑さを低減し、コーディング速度を高め、および/またはコーディング効率を高めるためのエンコーダおよびデコーダ設計を提供する。具体的には、本開示は、制約付きコーディングツリーを実装するためのメカニズムを含む。そのような制約付きコーディングツリーを指定されたCTUに適用すると、コーデックパイプラインブロック処理メカニズムに合わせる方法で、対応するコーディングツリーノードが分割される。そのため、CTUは、パイプラインブロックの境界と整列するCUに分割される。これにより、パイプラインブロックの境界を変更したり、パイプラインブロックベースの処理を変更したりするための個別のメカニズムを提供する必要性が軽減され、各CUを個別のユニットとしてコーディングすることができる。したがって、本明細書で論じられる実施形態は、処理および/またはメモリリソースの使用を維持または低減しながら、方法100、コーデックシステム200、エンコーダ300、および/またはデコーダ400と組み合わせて適用される場合、複雑さの低減およびコーディング速度の向上をサポートする。さらに、そのような制約付きコーディングツリーを適用すると、対応するコーディングツリーノードの分割モードオプションの数が減少する。これにより、選択した分割モードをより少ないビットにおいてシグナリングすることができるため、コーディング効率が向上し、コーディング効率は、データの非圧縮表現をデータの圧縮表現と比較するビットレートの削減/圧縮の尺度である。したがって、本明細書で論じられる実施形態は、方法100、コーデックシステム200、エンコーダ300、および/またはデコーダ400と組み合わせて適用される場合、コーディング効率の向上をサポートする。したがって、開示された実施形態は、方法100、コーデックシステム200、エンコーダ300、および/またはデコーダ400を、そのようなシステムに関連付けられる技術的問題を解決することによって、すなわち、そのようなシステムに関連付けられる有益な圧縮をサポートしながら、そのようなシステムのますます増大する複雑さを低減し、速度を増大させることによって、より効率的な方法で動作させる。方法100、コーデックシステム200、エンコーダ300、および/またはデコーダ400と併せて使用するための多段エンコーダ、デコーダ、および関連付けられる方法の特定の例示的な実施形態を、本明細書で以下に説明する。
【００７２】
図5は、CTUをパイプラインブロックと整列するコーディングユニット(CU)に区分する例示的なメカニズム500を示す概略図である。メカニズム500は、ビデオフレームを区分するときに、方法100、コーデックシステム200、エンコーダシステム300、および/またはデコーダシステム400によって採用され得る。
【００７３】
ビデオフレームが受信され、1つまたは複数のスライス540に区分される。スライス540は、同じフレーム内の他の領域とは別にエンコードされる、フレームの空間的に異なる領域である。フレームの領域は、対応する領域に割り当てられたコーディングメカニズムに基づいてスライス540に割り当てられる。一方向インター予測および双方向インター予測のために指定されたフレームの領域は、それぞれ、PおよびBスライス540に割り当てられる。イントラ予測用に指定されたフレームの領域は、Iスライス540に割り当てられる。
【００７４】
スライス540は、CTU541に分割される。CTU541は、完全な制約付きコーディングツリー547の適用を受け入れることができるピクセルの最大のブロックである(たとえば、コーディングツリー547は、一般に、CTU541の境界にまたがらない)。CTU541のサイズは構文によって定義され、たとえば、128ピクセル×128ピクセル、64ピクセル×64ピクセル、32ピクセル×32ピクセルなどであり得る。そのようなサイズは、通常、幅と高さの形式で表される。CTU541はまた、いくつかの例では長方形であり得、また、たとえば128ピクセル×64ピクセルであり得る。そのようなサイズは、通常、幅と高さの形式で表される。したがって、128ピクセル×64ピクセルのCTU541は、高さの2倍の幅になる。CTU541は、ルーマサンプルとクロマサンプルの両方を含む。ルーマサンプルは明度であり、クロマサンプルは色値である。いくつかの文脈では、ルーマサンプルおよびクロマサンプルは、それぞれ、ルーマデータおよびクロマデータとも呼ばれ得る点に留意されたい。
【００７５】
制約付きコーディングツリー547は、CTU541のルーマサンプルおよび/またはクロマサンプルを区分するために適用される。コーディングツリーは、子および/または親の関係によって関連付けられる決定ノードのリストである。各ノードは、対応するサンプルを分割する分割モードに関連付けられている。制約付きコーディングツリー547の第1のノード(たとえば、ルートノード)は、分割モードを適用して、ルーマサンプルおよび/またはクロマサンプルを対応する部分に区分する。子ノードは、制約されたコーディングツリー547の分岐に到達するまで、対応する部分をより小さい部分に細分化するために、さらなる分割モードを再帰的に適用する。利用可能な分割モードがいくつかのコーディングツリーノードに対して制限されているので、コーディングツリーノードは制約付きコーディングツリーノード547である。具体的には、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍である場合(たとえば、128×128ピクセル、および/または2S×2S)、分割モードは、四分木分割、水平二分木分割、および分割なしからなるグループから選択される。したがって、コーディングツリーは、垂直二分木分割、垂直三分木分割、および水平三分木分割のグループからコーディングツリーノードの分割モードを選択することから制約される。さらに、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍(たとえば、128×64ピクセルおよび/または2S×S)である場合、分割モードは、垂直二分木分割および分割なしからなるグループから選択される。したがって、コーディングツリーは、水平二分木、四分木分割、垂直三分木、および水平三分木のグループからコーディングツリーノードの分割モードを選択することから制約される。
【００７６】
TUは、インター予測および/またはイントラ予測の結果として作成された残余に適用される変換ブロックである点に留意されたい。最大TUの高さおよび/または幅は、CU546の残余を変換するために適用することができるTUブロックの最大サイズを示している。CU546をパイプラインブロック549に割り当てるときに最大TUサイズを採用することができる。したがって、パイプラインブロック549の境界と整列するための分割モード選択を決定するために、最大TUサイズを採用することができる。
【００７７】
制約付きコーディングツリー547は、それぞれ、ルーマサンプルをルーマコーディングブロック543に分割し、クロマサンプルをクロマコーディングブロック545に分割する。ルーマコーディングブロック543は、さらなる圧縮のために指定されたルーマサンプルの区分されたグループである。クロマコーディングブロック545は、さらなる圧縮のために指定されたクロマサンプルの区分されたグループである。色値の全範囲を表現するために、ルーマコーディングブロック543ごとに、赤の差分クロマブロックおよび青の差分クロマブロックとして示される2つのクロマコーディングブロック545があり得る。ルーマコーディングブロック543および関連するクロマコーディングブロック545は、CU546に割り当てられ得る。CU546は、インター予測および/またはイントラ予測を介してビデオ圧縮のために転送される関連するピクセルサンプル値のグループである。スライス540がIスライスである場合、CU546は、イントラ予測のために転送される。スライス540がPスライスまたはBスライスである場合、CU546はインター予測のために転送される。
【００７８】
CU546は、CU546をパイプラインブロック549に割り当てることによってビデオ圧縮のために転送される。パイプラインブロック549は、グループとしてエンコードおよび/またはデコードすることができるCTU541の分割部分である。したがって、第1のパイプラインブロック549に割り当てられたCU546は、第2のパイプラインブロック549に割り当てられたCU546に進む前にコーディングされる。パイプラインブロック549は、一般に、フレームのスライス540をコーディングするとき、左から右、および上から下など、あらかじめ定義された順序でコーディングされる。上記のように、パイプラインブロック549は、最大TUサイズに基づいて割り当てることができる。CU546が複数のパイプラインブロック549に存在する場合、たとえば、CU546全体を許可するようにパイプラインブロック549のサイズを変更することによって、CU546をコーディングするために追加の複雑さが追加される。しかしながら、本明細書に記載のルールに従って制約付きコーディングツリー547を適用すると、パイプラインブロック549の境界と整列するCU546が得られる可能性がある。したがって、そのような特別な処理が回避され得る。
【００７９】
図6は、CTUに適用されるような例示的なコーディングツリー600を示しており、これは、それぞれ、制約付きコーディングツリー547およびCTU541と実質的に同様であり得る。したがって、コーディングツリー600は、ビデオフレームを区分するときに、方法100、コーデックシステム200、エンコーダシステム300、デコーダシステム400、および/またはメカニズム500によって採用され得る。
【００８０】
コーディングツリー600は、CTUを、CUを構成するCBに区分するために採用される。コーディングツリー600は、たとえば、図示される例では、ルートノード611、第2の層ノード615、および第3の層ノード617を含む、複数のコーディングツリーノードを含む。ノードの3つの層が示されているが、CTUサイズおよび最小ブロックサイズに応じて任意の数の層が採用され得る点に留意されたい。ノード611、615、および617が黒い点として図6に示されている。本明細書で使用されるコーディングツリー600ノードは、対応するサイズのピクセルのブロックであり、その上で、ブロックを複数のより小さいピクセルのブロックに区分するために、分割モードを適用することができる。示されている例では、ノードは、対応するブロックを4つの小さいブロックに分割する四分木分割モードを採用している。このプロセスは、あらかじめ定義された条件に達するまで続行することができる。そのようなあらかじめ定義された条件は、ブロックの最小ブロックサイズおよび/または信号特性(たとえば、周波数領域におけるブロック内のデータの係数)を含むことができる。たとえば、ルートノード611では、ブロック、この場合はCTUをより小さいブロックに区分するために、分割モードを適用することができる。異なる値を有するピクセルを異なるブロックに分割し、同様の値を有するピクセルを共通のブロックにグループ化するために、対応する区分を有する分割モードが選択される。ルートノード611において区分されたブロックは、第2の層ノード615をもたらす。各ノードにおいて、ブロックは、信号特性およびブロックサイズについてチェックされる。信号特性が、ブロックは比較的類似した値のピクセルを含むことを示している場合、ブロックはそれ以上分割されない場合がある。また、ブロックが最小サイズに達すると、ブロックはそれ以上分割されない場合がある。示されている例では、第2の層ノード615のうちの3つは、対応する区分を有する追加の分割モードを適用することによってさらに分割され、第3の層ノード617をもたらす。この例では、たとえば、ブロック内のサンプルに関連する信号特性(たとえば、周波数領域における係数)が、ブロックは比較的類似した値のピクセルを含むことを示しているため、第2の層ノード615のうちの1つはさらに分割されない。
【００８１】
制約付きコーディングツリーとして使用される場合、コーディングツリー600のノード611、615、および617は、特定の分割モードのみが選択され得るように制約される。選択可能な分割モードは、対応するノードのサイズによって異なる。そのような制約により、結果として得られるCUを、いくつかのコーデック例において使用されるパイプラインブロックの境界に整列させるCTUの区分が生成される。
【００８２】
図7は、制約付きコーディングツリー547および/またはコーディングツリー600などのコーディングツリーにおいて採用される分割モード700の例示的なセットを示す概略図である。したがって、分割モード700のセットは、ビデオフレームを区分するために、方法100、コーデックシステム200、エンコーダシステム300、および/またはデコーダシステム400を動作するときにメカニズム500において採用することができる。分割モード700のセットは、四分木(QT)701、垂直二分木(VBT)703、水平二分木(HBT)705、垂直三分木(VTT)707、および水平三分木(HTT)709を含む。コーディングツリーの各ノードは、分割モード700のセットのうちの1つをサンプルのブロックに適用する。したがって、コーディングツリーにおける親ノードは、2つ、3つ、または4つのブロック(分割モードによって異なる)を作成するために、サンプルのグループに分割モードを適用する。次いで、親ノードによって作成されたブロックをさらに分割するために、子ノードはさらに分割モードを適用する。子ノードの子ノードは、コーディングツリーの終わりに達するまで、そのようなブロックをさらに細分化することができる。特定のノードの分割モードは、イントラ予測および/またはインター予測による効率的な圧縮をサポートするために同様の値を有するサンプルをグループ化するために、分割モード700のセットから選択される(たとえば、エンコーダにおけるRDOプロセスによって)。デコーダにおいて、コーディングツリー、サブツリー、および分割モードをビットストリームから決定することができ、たとえば、スライス、CTU、および/または対応するコーディングユニットのパラメータセットに構文で記憶される。
【００８３】
QT701は、コーディングブロックを4つの等しいサブブロックに分割する分割モードである。したがって、QT701は、ルーマサンプルのブロックを、同じサイズのルーマサンプルの4つのブロックに分割する。さらに、QT701は、クロマサンプルのブロックを、同じサイズのクロマサンプルの4つのより小さいブロックに分割する。
【００８４】
VBT703は、コーディングブロックを同じサイズの2つのサブブロックに分割する分割モードである。そのようなサブブロックは、元のコーディングブロックと同じ高さ、および半分の幅を有する。したがって、VBT703は、ルーマサンプルの親ブロックを、ルーマサンプルの親ブロックと同じ高さ、および半分の幅を有する同じサイズのルーマサンプルの2つの子ブロックに分割する。さらに、VBT703は、クロマサンプルの親ブロックを、クロマサンプルの親ブロックと同じ高さ、および半分の幅を有する同じサイズのクロマサンプルの2つの子ブロックに分割する。
【００８５】
HBT705は、コーディングブロックを同じサイズの2つのサブブロックに分割する分割モードである。そのようなサブブロックは、元のコーディングブロックと同じ幅、および半分の高さを有する。したがって、HBT705は、ルーマサンプルの親ブロックを、ルーマサンプルの親ブロックと同じ幅、および半分の高さを有する同じサイズのルーマサンプルの2つの子ブロックに分割する。さらに、HBT705は、クロマサンプルの親ブロックを、クロマサンプルの親ブロックと同じ幅、および半分の高さを有する同じサイズのクロマサンプルの2つの子ブロックに分割する。
【００８６】
VTT707は、コーディングブロックを3つのサブブロックに分割する分割モードである。そのようなサブブロックは、元のコーディングブロックと同じ高さを有する。サブブロックのうちの1つは元のコーディングブロックの半分の幅を有し、サブブロックのうちの2つは元のコーディングブロックの4分の1の幅を有する。したがって、VTT707は、ルーマサンプルの親ブロックを、ルーマサンプルの親ブロックと同じ高さを有し、ルーマサンプルの親ブロックの4分の1、2分の1、および4分の1の幅を有するルーマサンプルの3つの子ブロックにそれぞれ分割する。さらに、VTT707は、クロマサンプルの親ブロックを、クロマサンプルの親ブロックと同じ高さを有し、クロマサンプルの親ブロックの4分の1、2分の1、および4分の1の幅を有するクロマサンプルの3つの子ブロックにそれぞれ分割する。
【００８７】
HTT709は、コーディングブロックを3つのサブブロックに分割する分割モードである。そのようなサブブロックは、元のコーディングブロックと同じ幅を有する。サブブロックのうちの1つは、元のコーディングブロックの半分の高さを有し、サブブロックのうちの2つは、元のコーディングブロックの4分の1の高さを有する。したがって、HTT709は、ルーマサンプルの親ブロックを、ルーマサンプルの親ブロックと同じ幅を有し、ルーマサンプルの親ブロックの4分の1、2分の1、および4分の1の高さを有する、ルーマサンプルの3つの子ブロックにそれぞれ分割する。したがって、HTT709は、クロマサンプルの親ブロックを、クロマサンプルの親ブロックと同じ幅を有し、クロマサンプルの親ブロックの4分の1、2分の1、および4分の1の高さを有する、クロマサンプルの3つの子ブロックにそれぞれ分割する。
【００８８】
図8および図9は、コーディングツリーノードを区分するために分割モードを選択するときに、制約付きコーディングツリーによって適用される例示的な制約を示す概略図800および900である。具体的には、図800において、コーディングツリーノード810は、制約付きコーディングツリー547および/またはコーディングツリー600などのコーディングツリーの適用中に、分割モード700などの分割モードによって分割されるべきである。したがって、概略図800は、ビデオフレームを区分するために方法100、コーデックシステム200、エンコーダシステム300、および/またはデコーダシステム400を動作するときに、メカニズム500において採用することができる。
【００８９】
コーディングツリーノード810は、CTU全体またはCTUの分割から生じる子ノードであり得る。コーディングツリーノード810は2S×2Sノードであり、これは、コーディングツリーノード810が最大TUの高さの少なくとも2倍であり、最大TUの幅の2倍であることを示している。本明細書に記載の制約によれば、コーディングツリーノード810の寸法により、コーディングツリーノード810は、QT分割801、HBT分割805、または分割なし802によってのみ分割することができる。QT分割801およびHBT分割805は、それぞれQT701およびHBT705と実質的に同様である。分割なし802は、コーディングツリーノード810がそれ以上分割されず、CUになることを示している。
【００９０】
具体的には、この例では、四分木三分木コーディングツリー構造が使用され得る。最大CTUサイズは128×128であり得、最大TUサイズは64×64であり得る。最大二分木サイズ(二分木分割および三分木分割を使用できる最大サイズのノードを示す)は、最大128×128に設定することができる。この例では、2S×2Sコーディングツリーノード810は、128×128ノード(これは、CTUである)であり得る。この場合の三分木分割からの子ノードは複数のS×Sパイプラインブロックによってカバーされ得るので、水平三分木分割および垂直三分木分割は、このコーディングツリーノード810に対して許可されない。さらに、そのような分割は、そのようなシステムによって一般的に使用される四分木ノード処理順序とは異なる順序でS×Sパイプラインブロックを処理させる可能性があるため、このコーディングツリーノード810に対して垂直二分木分割も許可されない。したがって、ノードは、四分木分割または水平二分木分割によってのみ分割することができる。
【００９１】
したがって、コーディングツリーノード810の分割モードは、フラグ/ビンのペアによってシグナリングすることができる。具体的には、デコーダは、ビン(たとえば、qt_split_cu_flag)を解析して、128×128のコーディングツリーノード810がQT分割801によって分割されているかどうかを決定することができる。128×128のコーディングツリーノード810がQT分割801によって分割されている場合、4つの64×64の子ノードが生成される。128×128のコーディングツリーノード810がQT分割801によって分割されていない場合、コーディングツリーノード810が分割されず、結果として分割802が発生しないかどうか、またはHBT分割805によって分割されるかどうかを決定するために、第2のビン(たとえば、mtt_split_cu_flag)がビットストリームから解析される。第2のビンが、コーディングツリーノード810が分割されることを示している場合、HBT分割805が推測され、2つの128×64のノードが水平バイナリ分割によって生成される。HBT分割805を分割しない場合は、128×128のCUが形成される。CUは、4つの64×64のTUと128×128の予測ユニット(PU)を備えていると推測される。128×128のPUは4つの64×64のPUに分割することができ、4つのTUおよび対応するPUは4つの64×64のパイプラインブロックを形成する。次いで、パイプラインブロックは、左上のTUが最初に処理され、次に右上のTU、左下のTU、右下のTUが処理されるなど、四分木ノードの処理順序で処理することができる。
【００９２】
図900では、コーディングツリーノード910は、制約付きコーディングツリー547および/またはコーディングツリー600などのコーディングツリーの適用中に、分割モード700などの分割モードによって分割される。したがって、概略図900は、ビデオフレームを区分するために、方法100、コーデックシステム200、エンコーダシステム300、および/またはデコーダシステム400を動作するときに、メカニズム500に採用することができる。
【００９３】
コーディングツリーノード910は、CTU全体、またはCTUの分割から生じる子ノードであり得る。コーディングツリーノード910は2S×Sのノードであり、これは、コーディングツリーノード910の高さが最大TUの高さを超えず、コーディングツリーノード910の幅が最大TUの幅の2倍であることを示す。本明細書に記載の制約によれば、コーディングツリーノード910の寸法により、コーディングツリーノード910は、VBT分割903、または分割なし902によってのみ分割することができる。VBT分割903は、VBT703と実質的に同様である。分割なし902は、コーディングツリーノード910がそれ以上分割されず、CUになることを示す。
【００９４】
たとえば、2S×Sのコーディングツリーノード910は、128×64のノード(これは、CTUである)であり得る。128×64のコーディングツリーノード910は、64×64のブロックパイプライン構造を破壊しないために、水平三分木分割、垂直三分木分割、または水平二分木分割を使用することができない。128×64のコーディングツリーノード910もまた、四分木分割によって分割することができない。これは、四分木-バイナリ三分木構造では、二分木分割または三分木分割によって生成されたノードを四分木分割によって分割することはできないためである。この場合、128×64のコーディングツリーノード910に許可される唯一の分割は、VBT分割903である。したがって、分割方向情報(たとえば、mtt_split_cu_vertical_flag)および分割タイプ情報(たとえば、mtt_split_cu_binary_flag)は、コーディングツリーノード910が分割されている場合はシグナリングされない可能性がある。また、128×64のコーディングツリーノード910から区分された64×64のノードは、三分木分割または二分木分割のいずれかによって分割することが許可される点に留意されたい。
【００９５】
図10は、エンコード中に、CTU541などのCTUのコーディングツリーノード810などのコーディングツリーノードを区分するために、制約付きコーディングツリー547および/またはコーディングツリー600などの制約付きコーディングツリーを適用する例示的な方法1000のフローチャートである。方法1000は、分割モード700のセットを採用することによってメカニズム500を実装するために採用され得る。方法1000は、パイプラインブロックにおいて使用するためにビデオフレームからのサンプルをCUに区分するために、方法100、コーデックシステム200、および/またはエンコーダシステム300において採用することができる。
【００９６】
ステップ1001において、画像は、エンコーダにおいてスライスに区分される。少なくとも1つのCTUを作成するために、スライスはさらに処理される。さらに、CTUが少なくとも1つのコーディングツリーノードを含むように、CTUのコーディングツリーが決定される。
【００９７】
ステップ1003において、エンコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定する。具体的には、エンコーダは、コーディングツリーノードが、コーディングツリーノード810などの2S×2Sのノード(たとえば、128×128ピクセル)であると決定する。
【００９８】
ステップ1005において、エンコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを選択する。具体的には、分割モードは、四分木分割、水平二分木分割、および分割なしを含む(たとえば、実質的にそれらからなる)グループから選択される。たとえば、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、分割モードは、垂直二分木分割、垂直三分木分割、および水平三分木分割から選択されない。ステップ1007において、エンコーダは、1つまたは複数のCUを作成するために分割モードをコーディングツリーノードに適用し、CUをビットストリームにエンコードする。
【００９９】
ステップ1009において、エンコーダは、ステップ1005において選択されたように、ビットストリームにおいて、コーディングツリーノードの分割モードを通知することができる。たとえば、エンコーダは、分割モードが四分木分割であるかどうかを示す第1のフラグをエンコードすることと、分割モードが水平二分木分割であるか、分割なしであるかを示す第2のフラグをエンコードすることとを行うことができる。たとえば、第1のフラグをqt_split_cu_flagにし、第2のフラグをmtt_split_cu_flagにすることができる。ステップ1009は、例に応じて、ステップ1007の前または後に発生し得る点に留意されたい。ステップ1011において、エンコーダは、ビデオストリームへの再構築およびユーザへの表示のために、ビットストリームをデコーダに向けて送信する。
【０１００】
図11は、エンコード中に、CTU541などのCTUのコーディングツリーノード910などのコーディングツリーノードを区分するために、制約付きコーディングツリー547および/またはコーディングツリー600などの制約付きコーディングツリーを適用する別の例示的な方法1100のフローチャートである。方法1100は、分割モード700のセットを採用することによってメカニズム500を実装するために採用され得る。方法1100は、パイプラインブロックにおいて使用するためにビデオフレームからのサンプルをCUに区分するために、方法100、コーデックシステム200、および/またはエンコーダシステム300において採用することができる。
【０１０１】
ステップ1101において、画像は、エンコーダにおいてスライスに区分される。少なくとも1つのCTUを作成するために、スライスはさらに処理される。さらに、CTUが少なくとも1つのコーディングツリーノードを含むように、CTUのコーディングツリーが決定される。
【０１０２】
ステップ1103において、エンコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定する。具体的には、エンコーダは、コーディングツリーノードが、コーディングツリーノード910などの2S×Sのノード(たとえば、128×64ピクセル)であると決定する。
【０１０３】
ステップ1105において、エンコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを選択する。具体的には、分割モードは、垂直二分木分割、および分割なしを含む(たとえば、実質的にそれらからなる)グループから選択される。たとえば、分割モードは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、水平二分木、四分木分割、垂直三分木、および水平三分木から選択されない。ステップ1007において、エンコーダは、1つまたは複数のCUを作成するために分割モードをコーディングツリーノードに適用し、CUをビットストリームにエンコードする。
【０１０４】
ステップ1109において、エンコーダは、ステップ1105において選択されたように、ビットストリームにおいて、コーディングツリーノードの分割モードを通知することができる。たとえば、エンコーダは、分割モードが垂直二分木分割であるか分割なしであるかを示す第1のフラグをエンコードすることによって、ビットストリーム内のコーディングツリーノードの分割モードをシグナリングすることができる。ステップ1109は、例に応じて、ステップ1107の前または後に発生し得る点に留意されたい。ステップ1111において、エンコーダは、ビデオストリームへの再構築およびユーザへの表示のために、ビットストリームをデコーダに向けて送信する。
【０１０５】
図12は、デコード中に、CTU541などのCTUのコーディングツリーノード810などのコーディングツリーノードを区分するために、制約付きコーディングツリー547および/またはコーディングツリー600などの制約付きコーディングツリーを適用する例示的な方法1200のフローチャートである。方法1200は、分割モード700のセットを採用することによってメカニズム500を実装するために採用され得る。方法1200は、パイプラインブロックにおいて使用するためにビデオフレームからのサンプルをCUに区分するために、方法100、コーデックシステム200、および/またはデコーダシステム400において採用することができる。
【０１０６】
ステップ1201において、画像データを含むビットストリームがデコーダにおいて受信される。デコーダは、画像データをあらかじめ定められたサイズのスライスに区分することができる。あらかじめ定められたアルゴリズム、スライスサイズなどに従って少なくとも1つのCTUを作成するために、スライスはさらに処理される。さらに、CTUが少なくとも1つのコーディングツリーノードを含むように、コーディングツリーは、たとえばビットストリームからCTUに対して決定される。
【０１０７】
ステップ1203において、デコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定する。具体的には、デコーダは、コーディングツリーノードが、コーディングツリーノード810などの2S×2Sのノード(たとえば、128×128ピクセル)であると決定する。
【０１０８】
ステップ1205において、デコーダは、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するために、ビットストリームを解析する。具体的には、分割モードは、四分木分割、水平二分木分割、および分割なしを含む(たとえば、実質的にそれらからなる)グループから選択される。たとえば、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、分割モードは、垂直二分木分割、垂直三分木分割、および水平三分木分割から選択されない。たとえば、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するステップは、分割モードが四分木分割であるかどうかを決定するために第1のフラグを解析するステップを含み得る。コーディングツリーノードの分割モードを決定するためにビットストリームを解析するステップは、分割モードが水平二分木分割であるか分割なしであるかを決定するために第2のフラグを解析するステップをさらに含み得る。いくつかの例では、第1のフラグはqt_split_cu_flagであり、第2のフラグはmtt_split_cu_flagである。
【０１０９】
ステップ1207において、デコーダは、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用する。ステップ1209において、デコーダは、画像を作成するために、ビットストリームに基づいてCUをデコードする。次いで、デコーダは、ステップ1211において、画像をディスプレイに転送することができる。
【０１１０】
図13は、デコード中に、CTU541などのCTUのコーディングツリーノード910などのコーディングツリーノードを区分するために、制約付きコーディングツリー547および/またはコーディングツリー600などの制約付きコーディングツリーを適用する別の例示的な方法1300のフローチャートである。方法1300は、分割モード700のセットを採用することによってメカニズム500を実装するために採用され得る。方法1300は、パイプラインブロックにおいて使用するためにビデオフレームからのサンプルをCUに区分するために、方法100、コーデックシステム200、および/またはデコーダシステム400において採用することができる。
【０１１１】
ステップ1301において、画像データを含むビットストリームがデコーダにおいて受信される。デコーダは、画像データをあらかじめ定められたサイズのスライスに区分することができる。あらかじめ定められたアルゴリズム、スライスサイズなどに従って少なくとも1つのCTUを作成するために、スライスはさらに処理される。さらに、CTUが少なくとも1つのコーディングツリーノードを含むように、コーディングツリーは、たとえばビットストリームからCTUに対して決定される。
【０１１２】
ステップ1303において、デコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定する。具体的には、デコーダは、コーディングツリーノードが、コーディングツリーノード910などの2S×Sのノード(たとえば、128×64ピクセル)であると決定する。
【０１１３】
ステップ1305において、デコーダは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するために、ビットストリームを解析する。具体的には、分割モードは、垂直二分木分割、および分割なしを含む(たとえば、実質的にそれらからなる)グループから選択される。たとえば、分割モードは、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、水平二分木分割、四分木分割、垂直三分木分割、および水平三分木分割から選択されない。たとえば、コーディングツリーノードの分割モードを決定するためにビットストリームの解析するステップは、分割モードが垂直二分木分割であるか分割なしであるかを決定するために第1のフラグを解析するステップを含み得る。
【０１１４】
ステップ1307において、デコーダは、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用する。ステップ1309において、デコーダは、画像を作成するために、ビットストリームに基づいてCUをデコードする。次いで、デコーダは、ステップ1311において、画像をディスプレイに転送することができる。
【０１１５】
図14は、例示的なビデオコーディングデバイス1400の概略図である。ビデオコーディングデバイス1400は、本明細書に記載の開示された例/実施形態を実装するために適している。ビデオコーディングデバイス1400は、ネットワークを介してアップストリームおよび/またはダウンストリームでデータを通信するための送信機および/または受信機を含む、ダウンストリームポート1420、アップストリームポート1450、および/またはトランシーバユニット(Tx/Rx)1410を備える。ビデオコーディングデバイス1400はまた、データを処理するための論理ユニットおよび/または中央処理ユニット(CPU)と、データを記憶するためのメモリ1432とを含むプロセッサ1430を含む。ビデオコーディングデバイス1400はまた、光またはワイヤレス通信ネットワークを介するデータの通信のためにアップストリームポート1450および/またはダウンストリームポート1420に結合された、光から電気(OE)コンポーネント、電気から光(EO)コンポーネント、および/またはワイヤレス通信コンポーネントを備え得る。ビデオコーディングデバイス1400はまた、ユーザとの間でデータを通信するための入力および/または出力(I/O)デバイス1460を含み得る。I/Oデバイス1460は、ビデオデータを表示するためのディスプレイ、オーディオデータを出力するためのスピーカなどのような出力デバイスを含み得る。I/Oデバイス1460はまた、キーボード、マウス、トラックボールなどの入力デバイス、および/またはそのような出力デバイスと相互作用するための対応するインターフェースを含み得る。
【０１１６】
プロセッサ1430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ1430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ1430は、ダウンストリームポート1420、Tx/Rx1410、アップストリームポート1450、メモリ1432、および/またはI/Oデバイス1460と通信している。プロセッサ1430は、コーディングモジュール1414を備える。コーディングモジュール1414は、本明細書に記載の開示された実施形態(たとえば、エンコーダ、デコーダ、コーデック、方法、または他のメカニズム)を実装する。したがって、コーディングモジュール1414は、ビデオコーディングデバイス1400の機能を改善するだけでなく、ビデオコーディング分野に固有の問題に対処する。さらに、コーディングモジュール1414は、ビデオコーディングデバイス1400の異なる状態への変換をもたらす。あるいは、コーディングモジュール1414は、メモリ1432に記憶され、プロセッサ1430によって(たとえば、非一時的媒体に記憶されたコンピュータプログラム製品として)実行される命令として実装することができる。
【０１１７】
メモリ1432は、ディスク、テープドライブ、ソリッドステートドライブ、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、三元連想メモリ(TCAM)、スタティックランダムアクセスメモリ(SRAM)などの1つまたは複数のメモリタイプを備える。メモリ1432は、そのようなプログラムが実行のために選択されたときにプログラムを記憶し、プログラム実行中に読み取られる命令およびデータを記憶するために、オーバーフローデータストレージデバイスとして使用され得る。
【０１１８】
図15は、CTUのコーディングツリーノードを区分するために、制約付きコーディングツリーを適用するための例示的なシステム1500の概略図である。システム1500は、動作方法100、メカニズム500、方法1000、方法1100、方法1200、方法1300、コーデックシステム200、エンコーダ300、および/またはデコーダ400を実装することができるビデオエンコーダ1502およびビデオデコーダ1510を含む。さらに、ビデオエンコーダ1502およびビデオデコーダ1510は、分割モード700のセットを採用することによって、制約付きコーディングツリー547および/またはコーディングツリー600を用いて区分を実行することができる。具体的には、ビデオエンコーダ1502およびビデオデコーダ1510は、それぞれ図800および900におけるコーディングツリーノード810および/または910への適用のために制約されているコーディングツリーを適用することができる。
【０１１９】
一例では、ビデオエンコーダ1502は、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために画像を区分するための区分モジュール1501を含む。ビデオエンコーダ1502はまた、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定モジュール1503をさらに備える。ビデオエンコーダ1502はまた、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であり、水平方向の二分木分割であり、分割なしであるという決定に基づいて、コーディングツリーノードの分割モードを選択するための分割モード選択モジュール1505を備える。ビデオエンコーダ1502はまた、1つまたは複数のCUを作成するために分割モードをコーディングツリーノードに適用するための分割モード適用モジュール1507を備える。ビデオエンコーダ1502はまた、CUをビットストリームにエンコードするためのエンコーディングモジュール1508を備える。ビデオエンコーダ1502はまた、ビットストリームをデコーダに向けて送信するための送信モジュール1509をさらに備える。
【０１２０】
別の例では、ビデオエンコーダ1502は、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために画像を区分するための区分モジュール1501を含む。ビデオエンコーダ1502はまた、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定モジュール1503を備える。ビデオエンコーダ1502はまた、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを選択するための分割モード選択モジュール1505であって、分割モードが、垂直二分木分割と分割なしから選択される、分割モード選択モジュールをさらに備える。ビデオエンコーダ1502はまた、1つまたは複数のCUを作成するために分割モードをコーディングツリーノードに適用するための分割モード適用モジュール1507を備える。ビデオエンコーダ1502はまた、CUをビットストリームにエンコードするためのエンコーディングモジュール1508を備える。ビデオエンコーダ1502はまた、ビットストリームをデコーダに向けて送信するための送信モジュール1509をさらに備える。
【０１２１】
一例では、ビデオデコーダ1510は、画像データを含むビットストリームを受信するための受信モジュール1516を含む。ビデオデコーダ1510は、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために、画像データを区分するための区分モジュール1511をさらに含む。ビデオデコーダ1510はまた、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定モジュール1513をさらに含む。ビデオデコーダ1510は、コーディングツリーノードの高さが最大TUの高さの2倍であり、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するための分割モード決定モジュール1515であって、分割モードが、四分木分割、水平二分木分割、および分割なしから選択される、分割モード決定モジュール1515をさらに含む。ビデオデコーダ1510は、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用するための分割モード適用モジュール1517をさらに含む。ビデオデコーダ1510は、画像を作成するためにビットストリームに基づいてCUをデコードするためのデコーディングモジュール1518をさらに含む。ビデオデコーダ1510は、画像をディスプレイに向けて転送するためのディスプレイモジュール1519をさらに含む。
【０１２２】
別の例では、ビデオデコーダ1510は、画像データを含むビットストリームを受信するための受信モジュール1516を含む。ビデオデコーダ1510は、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのCTUを作成するために、画像データを区分するための区分モジュール1511をさらに含む。ビデオデコーダ1510はまた、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であることを決定するためのサイズ決定モジュール1513をさらに含む。ビデオデコーダ1510は、コーディングツリーノードの高さが最大TUの高さを超えず、コーディングツリーノードの幅が最大TUの幅の2倍であるという決定に基づいて、コーディングツリーノードの分割モードを決定するためにビットストリームを解析するための分割モード決定モジュール1515であって、分割モードが、垂直二分木分割と分割なしから選択される、分割モード決定モジュールをさらに含む。ビデオデコーダ1510は、1つまたは複数のCUを取得するために、分割モードをコーディングツリーノードに適用するための分割モード適用モジュール1517をさらに含む。ビデオデコーダ1510は、画像を作成するためにビットストリームに基づいてCUをデコードするためのデコーディングモジュール1518をさらに含む。ビデオデコーダ1510は、画像をディスプレイに向けて転送するためのディスプレイモジュール1519をさらに含む。
【０１２３】
第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間の線、トレース、または別の媒体以外に介在するコンポーネントがない場合、第2のコンポーネントに直接結合される。第1のコンポーネントと第2のコンポーネントとの間の線、トレース、または別の媒体以外の介在するコンポーネントがある場合、第1のコンポーネントは第2のコンポーネントに間接的に結合される。「結合」という用語とその変形は、直接結合と間接結合の両方を含む。「約」という用語の使用は、特に明記しない限り、後続の数値の±10%を含む範囲を意味する。
【０１２４】
本開示ではいくつかの実施形態が提供されているが、開示されたシステムおよび方法は、本開示の趣旨または範囲から逸脱することなしに、他の多くの特定の形態で具体化され得ることが理解され得る。本実施例は、例示的であり、限定的ではないと見なされるべきであり、意図は、本明細書に与えられた詳細に限定されるべきではない。たとえば、様々な要素またはコンポーネントを別のシステムに組み合わせられてもよく、統合されてもよく、または特定の機能が省略されてもよく、実装されなくてもよい。
【０１２５】
さらに、離散的または別個として様々な実施形態で説明および図示される技法、システム、サブシステム、および方法は、本開示の範囲から逸脱することなしに、他のシステム、コンポーネント、技法、または方法と組み合わせられてもよく、統合されてもよい。変化、置換、および変更の他の例は、当業者によって確認可能であり、本明細書に開示される趣旨および範囲から逸脱することなしに行われ得る。
【符号の説明】
【０１２６】
100  動作方法
200  コーデックシステム
201  区分されたビデオ信号
211  一般的なコーダ制御コンポーネント
213  変換スケーリングおよび量子化コンポーネント
215  イントラピクチャ推定コンポーネント
217  イントラピクチャ予測コンポーネント
219  動き補償コンポーネント
221  動き推定コンポーネント
223  デコードされたピクチャバッファコンポーネント
225  インループフィルタコンポーネント
227  フィルタ制御分析コンポーネント
229  スケーリングおよび逆変換コンポーネント
231  ヘッダフォーマッティングおよびコンテキスト適応バイナリ算術コーディング(CABAC)コンポーネント
300  ビデオエンコーダ
301  区分されたビデオ信号
313  変換および量子化コンポーネント
317  イントラピクチャ予測コンポーネント
321  動き補償コンポーネント
323  デコードされたピクチャバッファコンポーネント
325  インループフィルタコンポーネント
329  逆変換および量子化コンポーネント
331  エントロピコーディングコンポーネント
400  ビデオデコーダ
417  イントラピクチャ予測コンポーネント
421  動き補償コンポーネント
423  デコードされたピクチャバッファコンポーネント
425  インループフィルタコンポーネント
429  逆変換および量子化コンポーネント
433  エントロピデコーディングコンポーネント
500  メカニズム
540  スライス
541  CTU
543  ルーマコーディングブロック
545  クロマコーディングブロック
546  CU
547  制約付きコーディングツリー
549  パイプラインブロック
600  コーディングツリー
611  ルートノード
615  第2の層ノード
617  第3の層ノード
700  分割モード
701  四分木(QT)
703  垂直二分木(VBT)
705  水平二分木(HBT)
707  垂直三分木(VTT)
709  水平三分木(HTT)
800  概略図
801  QT分割
802  分割なし
805  HBT分割
810  コーディングツリーノード
900  概略図
902  分割なし
903  VBT分割
910  コーディングツリーノード
1000,1100,1200,1300  方法
1400  ビデオコーディングデバイス
1410  トランシーバユニット(Tx/Rx)
1414  コーディングモジュール
1420  ダウンストリームポート
1430  プロセッサ
1432  メモリ
1450  アップストリームポート
1460  I/Oデバイス
1500  システム
1501  区分モジュール
1502  ビデオエンコーダ
1503  サイズ決定モジュール
1505  分割モード選択モジュール
1507  分割モード適用モジュール
1508  エンコーディングモジュール
1509  送信モジュール
1510  ビデオデコーダ
1511  区分モジュール
1513  サイズ決定モジュール
1515  分割モード決定モジュール
1516  受信モジュール
1517  分割モード適用モジュール
1518  デコーディングモジュール
1519  ディスプレイモジュール
【図１】
2021532643.tif 000003
【図２】
2021532643.tif 000004
【図３】
2021532643.tif 000005
【図４】
2021532643.tif 000006
【図５】
2021532643.tif 000007
【図６】
2021532643.tif 000008
【図７】
2021532643.tif 000009
【図８】
2021532643.tif 000010
【図９】
2021532643.tif 000011
【図１０】
2021532643.tif 000012
【図１１】
2021532643.tif 000013
【図１２】
2021532643.tif 000014
【図１３】
2021532643.tif 000015
【図１４】
2021532643.tif 000016
【図１５】
2021532643.tif 000017
【手続補正書】
【提出日】令和3年3月18日(2021.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
エンコーダに実装されたエンコーディング方法であって、
前記エンコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を取得するために画像を区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが64より大きいか、または、前記コーディングツリーノードの幅が64より大きいかどうかを決定することによって、前記コーディングツリーノードの三分木分割が許可されるかどうかを決定するステップであって、前記コーディングツリーノードの高さが64より大きい、または前記コーディングツリーノードの幅が64より大きい場合、前記コーディングツリーノードの前記三分木分割が許可されない、ステップと、
前記プロセッサによって、前記コーディングツリーノードの前記三分木分割が許可されるかどうかの前記決定に基づいて、前記コーディングツリーノードの分割モードを決定するステップと、
前記プロセッサによって、1つまたは複数のコーディングユニット(CU)を取得するために、前記分割モードを前記コーディングツリーノードに適用するステップと、
前記プロセッサによって、前記CUをビットストリームにエンコードするステップと、
を備える、エンコーディング方法。
【請求項２】
前記エンコーダの送信機によって、デコーダに向けて前記ビットストリームを送信するステップをさらに備える、請求項1に記載の方法。
【請求項３】
前記コーディングツリーノードの前記三分木分割が許可されないと決定する場合、前記分割モードが四分木分割であるかどうかを示す第1のフラグと、前記分割モードが水平二分木分割であるかを示す第2のフラグをエンコードすることによって、前記ビットストリーム内の前記コーディングツリーノードの前記分割モードをシグナリングするステップをさらに備える、請求項1または2に記載の方法。
【請求項４】
エンコーダに実装されたエンコーディング方法であって、
前記エンコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を取得するために画像を区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが64を超えず、前記コーディングツリーノードの幅が64より大きいかどうかを決定するステップと、
前記プロセッサによって、前記コーディングツリーノードの前記高さが64を超えず、前記コーディングツリーノードの前記幅が64より大きいと決定される場合、前記コーディングツリーノードを分割するかどうかを決定するステップと、
前記プロセッサによって、前記コーディングツリーノードを分割すると決定する場合に、1つまたは複数のコーディングユニット(CU)を取得するために、垂直二分木分割を前記コーディングツリーノードに適用するステップと、
前記プロセッサによって、前記CUをビットストリームにエンコードするステップと、
を備える、エンコーディング方法。
【請求項５】
前記エンコーダの送信機によって、前記ビットストリームをデコーダに向けて送信するステップと、
をさらに備える、請求項4に記載の方法。
【請求項６】
前記コーディングツリーノードの前記高さが64を超えず、前記コーディングツリーノードの前記幅が64より大きいと決定される場合、前記コーディングツリーノードに対して水平二分木分割、四分木分割、垂直三分木分割、および水平三分木分割が許可されない、請求項4または5に記載の方法。
【請求項７】
前記コーディングツリーノードが分割されるか否かを示す第1のフラグをエンコードすることによって、前記ビットストリーム内の前記コーディングツリーノードの分割モードをシグナリングするステップをさらに備える、請求項4から6のいずれか一項に記載の方法。
【請求項８】
プロセッサと、前記プロセッサに結合された送信機とを備え、前記プロセッサおよび前記送信機が、請求項1から7のいずれか一項に記載の方法を実行するように構成された、ビデオコーディングデバイス。
【請求項９】
ビデオコーディングデバイスによって使用するためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体であって、前記コンピュータプログラム製品が、プロセッサによって実行されたときに前記ビデオコーディングデバイスに請求項1から7のいずれか一項に記載の方法を実行させる、前記非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を備える、非一時的コンピュータ可読媒体。
【請求項１０】
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、画像を区分するための区分ユニットと、
前記コーディングツリーノードの高さが64より大きいか、または、前記コーディングツリーノードの幅が64より大きいかどうかを決定することによって、前記コーディングツリーノードの三分木分割が許可されるかどうかを決定することであって、前記コーディングツリーノードの高さが64より大きい、または前記コーディングツリーノードの幅が64より大きい場合、前記コーディングツリーノードの前記三分木分割が許可されない、ことと、前記コーディングツリーノードの前記三分木分割が許可されるかどうかの前記決定に基づいて、前記コーディングツリーノードの分割モードを決定することとを行うためのサイズ決定ユニットと、
1つまたは複数のコーディングユニット(CU)を取得するために前記分割モードを前記コーディングツリーノードに適用するための分割モード適用ユニットと、
前記CUをビットストリームにエンコードするためのエンコーディングユニットと、
を備える、エンコーダ。
【請求項１１】
前記エンコーダが、前記ビットストリームをデコーダに向けて送信するための送信ユニットをさらに備える、請求項10に記載のエンコーダ。
【請求項１２】
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を作成するために、画像を区分するための区分ユニットと、
前記コーディングツリーノードの高さが64を超えず、前記コーディングツリーノードの幅が64より大きいかどうかを決定することと、前記コーディングツリーノードの前記高さが64を超えず、前記コーディングツリーノードの前記幅が64より大きいと決定される場合、前記コーディングツリーノードを分割するかどうかを決定することとを行うためのサイズ決定ユニットと、
前記コーディングツリーノードを分割すると決定する場合に、1つまたは複数のコーディングユニット(CU)を取得するために、垂直二分木分割を前記コーディングツリーノードに適用するための分割モード適用ユニットと、
前記CUをビットストリームにエンコードするためのエンコーディングユニットと、
を備える、エンコーダ。
【請求項１３】
前記エンコーダが、前記ビットストリームをデコーダに向けて送信するための送信ユニットをさらに備える、請求項12に記載のエンコーダ。
【請求項１４】
デコーダに実装されたデコーディング方法であって、
前記デコーダの受信機によって、画像の画像データを含むビットストリームを受信するステップと、
前記デコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を取得するために前記画像を区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが64より大きいか、または、前記コーディングツリーノードの幅が64より大きいかどうかを決定することによって、前記コーディングツリーノードの三分木分割が許可されないかどうかを決定するステップであって、前記コーディングツリーノードの高さが64より大きい、または前記コーディングツリーノードの幅が64より大きい場合、前記コーディングツリーノードの前記三分木分割が許可されない、ステップと、
前記プロセッサによって、前記コーディングツリーノードの前記三分木分割が許可されるかどうかの前記決定に基づいて、前記コーディングツリーノードの分割モードを決定するために前記ビットストリームを解析するステップと、
前記プロセッサによって、1つまたは複数のコーディングユニット(CU)を取得するために、前記分割モードを前記コーディングツリーノードに適用するステップと、
前記プロセッサによって、前記画像の再構築された画像を生成するために、前記ビットストリームに基づいて、前記CUの再構築されたブロックを生成するステップと、
を備える、デコーディング方法。
【請求項１５】
前記プロセッサによって、前記画像をディスプレイに向けて転送するステップをさらに備える、請求項14に記載の方法。
【請求項１６】
前記コーディングツリーノードの前記三分木分割が許可されないと決定する場合、前記コーディングツリーノードの前記分割モードを決定するために前記ビットストリームを解析するステップが、前記分割モードが四分木分割であるかどうかを決定するために第1のフラグを解析するステップを含む、請求項14または15に記載の方法。
【請求項１７】
前記第1のフラグが、前記分割モードは前記四分木分割ではないことを示している場合、前記コーディングツリーノードの前記分割モードを決定するために前記ビットストリームを解析するステップが、前記分割モードが水平二分木分割であるかを決定するために第2のフラグを解析するステップをさらに含む、請求項16に記載の方法。
【請求項１８】
デコーダに実装されたデコーディング方法であって、
前記デコーダの受信機によって、画像の画像データを含むビットストリームを受信するステップと、
前記デコーダのプロセッサによって、少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を取得するために前記画像を区分するステップと、
前記プロセッサによって、前記コーディングツリーノードの高さが64を超えず、前記コーディングツリーノードの幅が64より大きいかどうかを決定するステップと、
前記プロセッサによって、前記コーディングツリーノードが分割されている場合に1つまたは複数のコーディングユニット(CU)を取得するために、前記コーディングツリーノードに垂直二分木分割を適用し、前記コーディングツリーノードの前記高さが64を超えず、前記コーディングツリーノードの前記幅が64より大きいと決定するステップと、
前記プロセッサによって、前記画像の再構築された画像を生成するために、前記ビットストリームに基づいて、前記CUの再構築されたブロックを生成するステップと、
を備える、デコーディング方法。
【請求項１９】
前記プロセッサによって、前記画像をディスプレイに向けて転送するステップをさらに備える、請求項18に記載の方法。
【請求項２０】
前記コーディングツリーノードの前記高さが64を超えず、前記コーディングツリーノードの前記幅が64より大きいと決定される場合、前記コーディングツリーノードに対して水平二分木分割、四分木分割、垂直三分木分割、および水平三分木分割が許可されない、請求項18または19に記載の方法。
【請求項２１】
前記コーディングツリーノードが分割されるか否か決定するために前記ビットストリームを解析するステップをさらに備える、請求項18から20のいずれか一項に記載の方法。
【請求項２２】
プロセッサと、前記プロセッサに結合された受信機とを備え、前記プロセッサおよび前記受信機が、請求項14から21のいずれか一項に記載の方法を実行するように構成された、ビデオコーディングデバイス。
【請求項２３】
ビデオコーディングデバイスによって使用するためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体であって、前記コンピュータプログラム製品が、プロセッサによって実行されたときに前記ビデオコーディングデバイスに請求項14から21のいずれか一項に記載の方法を実行させる、前記非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を備える、非一時的コンピュータ可読媒体。
【請求項２４】
画像の画像データを含むビットストリームを受信するための受信ユニットと、
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を取得するために、前記画像を区分するための区分ユニットと、
前記コーディングツリーノードの高さが64より大きいか、または、前記コーディングツリーノードの幅が64より大きいかどうかを決定することによって、前記コーディングツリーノードの三分木分割が許可されないかどうかを決定するためのサイズ決定ユニットであって、前記コーディングツリーノードの高さが64より大きい、または前記コーディングツリーノードの幅が64より大きい場合、前記コーディングツリーノードの前記三分木分割が許可されない、サイズ決定ユニットと、
前記コーディングツリーノードの前記三分木分割が許可されるかどうかの前記決定に基づいて、前記コーディングツリーノードの分割モードを決定するために前記ビットストリームを解析するための分割モード決定ユニットと、
1つまたは複数のコーディングユニット(CU)を取得するために、前記分割モードを前記コーディングツリーノードに適用するための分割モード適用ユニットと、
前記画像の再構築された画像を生成するために、前記ビットストリームに基づいて、前記CUの再構築されたブロックを生成するためのデコーディングユニットと、
を備える、デコーダ。
【請求項２５】
前記デコーダが、前記画像をディスプレイに向けて転送するためのディスプレイユニットをさらに備える、請求項24に記載のデコーダ。
【請求項２６】
画像の画像データを含むビットストリームを受信するための受信ユニットと、
少なくとも1つのコーディングツリーノードを備えた少なくとも1つのコーディングツリーユニット(CTU)を取得するために、前記画像を区分するための区分ユニットと、
前記コーディングツリーノードの高さが64を超えず、前記コーディングツリーノードの幅が64より大きいかどうかを決定するためのサイズ決定ユニットと、
前記コーディングツリーノードが分割されている場合に1つまたは複数のコーディングユニット(CU)を取得するために、前記コーディングツリーノードに垂直二分木分割を適用し、前記コーディングツリーノードの前記高さが64を超えず、前記コーディングツリーノードの前記幅が64より大きいと決定するための分割モード適用ユニットと、
前記画像の再構築された画像を生成するために、前記ビットストリームに基づいて、前記CUの再構築されたブロックを生成するためのデコーディングユニットと、
を備える、デコーダ。
【請求項２７】
前記デコーダが、前記画像をディスプレイに向けて転送するためのディスプレイユニットをさらに備える、請求項26に記載のデコーダ。
【請求項２８】
請求項1から7のいずれか一項、または請求項14から21のいずれか一項に記載の前記方法を実行するための処理回路を備える、コーダ。
【請求項２９】
コンピュータまたはプロセッサ上で実行されたときに、請求項1から28のいずれか一項に記載の前記方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
【請求項３０】
請求項1から7のいずれか一項に記載の方法を使用してエンコードされたエンコードされたビットストリームを含む、非一時的ストレージ媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】削除
【補正の内容】
【国際調査報告】
2021532643.tif 000018