(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022023857
(43)【公開日】2022-02-08
(54)【発明の名称】無損失ビデオコーディングのシグナリングのための方法および装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20220201BHJP
【FI】
H04N19/70
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2021166193
(22)【出願日】2021-10-08
(62)【分割の表示】P 2019237061の分割
【原出願日】2015-03-09
(31)【優先権主張番号】61/953,922
(32)【優先日】2014-03-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/103,916
(32)【優先日】2015-01-15
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
(71)【出願人】
【識別番号】514041959
【氏名又は名称】ヴィド スケール インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】イエン イエ
(72)【発明者】
【氏名】シアオユー シウ
(72)【発明者】
【氏名】ユーウェン ホー
(57)【要約】
【課題】無損失コーディングが用いられることを示す高水準シグナリング無損失コーディングシンタックス要素を含むビデオデータビットストリームを生成および復号するためのシステムおよび方法を提供する。
【解決手段】高水準シグナリングシンタックスは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)またはスライスセグメントヘッダのうちの1つである。無損失コーディングシンタックス要素は、量子化、変形、変形スキップ、変形スキップ回転、およびループ内フィルタリングプロセスに関係付けられた1または複数のSPS、PPSをおよびスライスセグメントヘッダシンタックス要素を生成するための条件として用いられ得る。
【選択図】
図12
【特許請求の範囲】
【請求項1】
ビデオコーディング方法であって、
ビデオスライスにおいて複数のコーディングユニットを生成することと、
前記ビデオスライスによって参照される高水準シンタックス構造を生成することと、
を含み、前記高水準シンタックス構造の前記生成は、前記高水準シンタックス構造において、前記スライス内の全ての前記コーディングユニットが無損失コーディングを用いてコーディングされているか否かを示すバイパスフラグを生成することを含むことを特徴とするビデオコーディング方法。
【請求項2】
前記ビデオスライスを符号化する前記コーディングユニットが全て無損失コーディングを用いるか否かの判断を行うことを更に含み、前記バイパスフラグの値は、前記判断の結果を示すことを特徴とする請求項1に記載のビデオコーディング方法。
【請求項3】
前記ビデオスライスのためのスライスセグメントヘッダを生成することを更に含み、前記スライスセグメントヘッダの前記生成は、損失ありコーディングに関係する少なくとも1つのシンタックス要素について、前記スライスセグメントヘッダ内に前記損失ありコーディングシンタックス要素を含めるか否かを判断することを含み、前記損失ありコーディングシンタックス要素を含めるか否かの前記判断は、前記ビデオスライス内の前記コーディングユニットが全て無損失コーディングを用いるか否かの前記判断に基づくことを特徴とする請求項2に記載のビデオコーディング方法。
【請求項4】
前記損失ありコーディングシンタックス要素は、量子化、変換およびループ内フィルタリングプロセスからなる群から選択されたプロセスに関係するシンタックス要素であることを特徴とする請求項3に記載のビデオコーディング方法。
【請求項5】
前記損失ありコーディングシンタックス要素は、slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2およびslice_loop_filter_across_slices_enabled_flagからなる群から選択されることを特徴とする請求項3に記載のビデオコーディング方法。
【請求項6】
前記ビデオスライスのためのスライスセグメントヘッダを生成することを更に含み、前記スライスセグメントヘッダは、量子化、変換およびループ内フィルタリングプロセスからなる群から選択された損失ありコーディングプロセスに関係する少なくとも1つのシンタックス要素を含み、
前記ビデオスライスを符号化する前記コーディングユニットが全て無損失コーディングを用いるという判断に応じて、前記シンタックス要素の値は、前記損失ありコーディングプロセスが適用されないことを示すことを特徴とする請求項2に記載のビデオコーディング方法。
【請求項7】
前記ビデオスライスを符号化する前記コーディングユニットが全て無損失コーディングを用いるという判断に応じて、
各それぞれのコーディングユニットについて、前記それぞれのコーディングユニットのブロックサイズおよびコーディングモードからなる群から選択されたパラメータに少なくとも部分的に基づいて変換四分木分割フラグを生成するか否かを判断することと、
前記変換四分木分割フラグを生成することの判断を行った後にのみ、それぞれのコーディングユニットについて変換四分木分割フラグを生成することと、
を更に含むことを特徴とする請求項2に記載のビデオコーディング方法。
【請求項8】
前記ビデオスライスを符号化する前記コーディングユニットが全て無損失コーディングを用いるという判断に応じて、
各それぞれのコーディングユニットについて、前記それぞれのコーディングユニットのブロックサイズおよびコーディングモードからなる群から選択されたパラメータに少なくとも部分的に基づいてコーディングされたブロックフラグを生成するか否かを判断することと、
前記コーディングされたブロックフラグを生成することの判断を行った後にのみ、それぞれのコーディングユニットについてコーディングされたブロックフラグを生成することと、
を更に含むことを特徴とする請求項2に記載のビデオコーディング方法。
【請求項9】
前記高水準シンタックス構造は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)およびスライスヘッダからなる群から選択されることを特徴とする請求項1に記載のビデオコーディング方法。
【請求項10】
ビデオデコーダであって、
ビットストリームから、複数のコーディングユニットを用いて符号化されたビデオスライスを含むビデオおよび前記ビデオスライスによって参照される高水準シンタックス構造をアンパックするように動作可能なエントロピー復号ユニットであって、前記高水準シンタックス構造は、前記スライス内の前記コーディングユニットの全てが無損失コーディングを用いてコーディングされているか否かを示すバイパスフラグを含む、エントロピー復号ユニットと、
逆量子化ユニットと、
逆変換ユニットと、
を備え、前記デコーダは、前記バイパスフラグからの、前記スライス内の全ての前記コーディングユニットが無損失コーディングを用いてコーディングされていることのインジケーションに応答して、前記逆量子化ユニットおよび前記逆変換ユニットをシャットダウンするように動作可能であることを特徴とするビデオデコーダ。
【請求項11】
ループフィルタを更に備え、前記デコーダは、前記バイパスフラグからの、前記スライス内の前記コーディングユニットの全てが無損失コーディングを用いてコーディングされているというインジケーションに応答して、前記ループフィルタをシャットダウンするように動作可能であることを特徴とする請求項10に記載のビデオデコーダ。
【請求項12】
複数のコーディングユニットを含むビデオスライスをコーディングする方法であって、
前記複数のコーディングユニット内の少なくとも第1のコーディングユニットを、無損失コーディングを用いて符号化する判断を行うことと、
前記第1のコーディングユニットを、無損失コーディングを用いて符号化する判断に応答して、前記第1のコーディングユニットの変換四分木分割フラグのデフォルト値を決定することと、
前記第1のコーディングユニットの前記変換四分木分割フラグを前記変換四分木分割フラグの前記デフォルト値に設定することと、
を含むことを特徴とする方法。
【請求項13】
前記第1のコーディングユニットの前記変換四分木分割フラグを前記変換四分木分割フラグの前記デフォルト値に設定することは、前記変換四分木分割フラグの前記デフォルト値を用いて前記第1のコーディングユニットのレート-歪み性能を試験することを更に含むことを特徴とする請求項12に記載の方法。
【請求項14】
前記変換四分木分割フラグの前記デフォルト値の前記決定は、前記第1のコーディングユニットがイントラコーディングされているか否かに少なくとも部分的に基づくことを特徴とする請求項12に記載の方法。
【請求項15】
前記変換四分木分割フラグの前記デフォルト値の前記決定は、前記第1のコーディングユニットのサイズに少なくとも部分的に基づくことを特徴とする請求項12に記載の方法。
【請求項16】
前記変換四分木分割フラグの前記デフォルト値の前記決定は、前記第1のコーディングユニット内の複数の予測ユニットに少なくとも部分的に基づくことを特徴とする請求項12に記載の方法。
【請求項17】
前記変換四分木分割フラグの前記デフォルト値を決定することは、
前記第1のコーディングユニットがイントラコーディングされているか否かを判断することと、
前記第1のコーディングユニットのサイズがサイズ閾値よりも大きいか否かを判断することと、
前記第1のコーディングユニットが厳密に1つの予測ユニットを含むか否かを判断することと、
を含み、前記第1のコーディングユニットがイントラコーディングされておらず、前記第1のコーディングユニットが前記サイズ閾値よりも大きく、かつ前記第1のコーディングユニットが厳密に1つの予測ユニットを含むという判断に応答して、前記変換四分木分割フラグの前記デフォルト値は、非変換四分木区分を示すことを特徴とする請求項12に記載の方法。
【請求項18】
前記変換四分木分割フラグの前記デフォルト値を決定することは、
前記第1のコーディングユニットがイントラコーディングされているか否かを判断することと、
前記第1のコーディングユニットのサイズがサイズ閾値よりも大きいか否かを判断することと、
前記第1のコーディングユニットが少なくとも2つの予測ユニットを含むか否かを判断することと、
を含み、前記第1のコーディングユニットがイントラコーディングされておらず、前記第1のコーディングユニットが前記サイズ閾値よりも大きく、かつ前記第1のコーディングユニットが少なくとも2つの予測ユニットを含むという判断に応答して、前記変換四分木分割フラグの前記デフォルト値は、ワンタイム変換四分木区分を示すことを特徴とする請求項12に記載の方法。
【請求項19】
前記変換四分木分割フラグの前記デフォルト値を決定することは、
前記第1のコーディングユニットがイントラコーディングされているか否かを判断することと、
前記第1のコーディングユニットが厳密に1つの予測ユニットを含むか否かを判断することと、
を含み、前記第1のコーディングユニットがイントラコーディングされており、かつ前記第1のコーディングユニットが厳密に1つの予測ユニットを含むという判断に応答して、前記変換四分木分割フラグの前記デフォルト値は非変換四分木区分を示すことを特徴とする請求項12に記載の方法。
【請求項20】
前記変換四分木分割フラグの前記デフォルト値を決定することは、
前記第1のコーディングユニットがイントラコーディングされているか否かを判断することと、
前記第1のコーディングユニットが少なくとも2つの予測ユニットを含むか否かを判断することと、
を含み、前記第1のコーディングユニットがイントラコーディングされておらず、かつ前記第1のコーディングユニットが少なくとも2つの予測ユニットを含むという判断に応答して、前記変換四分木分割フラグの前記デフォルト値はワンタイム変換四分木区分を示すことを特徴とする請求項12に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無損失ビデオコーディングのシグナリングのための方法および装置に関する。
【背景技術】
【0002】
関連出願の相互参照
本出願は、2014年3月16日に出願された米国特許仮出願第61/953,922号明細書および2015年1月15日に出願された米国特許仮出願第62/103,916号明細書の非仮出願であり、米国特許法第119条(e)下でのこれらの米国特許仮出願からの利益を主張する。これらの特許出願の内容は、参照によりそれらの全体が本明細書に援用される。
【0003】
過去20年にわたって、効率的なデジタルビデオ通信、配信および消費を可能にする様々なデジタルビデオ圧縮技術が開発され、標準化されてきた。H.261、MPEG-1、MPEG-2 H.263、MPEG-4(part-2)およびH.264/AVC(MPEG-4 part 10 Advance Video Coding)等、商業的に広く展開されている規格のほとんどは、ISO/IECおよびITU-Tによって開発されている。新たな高度なビデオ圧縮技術の登場および成熟に起因して、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECMPEGによる共同開発の下で、新たなビデオコーディング規格、高効率ビデオコーディング(HEVC)である、HEVC(ITU-T H.265/ISO/IEC23008-2)は2013年前半に国際規格として承認され、現行の最新技術であるH.264/AVCよりも実質的に高いコーディング効率を達成することができる。
【0004】
従来のデジタルビデオサービス(衛星、ケーブルおよび陸上伝送チャネルを介したTV信号の送信等)と比較して、IPTV、ビデオチャット、モバイルビデオおよびストリーミングビデオ等のますます多くの新たなビデオアプリケーションが異種環境において展開されている。そのような異種性は、ネットワークのみでなくクライアントにも存在する。クライアント側において、Nスクリーンのシナリオ、すなわち、スマートフォン、タブレット、PCおよびTVを含む様々なスクリーンサイズおよびディスプレイ機能を有するデバイス上でビデオコンテンツを消費することが、既に市場を支配しており、また支配し続けることが予期されている。ネットワーク側において、ビデオは、インターネット、WiFiネットワーク、モバイル(3Gおよび4G)ネットワーク、および/またはそれらの任意の組み合わせにわたって伝送されている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】R. Joshi, J. Xu, HEVC Screen Content Coding Draft Text 2. Document No. JCTVC-S1005, Oct. 2014 (Joshi 2014)
【非特許文献2】D. Flynn, M. Naccari, C. Rosewarne, J. Sole, G. Sullivan, T. Suzuki, ”High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 6,” Document No. JCTVC-P1005, Jan 2014
【非特許文献3】B. Bross, W.-J. Han, G. J. Sullivan, J.-R. Ohm, Y. K. Wang, T. Wiegand. High Efficiency Video Coding (HEVC) text specification draft 10. Document No. JCTVC-L1003. Jan. 2013
【発明の概要】
【0006】
無損失符号化の高水準シグナリングに関係するシステムおよび方法が本明細書に記載される。いくつかの実施形態では、本方法は、無損失コーディングが用いられることを示す高水準シンタックス要素を含むビデオデータビットストリームを生成することを含む。高水準シグナリングシンタックスは、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)またはスライスセグメントヘッダのうちの1つであり得る。無損失コーディングシンタックス要素は、量子化、変形、変形スキップ、変形スキップ回転、およびループ内フィルタリングプロセスに関係付けられた1または複数のSPSシンタックス要素を生成するための条件として用いられ得る。
【0007】
いくつかの実施形態では、方法は、transquant_bypass_default_flagを含むピクチャパラメータセット(PPS)を生成することを含む。PPSを参照するスライス内の全てのコーディングユニットのcu_transquant_bypass_flagのデフォルト値を示すtransquant_bypass_default_flagは1に設定される。PPSは、0に等しいtransquant_bypass_enabled_flagも有することができる。
【0008】
デコーダ側において、無損失コーディングが適用されるとき、逆量子化、逆変換、デブロッキングフィルタ、サンプル適応オフセット(SAO)等を含む、複数の処理ブロックがバイパスされ得る。したがって、デコーダが高水準無損失コーディングインジケーションを受信する場合、デコーダは、コーディングユニット(CU)の大きな群がこれらの処理ブロックを必要としないと判断する。これらの処理ブロックを、復号の前にシャットダウンすることは、電力低減、処理サイクル低減、より良好な負荷プロビジョニング等の観点で有利であり得る。
【0009】
このため、いくつかの実施形態では、方法は、ビデオデコーダにおいて、高水準無損失コーディングインジケーションを受信し、それに応じて複数の処理ブロックをシャットダウンすることを含む。複数の処理ブロックは、以下のハードウェアブロック、すなわち、逆量子化、逆変換、デブロッキングフィルタおよび/またはSAOのうちの任意のもののうちの1つまたは複数を含むことができる。更に、処理ブロックは、ビデオ復号の前にシャットダウンされ、処理ブロックハードウェアコンポーネントの少なくとも一部分の電力消費の低減を引き起こすことが可能である。
【図面の簡単な説明】
【0010】
更なる詳細な理解は、例として添付の図面と併せて提示される以下の説明から得られることが可能である。
【
図1A】ブロックベースのビデオエンコーダの例を示すブロック図である。
【
図1B】ブロックベースの無損失ビデオエンコーダの例を示すブロック図である。
【
図2A】ブロックベースのビデオデコーダの例を示すブロック図である。
【
図2B】ブロックベースの無損失ビデオデコーダの例を示すブロック図である。
【
図4】33個の方向予測モードおよび2つの非方向予測モードの例を示す図である。
【
図8】ピクチャ内のブロックレベルの動きの例を示す図である。
【
図10】例示的な無線送信/受信ユニット(WTRU)を示す図である。
【
図11】コーディングされたビットストリーム構造の例を示す図である。
【
図12】フラグtransquant_bypass_default_flagを用いて変更されたPPS拡張シンタックスを復号する方法のフローチャートである。
【発明を実施するための形態】
【0011】
ここで、様々な図面を参照して、例示的な実施形態の詳細な説明が提供される。この説明は、可能な実施態様の詳細な例を提供するが、提供される詳細は、例示であることが意図され、本出願の範囲をいかなる形においても限定することは意図されていないことに留意されるべきである。
【0012】
ビデオの符号化および復号
図1Aは、ブロックベースのビデオエンコーダ、例えば、ハイブリッドビデオ符号化システムの例を示すブロック図である。ビデオエンコーダ100は、入力ビデオ信号102を受信することができる。入力ビデオ信号102は、ブロックごとに処理され得る。ビデオブロックは任意のサイズであり得る。例えば、ビデオブロックユニットは、16×16ピクセルを含むことができる。16×16ピクセルのビデオブロックユニットは、マクロブロック(MB)と呼ばれる場合がある。高効率ビデオコーディング(HEVC)では、拡張されたブロックサイズ(例えば、これらはコーディングツリーユニット(CTU)またはコーディングユニット(CU)と呼ばれる場合があり、本発明ではこれらの2つの用語は同義である)が、高分解能(例えば、1080p以上)のビデオ信号を効率的に圧縮するために用いられ得る。HEVCにおいて、CUは最大64×64ピクセルとすることができる。CUは、予測ユニット(PU)に区分することができ、これらのユニットに対し、別個の予測方法を適用することができる。
【0013】
入力ビデオブロック(例えば、MBまたはCU)について、空間予測160および/または時間予測162を行うことができる。空間予測(例えば、「イントラ予測」)は、同じビデオピクチャ/スライス内の既にコーディングされた近隣ブロックからのピクセルブロックを用いて現在のビデオブロックを予測することができる。空間予測は、ビデオ信号内に固有の空間冗長性を低減することができる。時間予測(例えば、「インター予測」または「動き補償予測」)は、既にコーディングされたビデオピクチャ(例えば、「参照ピクチャ」と呼ばれる場合がある)からのピクセルを用いて、現在のビデオブロックを予測することができる。時間予測は、ビデオ信号内に固有の時間冗長性を低減することができる。ビデオブロックのための時間予測信号は、1または複数の動きベクトルによってシグナリングされることが可能であり、これは、現在のブロックと、参照ピクチャにおけるその予測ブロックとの間の動きの量および/または方向を示すことができる。(例えば、H.264/AVCおよび/またはHEVCの場合のように)複数の参照ピクチャがサポートされる場合、ビデオブロックについて、その参照ピクチャインデックスが送信され得る。参照ピクチャインデックスは、参照ピクチャストア164内のいずれの参照ピクチャから時間予測信号が到来するかを特定するのに用いられ得る。
【0014】
エンコーダにおけるモード決定ブロック180は、例えば、空間および/または時間予測の後に予測モードを選択することができる。予測ブロックは、116において、現在のビデオブロックから減算され得る。予測残差は、変換104および/または量子化106され得る。量子化ブロック106は、予測残差をコーディングするのに必要なビット数を効果的に低減することができる。量子化パラメータ(QP)が、量子化の厳密度(severity)を制御するのに用いられ得る。QP値が増大すると、より厳密な量子化が適用されることが可能であるが、結果として、コーディングされるビデオビットレートが低減される場合があり、同時に、復号化されるビデオ品質が劣化する場合がある。量子化に起因する一般的に知られている視覚的アーチファクトは、ブロッキングアーチファクト、ブラー、不鮮明化、リンギング、フリッカ等を含む。
図1Aおよび
図2Aに示されるビデオコーディングシステム内の他の処理ブロックも、特に、これらの処理ブロックが、処理パイプラインにおける中間データのビット深度に対し上限を必要とする固定点操作を適用するとき、情報損失を引き起こす場合がある。例えば、変換ブロック104において、水平方向の変換が最初に適用されることが可能であり、その後、垂直方向の変換が適用され得る。変換はデータビット深度を増大させるため(乗算に起因する)、水平変換の後、垂直変換のために入力データビット深度を低減させるために、水平変換の出力に右シフトが適用され得る。そのようなシフト操作は、(データビットの深度を低減することによって)実装コストを低減するのに役立つことができるが、処理パイプラインにおける情報損失も引き起こす場合がある。更に、固定点操作を可能にするために、H.264/AVCおよびHEVC等の最新のビデオ標準規格における変換は、積分値変換である。これらの積分値変換のうちのいくつかは、ほぼ直交であるが完全に直交でない場合がある。変換(および逆変換)行列が完全に直交でない場合、これらは完全な再構成を補償することができない。換言すれば、量子化を一切行わない場合であっても、非直交変換および逆変換が入力データブロックに適用された後、出力データブロック(スケーリング係数が出力に適用され得る)は、入力データブロックと数学的に同一のままでない場合がある。
【0015】
量子化された残差係数は、逆量子化110および/または逆変換112され、再構成された残差を形成することができる。この再構成された残差は予測ブロック126に戻して加算され、再構成されたビデオブロックを形成することができる。
【0016】
ループ内フィルタリング(例えば、デブロッキングフィルタ、サンプル適応オフセット、適応ループフィルタ等)が再構成されたビデオブロックに適用される(166)ことが可能であり、その後、これは参照ピクチャストア164に入れられ、かつ/または未来のビデオブロックをコーディングするのに用いられる。ビデオエンコーダ100は、出力ビデオストリーム120を出力することができる。出力ビデオビットストリーム120を形成するために、コーディングモード(例えば、インター予測モードまたはイントラ予測モード)、予測モード情報、動き情報および/または量子化された残差係数がエントロピーコーディングユニット108に送信され、圧縮および/またはパッキングされ、ビットストリームを形成することができる。参照ピクチャストア164は、復号されたピクチャバッファ(DPB)と呼ばれる場合がある。
【0017】
図2Aは、ブロックベースのビデオデコーダの例を示すブロック図である。ビデオデコーダ200は、ビデオビットストリーム202を受信することができる。ビデオビットストリーム202は、エントロピー復号ユニット208においてアンパッキングおよび/またはエントロピー復号され得る。ビデオビットストリームを符号化するのに用いられるコーディングモードおよび/または予測情報は、空間予測ユニット260(例えば、イントラコーディングされている場合)および/または時間予測ユニット262(例えば、インターコーディングされている場合)に送信され、予測ブロックを形成することができる。インターコーディングされている場合、予測情報は、予測ブロックサイズ、1つもしくは複数の動きベクトル(例えば、動きの方向および量を示すことができる)、および/または1もしくは複数の基準インデックス(例えば、これはいずれの参照ピクチャから予測信号が得られるかを示すことができる)を含むことができる。
【0018】
動き補償予測が時間予測ユニット262によって適用され、時間予測ブロックを形成することができる。残差変換係数は、逆量子化ユニット210および逆変換ユニット212に送信され、残差ブロックを再構成することができる。予測ブロックおよび残差ブロックは、226において共に加算され得る。再構成されたブロックは、ループフィルタ266によるループ内フィルタリングを受け、その後、参照ピクチャストア264内に記憶される。参照ピクチャストア264内の再構成されたビデオは、表示デバイスを駆動するために用いられることが可能であり、かつ/または未来のビデオブロックを予測するのに用いられることが可能である。ビデオデコーダ200は、再構成されたビデオ信号220を出力することができる。参照ピクチャストア264は、復号されたピクチャバッファ(DPB)と呼ばれることもできる。
【0019】
ビデオエンコーダおよび/またはデコーダ(例えば、ビデオエンコーダ100またはビデオデコーダ200)は、空間予測を行うことができる(例えば、これはイントラ予測と呼ばれることが可能である)。空間予測は、複数の予測方向のうちの1つに従って、既にコーディングされた近傍ピクセルから予測することによって実行され得る(例えば、これは方向イントラ予測と呼ばれる場合がある)。
【0020】
図3は、8つの方向予測モードの例の図である。
図3の8つの方向予測モードは、H.264/AVCにおいてサポートされ得る。9個のモード(DCモード2を含む)は、以下である。
・モード0:垂直予測
・モード1:水平予測
・モード2:DC予測
・モード3:斜め左下予測
・モード4:斜め右下予測
・モード5:垂直右予測
・モード6:水平下予測
・モード7:垂直左予測
・モード8:水平上予測
【0021】
空間予測は、様々なサイズおよび/または形状のビデオブロックにおいて実行され得る。例えば、(例えば、H.264/AVCにおける)4×4、8×8および16×16ピクセルのブロックサイズについて、ビデオ信号のルーマ成分の空間予測が実行され得る。例えば、(例えば、H.264/AVCにおける)8×8のブロックサイズについて、ビデオ信号のクロマ成分の空間予測が実行され得る。4×4または8×8のルーマブロックについて、合計で9個の予測モード、例えば、(例えば、H.264/AVCにおいて)8個の方向予測モードおよびDCモードがサポートされ得る。例えば、サイズ16×16のルーマブロックについて、4つの予測モード、すなわち、水平、垂直、DCおよび平面予測がサポートされ得る。
【0022】
方向イントラ予測モードおよび非方向予測モードがサポートされ得る。
図4は、33個の方向予測モードおよび2つの非方向予測モードの例を示す図である。
図4の33個の方向予測モードおよび2つの非方向予測モードがHEVCによってサポートされ得る。より大きなブロックサイズを用いる空間予測がサポートされ得る。例えば、空間予測は、任意のサイズ、例えば、4×4、8×8、16×16、32×32または64×64の平方ブロックサイズのブロック上で実行され得る。(例えば、HEVCにおける)方向イントラ予測は、1/32ピクセルの精度で実行され得る。
【0023】
例えば、方向イントラ予測に加えて、非方向イントラ予測モードが(例えば、H.264/AVC、HEVC等において)サポートされ得る。非方向イントラ予測モードは、DCモードおよび/または平面モードを含むことができる。DCモードの場合、予測値は、利用可能な近傍ピクセルを平均化することによって得られることが可能であり、予測値は、ブロック全体に一様に適用され得る。平面モードの場合、低速な遷移で平滑な領域を予測するために線形補間が用いられ得る。H.264/AVCは、16×16のルーマブロックおよびクロマブロックについて平面モードの使用を可能にすることができる。
【0024】
エンコーダ(例えば、エンコーダ100)は、(例えば、
図1Aのブロック180において)モード決定を実行し、ビデオブロックのための最良のコーディングモードを決定することができる。エンコーダが(例えばインター予測の代わりに)イントラ予測を適用することを決定するとき、エンコーダは、利用可能なモードの組から最適なイントラ予測モードを決定することができる。選択される方向イントラ予測モードは、入力ビデオブロックにおける任意のテクスチャ、エッジおよび/または構造の方向に関して強力なヒントを与えることができる。
図5は、(例えば、4×4のブロックについての)水平予測の例の図である。現在の4×4のビデオブロックにおけるピクセルを予測するために、既に再構成されたピクセルP0、P1、P2およびP3(例えば、影付きのボックス)が、用いられ得る。水平予測において、再構成されたピクセル、例えば、ピクセルP0、P1、P2および/またはP3は、対応する行の方向に沿って水平方向に伝搬され、4×4のブロックを予測することができる。例えば予測は、以下の式(1)に従って実行され得る。ここで、L(x,y)は、(x,y)、x,y=0...3において予測されるピクセルであり得る。
【0025】
L(x,0)=P0
L(x,1)=P1
L(x,2)=P2
L(x,3)=P3 (1)
【0026】
図6は、平面モードの例の図である。平面モードは、状況に応じて実行され得る。最上行の最も右側のピクセル(例えば、Tによってマーキキングされている)は、最も右側の列内のピクセルを予測するために複製され得る。左列内の最下ピクセル(例えば、Lによってマーキングされている)は、最下行内のピクセルを予測するために複製され得る。(例えば、左ブロックに示すように)水平方向における双線形補間は、中心ピクセルの第1の予測H(x,y)を生成するように実行され得る。(例えば、右ブロックに示すように)垂直方向における双線形補間は、中心ピクセルの第2の予測V(x,y)を生成するように実行され得る。水平予測および垂直予測間の平均化は、L(x,y)=((H(x,y)+V(x,y))≫l)を用いて最終予測L(x,y)を得るように実行され得る。
【0027】
図7および
図8は、(例えば、
図1Aの動き予測ユニット162を用いた)ビデオブロックの動き予測の例を示す図である。
図8は、例えば、参照ピクチャ「Ref pic0」、「Ref pic1」および「Ref pic2」を含む例示的な復号されたピクチャバッファを示す図である。現在のピクチャ内のブロックB0、B1およびB2は、それぞれ、参照ピクチャ「Ref pic0」、「Ref pic1」および「Ref pic2」内のブロックから予測され得る。動き予測は、近傍のビデオフレームからのビデオブロックを用いて現在のビデオブロックを予測することができる。動き予測は、時間相関を利用し、かつ/またはビデオ信号に固有の時間冗長性を取り除くことができる。例えば、H.264/AVCおよびHEVCにおいて、時間予測は、様々なサイズのビデオブロック(例えば、ルーマ成分の場合、時間予測ブロックサイズは、H.264/AVCにおいて16×16~4×4、HEVCにおいて64×64~4×4に変動し得る)において実行され得る。(mvx,mvy)の動きベクトルを用いて、時間予測は、式(1)によって与えられるように実行され得る。
【0028】
P(x,y)=ref(x-mvx,y-mvy) (1)
ここで、ref(x,y)は、参照ピクチャ内のロケーション(x,y)におけるピクセル値であることが可能であり、P(x,y)は予測されたブロックであることが可能である。ビデオコーディングシステムは、小数ピクセル精度でインター予測をサポートすることができる。動きベクトル(mvx,mvy)が小数ピクセル値を有する場合、1または複数の補間フィルタが適用されて、小数ピクセル位置におけるピクセル値を得ることができる。ブロックベースのビデオコーディングシステムは、時間予測を改善するために、複数仮説による予測を用いることができ、例えば、ここで、予測信号は、様々な参照ピクチャから複数の予測信号を組み合わせることによって形成され得る。例えば、H.264/AVCおよび/またはHEVCは、2つの予測信号を組み合わせることができる二重予測を用いることができる。二重予測は、それぞれ参照ピクチャからの2つの予測信号を組み合わせて、以下の式(2)等の予測を形成することができる。
【0029】
【0030】
ここで、P0(x,y)およびP1(x,y)は、それぞれ第1の予測ブロックおよび第2の予測ブロックであることが可能である。式(2)に示すように、2つの予測ブロックは、それぞれ2つの動きベクトル(mvx0,mvy0)および(mvx1,、mvy1)を用いて2つの参照ピクチャref0(x,y)およびref1(x,y)から動き補償された予測を実行することによって得られることが可能である。予測ブロックP(x,y)は、(例えば、加算器116において)ソースビデオブロックから減算され、予測残差ブロックを形成することができる。予測残差ブロックは、(例えば、変換ユニット104において)変換され、かつ/または(例えば、量子化ユニット106において)量子化され得る。量子化された残差変換係数ブロックは、エントロピーコーディングユニット(例えば、エントロピーコーディングユニット108)に送信され、ビットレートを低減するようにエントロピーコーディングされ得る。エントロピーコーディングされた残差係数は、パッキングされ、出力ビデオビットストリーム(例えば、ビットストリーム120)の一部を形成することができる。
【0031】
図11は、コーディングされたビットストリーム構造の例を示す図である。コーディングされたビットストリーム1000は複数のNAL(ネットワーク抽出層)ユニット1001からなる。NALユニットは、コーディングされたスライス1006等のコーディングされたサンプルデータ、またはパラメータセットデータ、スライスヘッダデータ1005もしくは補助的強化情報データ1007(これは、SEIメッセージと呼ばれる場合がある)等の高水準シンタックスメタデータを含むことができる。パラメータセットは、複数のビットストリーム層(例えば、ビデオパラメータセット1002(VPS))に適用することができるか、または1つの層内のコーディングされたビデオシーケンス(例えば、シーケンスパラメータセット1003(SPS))に適用することができるか、または1つのコーディングされたビデオシーケンス内の複数のコーディングされたピクチャ(例えば、ピクチャパラメータセット1004(PPS))に適用することができる重要なシンタックス要素を含む高水準シンタックス構造である。パラメータセットは、ビデオビットストリームのコーディングされたピクチャとともに送信され得るか、または他の手段(信頼性のあるチャネル、ハードコーディング等を用いた帯域外伝送を含む)を通じて送信され得る。スライスヘッダ1005も、比較的小さいか、またはある特定のスライスまたはピクチャタイプのみに関係するいくつかのピクチャ関連情報を含むことができる高水準シンタックス構造である。SEIメッセージ1007は、復号プロセスによって必要とされない場合があるが、ピクチャ出力タイミングもしくは表示および/または損失検出および秘匿等の様々な他の目的で用いられ得る情報を搬送する。
【0032】
図9は、通信システムの例を示す図である。通信システム1300は、エンコーダ1320と、通信ネットワーク1304と、デコーダ1306とを備えることができる。エンコーダ1302は、接続1308を介して通信ネットワーク1304と通信することができる。接続1308は、有線接続または無線接続であり得る。エンコーダ1302は、
図1Aのブロックベースのビデオエンコーダに類似し得る。エンコーダ1302は、単層コーデック(例えば、
図1A)または多層コーデックを含むことができる。
【0033】
デコーダ1306は、接続1310を介して通信ネットワーク1306と通信することができる。接続1310は、有線接続または無線接続であり得る。デコーダ1306は、
図2Aのブロックベースのビデオデコーダに類似し得る。デコーダ1306は、単層コーデック(例えば、
図2A)または多層コーデックを含むことができる。例えば、デコーダ1306は、ピクチャレベルのILPサポートを有する多層(例えば2層)スケーラブルデコーディングシステムであり得る。
【0034】
エンコーダ1302および/またはデコーダ1306は、デジタルテレビ、無線ブロードキャストシステム、ネットワーク要素/端末、コンテンツサーバまたはウェブサーバ等のサーバ(例えば、ハイパーテキスト転送プロトコル(HTTP)サーバ)、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、ビデオゲームコンソール、セルラまたは衛星無線電話、デジタルメディアプレーヤ等であるが、これらに限定されない、多岐にわたる有線通信デバイスおよび/または無線送信/受信ユニット(WTRU)に組み込まれ得る。
【0035】
通信ネットワーク1304は、任意の適したタイプの通信ネットワークであり得る。例えば、通信ネットワーク1304は、音声、データ、ビデオ、メッセージ、ブロードキャスト等のコンテンツを複数の無線ユーザに提供する複数のアクセスシステムであり得る。通信ネットワーク1304は、複数の無線ユーザが、無線帯域幅を含むシステムリソースの共有を通じてそのようなコンテンツにアクセスすることを可能にすることができる。例えば、通信ネットワーク1304は、符号分割多重アクセス(CDMA)、時分割多重アクセス(TDMA)、周波数分割多重アクセス(FDMA)、直交FDMA(OFDMA)、単一搬送波FDMA(SC-FDMA)等の1または複数のチャネルアクセス方法を利用することができる。通信ネットワーク1304は、複数の接続された通信ネットワークを含むことができる。通信ネットワーク1304は、インターネット、および/または、セルラネットワーク、WiFiホットスポット、インターネットサービスプロバイダネットワーク(ISP)等の1つもしくは複数の商用プライベートネットワークを含むことができる。
【0036】
図10は、例示的なWTRUのシステム図である。WTRU900は、プロセッサ918、送受信機920、送信/受信要素922、スピーカ/マイクロフォン924、キーパッドまたはキーボード926、ディスプレイ/タッチパッド928、非取り外し可能メモリ930、取り外し可能メモリ932、電源934、グローバルポジショニングシステム(GPS)チップセット936および/または他の周辺機器938を含むことができる。WTRU900は、実施形態との一貫性を保ちながら、上記の要素の任意の部分的組み合わせを含むことができることが理解されよう。更に、エンコーダ(例えば、エンコーダ1302)および/またはデコーダ(例えば、デコーダ1306)が組み込まれ得る端末は、
図10のWTRU900を参照して本明細書において描かれ、説明された要素のうちのいくつかまたは全てを含むことができる。
【0037】
プロセッサ918は、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタル信号プロセッサ(DSP)、グラフィック処理ユニット(GPU)、複数のマイクロプロセッサ、DSPコアに関連付けられた1または複数のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、任意の他のタイプの集積回路(IC)、状態マシン等であり得る。プロセッサ918は、信号コーディング、データ処理、電力制御、入出力処理、および/またはWTRU900が有線および/または無線環境で動作することを可能にする任意の他の機能を実行することができる。プロセッサ918は、送受信機920に結合されることが可能であり、送受信機920は、送信/受信要素922に結合されることが可能である。
図10は、プロセッサ918および送受信機920を別個の要素として描いているが、プロセッサ918および送受信機920は、電子パッケージおよび/またはチップにおいて共に集積され得ることが理解されよう。
【0038】
送信/受信要素922は、エアインタフェース915を介して別の端末に信号を送信しかつ/または別の端末から信号を受信するように構成され得る。例えば、1または複数の実施形態において、送信/受信要素922は、RF信号を送信および/または受信するように構成されたアンテナであり得る。1または複数の実施形態において、送信/受信要素922は、例えば、IR、UVまたは可視光信号を送信および/または受信するように構成されたエミッタ/検出器であり得る。1または複数の実施形態では、送信/受信要素922は、RF信号および光信号の双方を送信および/または受信するように構成され得る。送信/受信要素922は、無線信号の任意の組み合わせを送信および/または受信するように構成され得る。
【0039】
更に、送信/受信要素922が
図10において単一の要素として示されているが、WTRU900は、任意の数の送信/受信要素922を含むことができる。より詳細には、WTRU900は、MIMO技術を採用することができる。このため、いくつかの実施形態では、WTRU900は、エアインタフェース915を介して無線信号を送信および受信するための2つ以上の送信/受信要素922(例えば、複数のアンテナ)を含むことができる。
【0040】
送受信機920は、送信/受信要素922によって送信されることになる信号を変調し、かつ/または送信/受信要素922によって受信される信号を復調するように構成され得る。上記に示すように、WTRU900は、マルチモード機能を有することができる。このため、送受信機920は、例えば、UTRAおよびIEEE802.11等の、WTRU900が複数のRATを介して通信することを可能にするための複数の送受信機を含むことができる。
【0041】
WTRU900のプロセッサは、スピーカ/マイクロフォン924、キーパッド926および/またはディスプレイ/タッチパッド928(例えば、液晶ディスプレイ(LCD)表示ユニットまたは有機発光ダイオード(OLED)表示ユニット)に結合されることが可能であり、これらからユーザ入力データを受信することができる。プロセッサ918は、スピーカ/マイクロフォン924、キーボード926および/またはディスプレイ/タッチパッド928にユーザデータを出力することもできる。更に、プロセッサ918は、非取り外し可能メモリ930および/または取り外し可能メモリ932等の任意のタイプの適切なメモリからの情報にアクセスし、このメモリにデータを記憶することができる。非取り外し可能メモリ930は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスクまたは任意の他のタイプのメモリストレージデバイスを含むことができる。取り外し可能メモリ932は、加入者アイデンティティモジュール(SIM)カード、メモリスティック、セキュアデジタル(SD)メモリカード等を含むことができる。1または複数の実施形態では、プロセッサ918は、サーバまたはホームコンピュータ(図示せず)等のWTRU900上に物理的に位置していないメモリからの情報にアクセスし、このメモリにデータを記憶することができる。
【0042】
プロセッサ918は、電源934から電力を受信することができ、WTRU900内の他のコンポーネントに対し電力を分配および/または制御するように構成され得る。電源934は、WTRU900に電力供給するための任意の適切なデバイスであり得る。例えば、電源934は、1または複数の乾電池(例えば、ニッケルカドミウム(NiCd)、ニッケル亜鉛(NiZn)、ニッケル水素(NiMH)、リチウムイオン(Liイオン)等)、太陽電池、燃料電池等を含むことができる。
【0043】
プロセッサ918は、GPSチップセット936に結合され得る。これは、WTRU900の現在のロケーションに関するロケーション情報(例えば、緯度および経度)を提供するように構成され得る。GPSチップセット936からの情報に加えて、またはこの情報に代えて、WTRU900は端末(例えば、基地局)からのエアインタフェース915を介してロケーション情報を受信し、かつ/または2つ以上の近隣の基地局から信号が受信されるタイミングに基づいてそのロケーションを求めることができる。WTRU900は、実施形態との一貫性を保ちながら、任意の適切なロケーション決定方法によってロケーション情報を取得することができることが理解されよう。
【0044】
プロセッサ918は、更なる特徴、機能および/または有線もしくは無線接続性を提供する1または複数のソフトウェアおよび/またはハードウェアモジュールを含むことができる他の周辺機器938に更に結合され得る。例えば、周辺機器938は、加速度計、方位センサ、動きセンサ、近接性センサ、電子コンパス、衛星送受信機、デジタルカメラおよび/またはビデオレコーダ(例えば、写真および/またはビデオ用)、ユニバーサルシリアルバス(USB)ポート、振動デバイス、テレビ送受信機、ハンズフリーヘッドセット、Bluetooth(登録商標)モジュール、周波数変調(FM)無線ユニット、およびデジタル音楽プレーヤ、メディアプレーヤ、ビデオゲームプレーヤモジュール、インターネットブラウザ等のソフトウェアモジュールを含むことができる。
【0045】
例として、WTRU900は、無線信号を送信および/または受信するように構成されることが可能であり、ユーザ機器(UE)、移動局、固定または移動加入者ユニット、ページャ、セルラ電話、携帯情報端末(PDA)、スマートフォン、ラップトップ、ネットブック、タブレットコンピュータ、パーソナルコンピュータ、無線センサ、消費者家電、または圧縮されたビデオ通信を受信および処理することが可能な任意の他の端末を含むことができる。
【0046】
WTRU900および/または通信ネットワーク(例えば、通信ネットワーク1304)は、広帯域CDMA(WCDMA)を用いてエアインタフェース915を確立することができるユニバーサル移動体通信システム(UMTS)陸上無線アクセス(UTRA)等の無線技術を実施することができる。WCDMAは、高速パケットアクセス(HSPA)および/または発展型HSPA(HSPA+)等の通信プロトコルを含むことができる。HSPAは、高速ダウンリンクパケットアクセス(HSDPA)および/または高速アップリンクパケットアクセス(HSUPA)を含むことができる。WTRU900および/または通信ネットワーク(例えば、通信ネットワーク1304)は、発展型UMTS陸上無線アクセス(E-UTRA)等の無線技術を実装することができる。この無線技術は、ロングタームエボリューション(LTE)および/またはLTEアドバンスト(LTE-A)を用いてエアインタフェース915を確立することができる。
【0047】
WTRU900および/または通信ネットワーク(例えば、通信ネットワーク1304)は、IEEE802.16(例えば、マイクロ波アクセスのための世界規模の相互運用性(WiMAX))、CDMA2000、CDMA2000 1X、CDMA2000EV-DO、暫定基準2000(IS-2000)、暫定基準95(IS-95)、暫定基準856(IS-856)、移動通信のためのグローバルシステム(GSM)、GSMエボリューションのための強化されたデータレート(EDGE)、GSM EDGE(GERAN)等の無線技術を実施することができる。WTRU900および/または通信ネットワーク(例えば、通信ネットワーク1304)は、IEEE802.11、IEEE802.15等の無線技術を実施してもよい。
【0048】
無損失コーディング
医療ビデオアプリケーションおよびハイエンドプロフェッショナルビデオアプリケーション等のいくつかのビデオアプリケーションについて、損失を伴うことなく元のビデオ信号内に全ての情報を保持することが望ましい場合がある。そのようなビデオアプリケーションについて、無損失コーディングを用いることができる。無損失コーディングにおいて、変換および量子化等の情報損失を引き起こす場合があるビデオコーデックにおける処理ブロックが変更および/またはバイパスされ得る。それぞれ
図1Bおよび
図2Bのエンコーダおよびデコーダ構成は、無損失コーディングを達成するために用いられ得る。無損失コーディングにおいて、変換、量子化、逆変換および逆量子化のための処理ブロックは適用されない。更に、
図1Bの加算器126および
図2Bの加算器226の結果として再構成されたビデオブロックは、元のビデオブロックと数学的に同じであるため、ループ内フィルタリングは必要でない場合があり、実際に、望ましくない歪みを引き起こす場合がある。したがって、いくつかの実施形態では、ループ内フィルタリングのための処理ブロックも適用されない。
【0049】
無線ディスプレイおよびクラウドコンピューティング等の急速に成長するビデオアプリケーションに起因して、スクリーンコンテンツコーディング(SCC)が近年、学界および産業界からの多くの関心を得ている。HEVCは、以前のビデオコーディング規格と比較してコーディング効率において大きな改善を達成しているが、これは、主にカメラによって捕捉される自然のビデオのために設計されたものである。一方、通常、テキストおよびグラフィック等のコンピュータにより生成されたコンテンツからなるスクリーンコンテンツビデオは、自然のコンテンツの特性と極めて異なる特性を示す。これを考慮すると、スクリーンコンテンツコーディングのためにHEVCを拡張することが望ましい。ブロック内コピー(IBC)は、非特許文献1に記載されているように、HEVCスクリーンコンテンツコーディング拡張に採用されている1つのコーディング方法である。IBCは、同じピクチャの既に再構成された領域のピクセルから現在のPUのピクセルを予測することによって、(特に、ピクチャが、テキストおよびグラフィックが豊富なかなりの量のスクリーンコンテンツを含む場合に)1つのピクチャにおいて固有のピクチャ内冗長性を利用するように設計された。インターモードと同様に、IBCモードを用いてコーディングされたCUの場合、1つの予測されたPUとその基準ブロックとの間の変位は、ブロックベクトル(BV)によって表される。BVは、ビットストリーム内の対応する残差とともにコーディングされる。
【0050】
HEVCおよびその拡張において、transquant_bypass_enabled_flagと呼ばれるシンタックス要素は、ピクチャパラメータセット(PPS)においてシグナリングされ、変換および量子化が、ブロックごとの単位でバイパスされることが可能であるか否かを示す。非特許文献2に記載されているように、HEVCにおけるPPSシンタックステーブルが以下の表1に示され、transquant_bypass_enabled_flagが行22に示されている。
【0051】
【0052】
【0053】
現在のスライスが、transquant_bypass_enabled_flag(表1の行22)が1に設定されている(これは、スライスヘッダ(表2における行5)内のslice_pic_parameter_set_idを、適切なPPSを特定するための適切な値に設定することによって行われる)PPSを参照する場合、コーディングユニットまたはCUレベルにおいて、現在のスライスにおける全てのCUについてcu_transquant_bypass_flagと呼ばれる追加のフラグがシグナリングされる。coding_unitシンタックステーブルが表3に示されている。
【0054】
【0055】
【0056】
【0057】
【0058】
cu_transquant_bypass_flagの値(表3の行3)は、(cu_transquant_bypass_flagが1に等しい場合)変換および量子化が現在のCUについてバイパスされているか、または(cu_transquant_bypass_flagが0に等しい場合)変換および量子化が現在のCUについて適用されるかを示す。PPSにおけるtransquant_bypass_enabled_flagが0に設定されているとき、追加のCUレベルフラグであるcu_transquant_bypass_flagはシグナリングされず、0である(すなわち、変換および量子化が現在のCUについて適用される)ことが推測される。
【0059】
フラグcu_transquant_bypass_flagが現在のCUについて1に設定されているとき、変換および量子化は予測残差に適用されない。代わりに、予測残差は、その予測モード情報、動き情報等とともに直接エントロピーコーディングされ、ビデオビットストリームにパッキングされる。更に、デブロッキングおよびサンプル適応オフセット(SAO)は、現在のCUのためにバイパスされる。このようにして、ブロックレベル無損失コーディングが達成され、すなわち、再構成されたCUは元のCUと数学的に同じである。
【0060】
無損失コーディングを必要とするビデオアプリケーションの場合、シーケンスレベルにおいて無損失コーディングを適用する(すなわち、シーケンス全体が損失を伴うことなくコーディングされる)か、またはピクチャ/スライスレベルにおいて無損失コーディングを適用する(すなわち、ピクチャ/スライス全体が損失を伴うことなくコーディングされる)ことが望ましい場合がある。第1のバージョンのHEVC規格およびHEVC範囲拡張は、現在、JCT-VCにおける開発下にあり、シーケンス/ピクチャ/スライスレベルの無損失コーディングを示すための高水準シグナリングを含まず、他の方法でも提供しない。代わりに、既存のシグナリング方式を用いてシーケンス/ピクチャ/スライスレベルの無損失コーディングを達成するために、以下の動作、すなわち、(i)transquant_bypass_enabled_flagが1に設定されるPPSの作成、(ii)ビデオシーケンス/ピクチャ/スライスのスライスセグメントヘッダにおいて、transquant_bypass_enabled_flagが1に等しいPPSを参照すること、(iii)シーケンス/ピクチャ/スライス内の全てのCUについて、フラグcu_transquant_bypass_flagの値を1に設定すること、が実行され得る。
【0061】
無損失モードのブロックレベルのシグナリングのみに依拠することは、いくつかの欠点を有する。特に、これは、シーケンス/ピクチャ/スライスにおける全てのCUについてcu_transquant_bypass_flagを送信することを必要とし、これは効率的でない場合がある。このCUレベルのフラグcu_transquant_bypass_flagをコーディングするのにコンテキスト適応型バイナリ算術コーディング(CABAC)が用いられ、これはシグナリングオーバヘッドを効果的に低減することができるが、これは依然として、デコーダがシーケンス/ピクチャ/スライス内の全てのCUについて追加のシンタックス要素をパースすることを依然として必要とし、これは冗長な動作となる場合がある。
【0062】
更に、無損失モードのためのブロックレベルシグナリングのみが利用可能である場合、デコーダは、完全に無損失のコーディングのために適切に準備することができない場合がある。なぜなら、逆量子化、逆変換、デブロッキングフィルタ、SAO等の処理ブロックが、いくつかの未来のCUのために依然として必要とされる場合がある(すなわち、いくつかの未来のCUのcu_transquant_bypass_flagの値が0に設定される場合がある)ことが起こり得るままであるためである。これにより、そうでなければ、不要な処理ブロックをシャットダウンすることにより得られたはずの利用可能な電力節減が制限される。
【0063】
同様に、現在のビデオビットストリームは、無損失符号化に必要とされない様々なレベルの複数のシンタックス要素を含む。これらの要素は、高水準シンタックス構造における逆量子化、逆変換、デブロッキングおよびSAOに関係する。例えば、PPSにおいて、いくつかのシンタックス要素(例えば、それぞれ表1の行11、14、17、18に示すようにinit_qp_minus26、cu_qp_delta_enabled_flag、pps_cb/cr_qp_offset)は、逆量子化プロセスに関係付けられ、いくつかのシンタックス要素(例えば、それぞれ表1の行40、43、44に示すようにdeblocking_filter_override_enabled_flag、pps_beta_offset_div2、pps_tc_offset_div2)は、デブロッキングプロセスに関係付けられ、いくつかのシンタックス要素(それぞれ表1の行72、73に示すようにlog2_sao_offset_scale_luma、log2_sao_offset_scale_chroma)はSAOプロセスに関係付けられている。同様に、スライスセグメントヘッダにおけるいくつかのシンタックス要素は、逆量子化(それぞれ表2の行74、76、77に示すように、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset)、デブロッキング(行86、87に示すように、slice_beta_offset_div2、slice_tc_offset_div2)、およびSAO(表2の行47および49に示すように、slice_sao_luma_flag、slice_sao_chroma_flag)に関係付けられている。これらのシンタックス要素および他のシンタックス要素は、表1~表3においてアスタリスクでマーキングされている。無損失コーディングがシーケンス/ピクチャ/スライスレベルで適用されるとき、これらのシンタックス要素をシグナリングする必要がない場合があり、これによってシグナリングオーバヘッドが低減する。一方、無損失コーディングモードの高水準のインジケーションがない場合、これらの高水準シンタックス要素は、ビットストリーム内に符号化され、それぞれのデコーダに送信されなくてはならない。
【0064】
また更に、ビデオビットストリームは、ブロックレベルにおいて(例えば、CUレベルにおいて)変換に関係するシグナリングを含むことができる。例えば、transform_tree()シンタックス構造(transform_tree()の単純化されたバージョンが表7に示されている)において、変換ユニットの四分木分割が行われているか否か(transform_split_flag)および/または変換ブロックにおいて、ルーマおよびクロマのための任意の非ゼロ係数が存在するか否かを示すフラグ(cbf_luma、cbf_cbおよびcbf_cr)がシグナリングされる。無損失コーディングモードにおいて、transform_tree()シンタックスは、これらのフラグのシグナリングを明示的にバイパスし、代わりに、これらのフラグを適切なデフォルト値に設定することによって単純化され得る。
【0065】
シグナリング無損失コーディングモード
本明細書において記載されているのは、上記の不利な点のうちの1つまたは複数を克服することができる、無損失コーディングモードにおいて用いられるシグナリング方法の様々な実施形態である。1つのそのような実施形態では、無損失コーディングモードのシグナリングは、PPSシンタックス構造を変更することによって行われ得る。表4は、いくつかの実施形態による変更されたPPSシンタックステーブルを示す。ここで、このPPSを参照するスライス内の全てのコーディングユニットのフラグcu_transquant_bypass_flagのデフォルト値を示すための追加のフラグであるtransquant_bypass_default_flagが追加される。この実施形態では、ビットストリームは、各個々のコーディングユニットにおいてフラグcu_transquant_bypass_flagをシグナリングする必要がない。この新たなフラグを1に設定し、フラグtransquant_bypass_enabled_flagを0に設定することによって、エンコーダは、シーケンスおよび/またはピクチャおよび/またはスライスレベルにおいて、無損失コーディングが適用されることをデコーダに示すことができる。すなわち、CUレベルのシグナリングを一切伴うことなく、この現在のPPSを参照する全てのCUの変換、変換スキップ、量子化およびループ内フィルタリングプロセスがバイパスされる。
【0066】
cu_transquant_bypass_flagが存在しないとき、新たなフラグtransquant_bypass_default_flagがcu_transquant_bypass_flagのデフォルト値を指定するとみなされ得る。
【0067】
0のCUレベルフラグcu_transquant_bypass_flagの既存のセマンティクスは、以下のように変更され得る。1に等しいcu_transquant_bypass_flagは、副節8.6に指定されるようなスケーリングおよび変換プロセスを指定し、副節8.7において指定されるようなループ内フィルタプロセスはバイパスされる。cu_transquant_bypass_flagが存在しないとき、このフラグはtransquant_bypass_default_flagに等しいことが推測される。表4に示されているように、この新たなフラグtransquant_bypass_default_flag(表4、行11)は、表4においてアスタリスクでマーキングされている逆量子化、逆変換およびループ内フィルタリングプロセスに関係するPPS内の(表4の行12、15、17、21、28、42、45、57、74および84に示すような)複数のシンタックス要素の存在を条件付けるために用いられ得る。これらの条件は、これらのシンタックス要素が、transquant_bypass_default_flagが0に等しいとき(すなわち、損失ありコーディングが適用されるとき)にのみ送信されるように設定される。transquant_bypass_default_flagが1に等しいとき(すなわち、無損失コーディングが適用されるとき)、これらのシンタックス要素は送信されない。代わりに、それらの値は0であることが推測される。例えば、transquant_bypass_default_flagが1に設定されているときに、cu_qp_delta_enabled_flagの値が0であると推測することによって、デルタQP関連シンタックス要素がCUレベルにおいてシグナリングされないことが示され、これにより、ビットを節減し、シンタックスパースを単純化する。
【0068】
更に、transform_skip_enabled_flagの存在を条件付けるために新たなフラグtransquant_bypass_default_flagが用いられる。transform_skip_enabled_flagは、変換プロセスのみをバイパスする(量子化プロセスをバイパスしない)ために用いられる。したがって、これはtransquant_bypass_enabled_flagのサブセットである。更に、新たなフラグtransquant_bypass_default_flagは、transquant_bypass_enabled_flagの存在を条件付けるために用いられる。このようにして、transquant_bypass_default_flagが1に設定されるとき(すなわち、無損失コーディングモード)、transquant_bypass_enabled_flagが0であることが推測され、CUレベルにおけるcu_transquant_bypass_flagのシグナリングがスキップされる。
【0069】
【0070】
【0071】
【0072】
別の実施形態において、HEVC範囲拡張を通じた提案される追加のシンタックス要素を実施するために、transquant_bypass_default_flagのロケーションが、PPS拡張の一部として(すなわち、pps_extension_flag[0]の「if」条件内で)更に下方に動かされ得る。この構成は、HEVC範囲拡張のPPSシンタックスが、HEVC標準規格の第1のバージョンと最大限の後方互換性を有することを確実にすることができる(非特許文献3)。表5は、そのような構成の一例を示す。この構成において、新たなフラグtransquant_bypass_default_flagは、transquant_bypass_enabled_flagの値で条件付けられ得る。すなわち、transquant_bypass_default_flagは、transquant_bypass_enabled_flagが0に等しいときにしかシグナリングされない。transquant_bypass_enabled_flagが1に等しいとき、transquant_bypass_default_flagはシグナリングされず、このPPSを参照する各コーディングユニットにおけるcu_transquant_bypass_flagの値は、コーディングユニットレベルのビットストリームから明示的に受信される。一方、この実施形態の構成において、新たなフラグは、主要なPPSシンタックスの一部でないため、上記で説明したような表4内の量子化、変形、変形スキップおよびループ内フィルタリングに関係する既存のPPSシンタックス要素(アスタリスクでマーキングされたシンタックス要素)の存在を条件付けするために用いられ得ない。別のフラグlossless_coding_conformance_flagは、transquant_bypass_default_flagが1である場合にシグナリングされる。フラグlossless_coding_conformance_flagが1である場合、無損失コーディングモードにおいて用いられていないシンタックス要素のシグナリングされた値が適切な値を有することを確実にするために、ビットストリーム適合性要件が適用され得る。例えば、適合するビットストリームにおいて、cu_qp_delta_enabled_flag、pps_loop_filter_across_slices_enabled_flag、deblocking filter_control_present_flag、loop_filter_across_tiles_enabled_flag、pps_scaling_list_data_present_flag等を含むシンタックス要素の値は、新たなフラグtransquant_bypass_default_flagが1に設定されている場合に、0に設定されるように要求され得る。そのようなビットストリーム適合性要件は、無損失コーディングにおいて用いられていないシンタックス要素に関係するシグナリングオーバヘッドを最小にするのに役立つことができる。
【0073】
上記で説明したように、いくつかの実施形態では、PPSは、無損失コーディングのインジケーションのために、新たなフラグtransquant_bypass_default_flagを搬送するように用いられる。一方、他の実施形態では、提案されたフラグを搬送するために、シーケンスパラメータセット(SPS)またはビデオパラメータセット(VPS)等の他の高水準シンタックス構造も用いられてもよい。あるいは、スライスレベルの無損失コーディングインジケーションのみが望ましい場合、提案された新たなフラグを搬送するためにスライスセグメントヘッダが用いられてもよい。
【0074】
量子化、変換およびループ内フィルタリングプロセスに関係するいくつかのシンタックス要素は、SPSの一部としてシグナリングされ得ることに留意されたい。そのようなSPSシンタックス要素の例は、log2_min_transform_block_size_minus2、log2_diffmax_min_transform_block_size、max_transform_hierarchy_depth_inter、max_transform_hierarchy_depth_intra、scaling_list_enabled_flag、sample_adaptive_offset_enabled_flag、pcm_loop_filter_disabled_flag、transform_skip_rotation_enabled_flag、transform_skip_context_enabled_flag等を含む。無損失コーディングモードがSPSレベルまたはVPSレベルにおけるフラグtransquant_bypass_default_flagを用いて示される場合、提案されるフラグは、量子化、変形、変形スキップ、変形スキップ回転、およびループ内フィルタリングプロセスに関係するSPSシンタックス要素の存在を条件付けるために用いられ得る。あるいは、同様のビットストリーム適合性要件もまた、これらのシンタックス要素のために適切な値がシグナリングされることを確実にするために、例えば、適合性フラグが設定される場合にループ内フィルタが無効にされることを確実にするために適用され得る。
【0075】
【0076】
スライスヘッダシグナリング
更なる実施形態において、スライスヘッダシグナリングが用いられ得る。PPSと同様に、表2におけるスライスセグメントヘッダも、変形、量子化、およびループ内フィルタリング処理ブロックのために用いられる複数のシンタックス要素(アスタリスクでマーキングされたシンタックス要素)を含む。これらのシンタックス要素は、新たなフラグtransquant_bypass_default_flagの値で条件付けられることが可能であり、無損失コーディングが、transquant_bypass_default_flagを1に設定することによって示されているとき、これらのシンタックス要素はシグナリングされる必要がない場合がある。表6はそのような例を示す。
【0077】
表2に示すように、スライスセグメントヘッダは、量子化、変換およびループ内フィルタリングプロセスに関係付けられたいくつかのシンタックス要素を含む。そのようなスライスセグメントヘッダシンタックス要素(それらの行番号がアスタリスクでマーキングされている)は、slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2およびslice_loop_filter_across_slices_enabled_flagを含む。スライスレベル無損失コーディングが、スライスセグメントヘッダにおいて提案されたフラグtransquant_bypass_default_flagをシグナリングすることによって有効にされている場合、提案されたフラグは、スライスセグメントヘッダにおける量子化、変換およびループ内フィルタリングプロセスに関係付けられたシンタックス要素の存在を条件付けするために用いられ得る。このため、1つの実施形態では、フラグtransquant_bypass_default_flagは、スライスセグメントヘッダにおける量子化、変換およびループ内フィルタリングに関係付けられたシンタックス要素の前に配置される。別の実施形態では、フラグtransquant_bypass_default_flagは、スライスセグメントヘッダにおける代替的なロケーション、例えば、量子化、変換およびループ内フィルタリングに関係付けられたシンタックス要素の後に配置され得る。この場合、ビットストリーム適合性要件は、transquant_bypass_default_flagが1に設定されている場合に、これらのシンタックス要素の値が適切に設定されることを確実にするように適用されるべきである。transquant_bypass_default_flagを1に設定することは、現在のスライス内の全てのコーディングユニットが、無損失モードにおいて、ビットストリーム内の各個々のコーディングユニットのcu_transquant_bypass_flagをシグナリングすることなくコーディングされることを示す。更に、以下のビットストリーム適合性要件、すなわち、提案されるフラグtransquant_bypass_default_flagが1に設定されているとき、現在のスライスが参照するPPSのフラグtransquant_bypass_enabled_flagの値が1に等しいことが適用され得る。
【0078】
表6は、提案されるフラグtransquant_bypass_default_flagが、スライスセグメントヘッダにおける量子化、変換およびループ内フィルタリングに関係付けられたシンタックス要素の前にシグナリングされるときの変更されたスライスセグメントヘッダの1つの例を示す。表6の例は、提案されるtransquant_bypass_default_flagがスライスセグメントヘッダにおいてシグナリングされることを示しているが、このフラグは代わりにPPS(表5)においてシグナリングされてもよく、アスタリスクで示されるスライスセグメントヘッダシンタックス要素の存在を条件付けるように用いられてもよい。
【0079】
【0080】
transquant_bypass_default_flagがPPS拡張の一部としてシグナリングされる表5を例として用いると、
図12は、変更されたPPS拡張シンタックスをデコーダ側でパースするためのアルゴリズムの1つの実施形態を示す。変更されたPPS拡張において、提案されるフラグtransquant_bypass_default_flagがパースされ、その値がステップ1202において検査される。transquant_bypass_default_flagが0に等しい場合、高効率ビデオコーディング(HEVC)範囲拡張テキスト仕様(草案6)における既存のPPS拡張シンタックス要素がパースされ、処理される(ステップ1204)。transquant_bypass_default_flagが1に等しい場合、シンタックス要素chroma_qp_adjustment_enabled_flag、log2_sao_offset_scale_lumaおよびlog2_sao_offset_scale_chromaがパースされず、代わりにそれらの値が0であると推測される(ステップ1206)。フラグlossless_coding_conformance_flagが1である場合(ステップ1207)、ビットストリーム適合性要件が適用される。適合性要件は、量子化、変換、およびループ内フィルタリングに関係付けられた既存のPPSシンタックス要素(例えば、init_qp_minus26、cu_qp_delta_enabled_flag、pps_cb/cr_qp_offset、cu_qp_delta_enabled_flag、pps_loop_filter_across_slices_enabled_flag、deblocking_filter_control_present_flag、loop_filter_across_tiles_enabled_flag、pps_scaling_list_data_present_flag等)のシグナリングされた値をチェックし、これらのシンタックス要素が適切に無効にされていることを確実にすることによって適用される(ステップ1208)。これらのシンタックス要素のうちの1つまたは複数が無効にされていない場合、デコーダはビットストリーム適合性違反を報告し(ステップ1210)、そうでない場合、PPS拡張のパースが正常に完了する。
【0081】
変換木シンタックスシグナリング
無損失コーディングのための変換四分木分割
HEVCおよびHEVC範囲拡張は、変換木分割シンタックスを用いて、変換ユニット(TU)のサイズをシグナリングする。1つの実施形態では、高効率ビデオコーディング(HEVC)範囲拡張テキスト仕様(草案6)のセクション7.3.8.8において指定される変換木シンタックスは、新たな提案されるフラグtransquant_bypass_default_flagに基づいて変更される必要がない。別の実施形態では、変換木シンタックスは、transquant_bypass_default_flagが1に等しいとき、四分木分割フラグ(split_transform_flag)、ならびに/またはルーマおよびクロマ成分のためのコーディングされたブロックフラグ(cbf_luma、cbf_cb、cbf_cr)のシグナリングをバイパスするように単純化され得る。単純化されたtransform_tree()シンタックスが表7に示されている。transquant_bypass_default_flagは、split_transform_flagの存在の更なる条件として用いられる。存在しないとき、ほとんどの場合、split_transform_flagの値は0であると推測され(すなわち、変換四分木分割は適用されない)、変換四分木分割が施行されるとき(例えば、N×Nの区分がイントラコーディングにおいて用いられるとき、または現在のCUサイズが32×32の最も大きな変換サイズよりも大きいとき等)のいくつかの既存の特殊な事例の場合、1であると推測される(すなわち、変換四分木分割が適用される)。更に、表7に示すように、transquant_bypass_default_flagが1に等しいとき、transform_tree()内の(ルーマ成分およびクロマ成分についての)全てのcbfフラグのシグナリングがスキップされ得る。代わりにそれらの値は、1に等しいと推定され得る。なぜなら、無損失コーディングにおいて量子化プロセスがないことに起因して、cbfフラグが非ゼロ値を有する可能性が最も高いためである。
【0082】
cbf_luma、cbf_cb、およびcbf_crのセマンティクスも変更され得る。1に等しいcbf_luma[x0][y0][trafoDepth]の値は、ルーマ変換ブロックが、0に等しくない1または複数の変換係数レベルを含むことを指定するために用いられ得る。アレイインデックスx0、y0は、ピクチャの左上のルーマサンプルに対する検討中の変換ブロックの左上のルーマサンプルのロケーション(x0,y0)を指定する。アレイインデックスtrafoDepthは、変換コーディングの目的での、ブロックへのコーディングブロックの現在の細分化レベルを指定する。コーディングブロックに対応するブロックについて、trafoDepthは0に等しい。cbf_luma[x0][y0][trafoDepth]は、存在しないとき、1に等しいと推測される。
【0083】
1に等しいcbf_cb[x0][y0][trafoDepth]の値は、Cb変換ブロックが、0に等しくない1または複数の変換係数レベルを含むことを示すために用いられ得る。アレイインデックスx0、y0は、検討される変換ユニットの左上ロケーション(x0、y0)を指定する。アレイインデックスtrafoDepthは、変換コーディングの目的での、ブロックへのコーディングブロックの現在の細分化レベルを指定する。コーディングブロックに対応するブロックについて、trafoDepthは0に等しい。cbf_cb[x0][y0][trafoDepth]は、存在しないとき、cbf_cb[x0][y0][trafoDepth]の値は、以下のように推測され得る。
【0084】
・transquant_bypass_default_flagが1に等しい場合、cbf_cb[x0][y0][trafoDepth]は1に等しいと推測される
・そうではなく、trafoDepthが0よりも大きく、かつlog2TrafoSizeが2に等しい場合、cbf_cb[x0][y0][trafoDepth]はcbf_cb[xBase][yBase][trafoDepth-1]に等しいと推測される
・そうでない場合、cbf_cb[x0][y0][trafoDepth]は0に等しいと推測される。
【0085】
1に等しいcbf_cr[x0][y0][trafoDepth]の値は、Cr変換ブロックが、0に等しくない1または複数の変換係数レベルを含むことを指定する。アレイインデックスx0、y0は、検討される変換ユニットの左上のロケーション(x0,y0)を指定する。アレイインデックスtrafoDepthは、変換コーディングの目的での、ブロックへのコーディングブロックの現在の細分化レベルを指定する。コーディングブロックに対応するブロックについて、trafoDepthの値は0に等しい。
【0086】
cbf_cr[x0][y0][trafoDepth]が存在しないとき、cbf_cr[x0][y0][trafoDepth]の値は以下のように推測され得る。
【0087】
・transquant_bypass_default_flagが1に等しいとき、cbf_cr[x0][y0][trafoDepth]は1に等しいと推測される
・そうではなく、trafoDepthが0よりも大きく、かつlog2TrafoSizeが2に等しい場合、cbf_cr[x0][y0][trafoDepth]がcbf_cr[xBase][yBase][trafoDepth-1]に等しいと推測される
・そうでない場合、cbf_cr[x0][y0][trafoDepth]は0に等しいと推測される。
【0088】
表7は、提案される高水準フラグtransquant_bypass_default_flagを用いてtransform_tree()シンタックスを単純化する例を示すが、同じことに従って、split_transform_flag、cbf_luma、cbf_cbおよびcbf_crの存在を条件付けるために、既存のブロックレベルのフラグcu_tranquant_bypass_flagが代わりに用いられてもよい。
【0089】
【0090】
表7に示す一実施形態において、異なるサイズの、かつ異なるコーディングモードでコーディングされたCUについて、四分木分割フラグsplit_transform_flagおよびコーディングされたブロックフラグcbf_luma、cbf_cbおよびcbf_crはバイパスされ、フラグtransquant_bypass_default_flagが1に等しいとき、対応するデフォルト値であると推測される。一方、入力ビデオの特性に依拠して、異なるブロックサイズおよびコーディングモードを用いるCUの残差は、独特の統計的特性を呈することができる。この場合、1つのピクチャまたはシーケンス内の全てのCUについて変換四分木分割を無効にすることは有益でない場合がある。代わりに、コーディング性能を改善するために、開示の1つの実施形態として、提案されるtransquant_bypass_default_flagが、コーディングされるCUのブロックサイズ、コーディングモード(すなわち、インター、イントラまたはIBC)、またはブロックサイズおよびコーディングモードの組み合わせに依拠して、条件に応じて、変換四分木分割フラグおよび/またはコーディングされたブロックフラグのシグナリングをバイパスするために用いられる。例えば、複雑度および性能のトレードオフの観点において、ブロックが非イントラモードを用いてコーディングされ(すなわち、インターまたはIBCモードを用いてコーディングされ)、ブロックサイズが8×8または16×16である場合にのみ変換四分木分割を可能にすることが有益であり得る。
【0091】
1つの実施形態では、フラグtransquant_bypass_default_flagが1に等しいとき、以下が適用される。全てのイントラコーディングされたCUについて、および64×64~32×32のブロックサイズを有する全てのインターコーディングおよびIBCコーディングされたCUについて、split_transform_flagおよび/またはコーディングされたブロックフラグ(cbf_luma、cbf_cbおよびcbf_cr)はシグナリングされず、それらは上記で論考したように対応するデフォルト値であると推測される。インターモードまたはIBCモードでコーディングされた8×8および16×16のCUの場合、更なる分割が許可され得る。split_transform_flagおよび/またはコーディングされたブロックフラグ(cbf_luma、cbf_cbおよびcbf_cr)は、現在のブロックが4つの四分木に更に区分されるか否かおよび/または1つのTU内の係数がオールゼロであるか否かをそれぞれ示すように、依然としてシグナリングされる。
【0092】
いくつかの実施形態では、2つのシンタックス要素log2_intra_max_no_transform_split_coding_block_size_minus3およびlog2_inter_max_no_transform_split_coding_block_size_minus3がSPSまたはPPSに加えられ、それぞれイントラおよびインター/IBCコーディングされたCUに変換四分木分割が適用される最大CUサイズを指定する。例えば、上記の条件1)および2)を用いて、log2_intra_max_no_transform_split_coding_block_size_minus3およびlog2_inter_max_no_transform_split_coding_block_size_minus3の値がそれぞれlog2(64)-3=3およびlog2(16)-3=1に設定される。表8は、2つの提案されるシンタックス要素を有する変更されたSPSスクリーンコンテンツコーディング拡張シンタックステーブルを示す。
【0093】
表8は、2つの追加のシンタックス要素を示すが、本開示の別の実施形態では、log2_intra_max_no_transform_split_coding_block_size_minus3の値はシグナリングされない場合がある。代わりに、値は、許可される最大CUサイズと常に同じであると推測され得る。許可される最大CUサイズは、最小CUサイズ(SPS内のシンタックス要素log2_min_luma_coding_block_size_minus3によって指定される)を、最大CUサイズと最小CUサイズとの差(SPS内のシンタックス要素log2_diff_max_min_luma_coding_block_sizeによって指定される)と加算することによって導出され得る。そのような実施形態において、CUがイントラモードでコーディングされ、無損失コーディングが適用されているとき、変換四分木分割は許容されない。
【0094】
【0095】
log2_intra_max_no_transform_partition_coding_block_size_minus3の値に3をプラスした値は、コーディングユニットがイントラコーディングされるとき、およびcu_transquant_bypass_flagが1に等しいときに変換四分木分割が適用されるコーディングユニットの最大ブロックサイズを指定する。
【0096】
log2_inter_max_no_transform_partition_coding_block_size_minus3の値に3をプラスした値は、コーディングユニットがインターコーディングまたはイントラブロックコピーコーディングされるとき、およびcu_transquant_bypass_flagが1に等しいときに変換四分木分割が適用されるコーディングユニットの最大ブロックサイズを指定する。
【0097】
表9は、ブロックサイズおよび現在のCUのコーディングモードを条件としたsplit_transform_flag、cbf_luma、cbf_cbおよびcbf_crの提案されるシグナリング制約を有する変更されたtransform_tree()シンタックステーブルを示す。この例示的な実施形態は、split_transform_flagおよびcbfのシグナリングを可能にするか否かを条件付けるためにCUコーディングモードおよびCUサイズの双方を用いるが、他の変更された条件が用いられてもよいことに留意されたい。例えば、コーディングモードおよびブロックサイズのいずれか(双方ではない)が用いられてもよい。更に、別個の(および異なる)条件がsplit_transform_flagシグナリングまたはcbfシグナリングに適用されてもよい。
【0098】
【0099】
別の実施形態では、無損失の場合にsplit_transform_flagのシグナリングをスキップするために、SPSにおけるシンタックス要素max_transform_hierarchy_depth_interおよびmax_transform_hierarchy_depth_intraが0に設定され得る。この方法は、現在のtransform_tree()シンタックスに対する低レベルの変更を必要とせず、シーケンスレベル無損失コーディングの場合にtransform_skip_flagのシグナリングをバイパスする。そのような実施形態において、split_transform_flagはシグナリングされず、代わりに、デフォルト値であると推測される。デフォルト値は、TU四分木分割が施行される場合を除いて、ほとんどの場合に0である(例えば、イントラコーディングについて、またはCUサイズが最も大きなTUサイズよりも大きいとき等にN×Nの区分が用いられる)。このため、シーケンスレベル無損失コーディングが適用されるとき、max_transform_hierarchy_depth_interおよびmax_transform_hierarchy_depth_intraが適切に0に設定されることを必要とするビットストリーム制約を課すことによって、ブロックレベル変更を一切必要とすることなくtransform_split_flagのシグナリングがバイパスされ得る。同様に、transform_split_flagのシグナリングは、シーケンスレベルの無損失コーディングの場合、最大変換サイズおよび最小変換サイズが同じでなくてはならないというビットストリーム制約を課すことによって、ブロックレベル変更を一切必要とすることなくバイパスされ得る。この制約は、シーケンスレベル無損失コーディングの場合に、SPSシンタックスlog2_diff_max_min_transform_block_sizeが0に設定されることを必要とすることによって達成され得る。max_transform_hierarchy_depth_inter、max_transform_hierarchy_depth_intraおよびlog2_diff_max_min_transform_block_sizeはSPS内に位置するので、この場合、transquant_bypass_default_flagもSPS内に入れることがより好ましい場合がある。
【0100】
開示の別の実施形態において、フラグtransquant_bypass_default_flagを追加することなく無損失コーディングのためのエンコーダのみの方法が提案される。そのような一実施形態において、transquant_bypass_default_flagを用いる条件付きの項は、ダガー(†)を用いてマーキングされた表7および表9におけるシンタックス要素から省かれ得る。この実施形態は、SPS内のシンタックス要素max_transform_hierarchy_depth_interおよびmax_transform_hierarchy_depth_intraまたはtransform_tree()内のシンタックス要素の値の変更を必要としない。符号化複雑度を低減するために、フラグsplit_tranform_flagは依然としてエンコーダのみの方法のためにシグナリングされているが、表7または表9に記載されているようなsplit_transform_flagのデフォルト値によって示される変換四分木分割のみがCUごとに試験される。
【0101】
いくつかの実施形態では、現在のCUについてフラグcu_transquant_bypass_flagが1に等しいとき、エンコーダは、ほとんどの場合について、非変形四分木区分のレート-歪み(R-D)性能のみを試験し、N×NのPU区分がイントラコーディングされたCUに適用されるかまたは現在のCUサイズが閾値よりも大きいとき等のいくつかの特殊な場合について、ワンタイム変換四分木区分(one-time transform quadtree partition)のR-D性能を試験する。このようにして、このエンコーダのみの方法は、ダガー(†)を用いてマーキングされたシンタックス要素における表7内のフラグsplit_transform_flagに適用される条件と適合している。
【0102】
別の実施形態では、フラグcu_transquant_bypass_flagが1に等しいとき、エンコーダはCUが厳密に1つの予測ユニットを含むとき、64×64~32×32のブロックサイズを有する全てのイントラコーディングされたCUおよび全てのインター/IBCコーディングされたCUについて変換四分木区分のR-D性能のみを試験し、CUが少なくとも2つの予測ユニットを含むとき、64×64~32×32のブロックサイズを有する全てのイントラコーディングされたCUおよび全てのインター/IBCコーディングされたCUについてワンタイム変換四分木区分のR-D性能のみを試験し、ブロックサイズ16×16および8×8を有するインター/IBCコーディングされたCUについて、非変換四分木分割および更なる変換四分木分割の双方のR-D性能がエンコーダによって試験される。このため、このエンコーダのみの方法は、表9におけるダガー(†)を用いてマーキングされたフラグsplit_transform_flagに適用される条件に適合する。更に、フラグsplit_transform_flagは依然として上記のエンコーダのみの方法のためにビットストリームにおいてシグナリングされるが、1つのビットストリーム適合性制約が、ブロックサイズおよびブロックコーディングモードに依拠してシンタックス要素split_transform_flagの値がそのデフォルト値に設定されることを要求するために適用されてもよい。
【0103】
いくつかの実施形態では、変換四分木分割フラグのデフォルト値の決定は、少なくとも部分的に、関連コーディングユニットにおける複数の予測ユニットに基づく。1つのそのような実施形態において、デフォルト値の決定は、コーディングユニットがイントラコーディングされているか否か、コーディングユニットのサイズがサイズ閾値よりも大きいか否か、およびコーディングユニットが厳密に1つの予測ユニットを含むか否かを決定することを含む。コーディングユニットがイントラコーディングされておらず、コーディングユニットがサイズ閾値より大きく、コーディングユニットが厳密に1つの予測ユニットを含むという判断に応答して、変換四分木分割フラグのデフォルト値は、非変換四分木区分を示すように設定される。
【0104】
別のそのような実施形態では、変換四分木分割フラグのデフォルト値の決定は、関連コーディングユニットがイントラコーディングされているか否か、コーディングユニットのサイズがサイズ閾値よりも大きいか否か、および第1のコーディングユニットが少なくとも2つの予測ユニットを含むか否かを判断することを含む。コーディングユニットがイントラコーディングされておらず、コーディングユニットがサイズ閾値より大きく、コーディングユニットが少なくとも2つの予測ユニットを含むという判断に応答して、変換四分木分割フラグのデフォルト値は、ワンタイム変換四分木区分を示すように設定される。
【0105】
更なる実施形態では、変換四分木分割フラグのデフォルト値の決定は、関連コーディングユニットがイントラコーディングされているか否か、および第1のコーディングユニットが厳密に1つの予測ユニットを含むか否かを判断することを含む。コーディングユニットがイントラコーディングされ、厳密に1つの予測ユニットを含むという判断に応答して、変換四分木分割フラグのデフォルト値は、非変換四分木区分を示すように設定される。
【0106】
別の実施形態では、変換四分木分割フラグのデフォルト値の決定は、関連コーディングユニットがイントラコーディングされているか否か、およびコーディングユニットが少なくとも2つの予測ユニットを含むか否かを判断することを含む。コーディングユニットがイントラコーディングされておらず、かつコーディングユニットが少なくとも2つの予測ユニットを含むという判断に応答して、変換四分木分割フラグのデフォルト値が、ワンタイム変換四分木区分を示すように設定される。
【0107】
コーディングユニットが厳密に1つの予測ユニットを含むかまたは少なくとも2つの予測ユニットを含むかの判断は、コーディングユニットの区分モードを判断することによって行われ得る。例えば、2N×2Nの区分モードを用いるコーディングユニットは厳密に1つの予測ユニットを含む一方、例えば、2N×N、N×2N、2N×nU、2N×nD、nL×2N、nR×2NまたはN×Nの区分モードを用いるコーディングユニットは、少なくとも2つの予測ユニットを含む。
【0108】
イントラブロックコピーモードのための変換木分割
変換四分木分割の最大深度は、符号化および復号の複雑度と密接に関係している。符号化効率と計算複雑度との間の柔軟なトレードオフを与えるために、HEVCおよびその拡張は、SPSにおいてシンタックス要素を用いて、TUサイズおよびTU分割深度を指定する。値log2_min_luma_transform_block_size_minus2およびlog2_diff_max_min_luma_transform_block_sizeは、ビデオシーケンスをコーディングするのに用いられるTUサイズの組を示し、max_transform_hierarchy_depth_interおよびmax_transform_hierarchy_depth_intraは、それぞれ、イントラおよびインターコーディングされたCUのための最大分割深度を示す。ある特定の条件において、変換四分木分割は適用されない場合がある。例えば、max_transform_hierarchy_depth_intra/interが0に設定される場合、変換四分木分割は現在のイントラ/インターコーディングされたCUに適用されない。
【0109】
HEVC、その範囲拡張、およびSCC草案において、変換四分木分割が無効にされているとき、1つの暗黙的なTU区分方法が、損失ありコーディングおよび無損失コーディングの双方に適用され、それによって、split_transform_flagの値は、複数の予測ユニット(PU)に区分され、インターモードにおいてコーディングされたCUについて、常に1である(すなわち、変換四分木分割が適用される)と推測される。これは、CU内のPUの異なる動きベクトルが人工的な高周波数情報を引き起こし、近傍のPU間の境界にわたって一貫性のない残差をもたらすことに起因している。この場合、CUをより小さなTUに分割することは、CUのサイズと同じ大きさのTUサイズを用いるよりも良好なコーディング効率を提供することができる。
【0110】
HEVCスクリーンコンテンツコーディング拡張[0057]の研究草案において、上記の暗黙的TU区分は、IBCモードにおいてコーディングされたCUに適用されない。より詳細には、変換四分木分割が無効にされているとき、split_transform_flagの値は、全てのIBCコーディングされたCUについて常に0である(すなわち、変換ユニットサイズがCUのものと同じに設定される)と推測される。IBCモードとインターモードとの間の固有の類似性を与えられると、IBCコーディングされたCUの残差は、インターコーディングされたCUのものと類似した特性を呈することができる。したがって、変換コーディングの効率を更に改善するために、IBCコーディングされたCUに暗黙的TU区分を適用する(すなわち、split_transform_flagの値が1であると推測する)ことも有利であり得る。本明細書において説明される一実施形態において、変換四分木区分が無効にされているとき、インターモードに適用される同じ暗黙的TU区分方法も、損失ありコーディングおよび無損失コーディングの双方におけるIBCコーディングされたCUに用いられる。換言すれば、2つ以上のPU区分(例えば、2N×N、N×2NおよびN×N)がIBCモードでコーディングされた現在のCUに存在するとき、split_transform_flagの値は1である(すなわち、変換四分木が分割される)と推測される。
【0111】
split_transform_flagの値の導出プロセスは、[0057]のセクション7.4.9.9において指定されている。本明細書に開示する例示的な実施形態におけるIBCモードのための暗黙的なTU分割の有効化に伴い、split_transform_flagのセマンティクスは以下のように動作する。
【0112】
アレイsplit_transform_flag[x0][y0][trafoDepth]は、ブロックが、変換コーディングの目的で2分の1の水平サイズおよび2分の1の垂直サイズを有する4つのブロックに分割されるか否かを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する検討中のブロックの左上ルーマサンプルのロケーション(x0、y0)を指定する。アレイインデックスtrafoDepthは、変換コーディングの目的で、ブロックへのコーディングブロックの現在の細分化レベルを指定する。コーディングブロックに対応するブロックについて、trafoDepthの値は0に等しい。
【0113】
変数interSplitFlagは、以下のように導出される。InterSplitFlagは、以下の条件、すなわち、max_transform_hierarchy_depth_interが0に等しくかつCuPredMode[x0][y0]がMODE_INTERに等しい、またはintra_bc_flag[x0][y0]が1に等しくかつPartModeがPART_2Nx2Nに等しくなく、かつtrafoDepthが0に等しい、のうちの1つまたは複数が適用されるとき、1に等しく設定される。そうでない場合、interSplitFlagが0に等しく設定される。
【0114】
split_transform_flag[x0][y0][trafoDepth]が存在しないとき、その値は以下のように推測される。以下の条件、すなわち、log2TrafoSizeがMaxTbLog2SizeYよりも大きいか、IntraSplitFlagが1に等しくかつtrafoDepthが0に等しいか、またはinterSplitFlagが1に等しい、のうちの1つまたは複数が真である場合、split_transform_flag[x0][y0][trafoDepth]の値が1に等しいと推測される。そうでない場合、split_transform_flag[x0][y0][trafoDepth]の値は0に等しいと推測される。
【0115】
実施形態
例示的な実施形態において、スライスセグメントヘッダおよび複数のコーディングユニットを含むビデオスライスをコーディングする方法が提供される。本方法は、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているか否かを示す、スライスセグメントヘッダにおけるバイパスフラグを生成することを含む。
【0116】
いくつかのそのような実施形態において、バイパスフラグは、transquant_bypass_default_flagである。本方法は、transquant_bypass_enabled_flagを含むピクチャパラメータセット(PPS)を生成することを含むことができ、ここで、スライスは、ピクチャパラメータセットを参照し、transquant_bypass_enabled_flagは、transquant_bypass_default_flagが1に設定されているとき、ゼロに設定される。
【0117】
いくつかの実施形態では、バイパスフラグは、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているわけではないことを示し、本方法は、スライスセグメントヘッダにおいて、損失ありコーディングに関係付けられたシンタックス要素を生成することを含む。バイパスフラグは、損失ありコーディングに関係付けられたシンタックス要素の前に位置決めされ得る。
【0118】
いくつかの実施形態において、バイパスフラグは、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているわけではないことを示し、本方法は、スライスセグメントヘッダにおいて、量子化、変換およびループ内フィルタリングプロセスに関係付けられたシンタックス要素を生成することを更に含む。バイパスフラグは、量子化、変換およびループ内フィルタリングプロセスに関係付けられたシンタックス要素の前に位置決めされ得る。
【0119】
いくつかの実施形態では、バイパスフラグは、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされるわけではないことを示し、本方法は、スライスセグメントヘッダにおいて、slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2およびslice_loop_filter_across_slices_enabled_flagからなる群から選択された1または複数のシンタックス要素を生成することを更に含む。バイパスフラグは、slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2およびslice_loop_filter_across_slices_enabled_flagからなる群から選択された1または複数のシンタックス要素の前に位置決めされ得る。
【0120】
いくつかの実施形態では、バイパスフラグは、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされていることを示し、本方法は、スライスセグメントヘッダから、損失ありコーディングに関係付けられたシンタックス要素を除外することを更に含む。
【0121】
いくつかの実施形態では、バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされていることを示す場合、本方法は、スライスセグメントヘッダから、量子化、変換およびループ内フィルタリングプロセスに関係付けられたシンタックス要素を除外することを更に伴う。
【0122】
いくつかの実施形態では、バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされていることを示す場合、本方法は、スライスセグメントヘッダから、slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2およびslice_loop_filter_across_slices_enabled_flagからなる群から選択された1または複数のシンタックス要素を除外することを更に伴う。
【0123】
いくつかの実施形態では、バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされるわけではないことを示す場合、本方法は、スライス内のコーディングユニットごとにcu_transquant_bypass_flagをシグナリングすることを更に含む。
【0124】
いくつかの実施形態では、バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされていることを示す場合、本方法は、スライス内の各コーディングユニットからcu_transquant_bypass_flagを除外することを更に伴う。
【0125】
例示的な実施形態では、ピクチャパラメータセットおよびピクチャパラメータセット(PPS)を参照する少なくとも1つのスライスを含むビデオをコーディングする方法が提供される。ここで、スライスは、スライスセグメントヘッダおよび複数のコーディングユニットを含む。この実施形態において、本方法は、ピクチャパラメータセットにおいて、ピクチャパラメータセットを参照するスライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているか否かを示すバイパスフラグを生成することを含む。
【0126】
いくつかのそのような実施形態では、バイパスフラグは、transquant_bypass_default_flagである。ピクチャパラメータセット(PPS)は、transquant_bypass_enabled_flagを含み、transquant_bypass_enabled_flagは、transquant_bypass_default_flagが1に設定されるとき、0に設定される。
【0127】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているわけではないことを示すいくつかの実施形態では、本方法は、スライスセグメントヘッダにおいて、損失ありコーディングに関係付けられたシンタックス要素を生成することを更に含む。
【0128】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているわけではないことを示すいくつかの実施形態において、本方法は、スライスセグメントヘッダにおいて、量子化、変換およびループ内フィルタリングプロセスに関係付けられたシンタックス要素を生成することを更に含む。
【0129】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているわけではないことを示すいくつかの実施形態において、本方法は、スライスセグメントヘッダにおいて、slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2およびslice_loop_filter_across_slices_enabled_flagからなる群から選択された1または複数のシンタックス要素を生成することを更に含む。
【0130】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされていることを示すいくつかの実施形態において、本方法は、スライスセグメントヘッダから、損失ありコーディングに関係するシンタックス要素を除外することを更に伴う。
【0131】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされていることを示すいくつかの実施形態において、本方法は、スライスセグメントヘッダから、量子化、変換およびループ内フィルタリングプロセスに関係付けられたシンタックス要素を除外することを更に伴う。
【0132】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされていることを示すいくつかの実施形態において、本方法は、スライスセグメントヘッダから、slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2およびslice_loop_filter_across_slices_enabled_flagからなる群から選択された1または複数のシンタックス要素を除外することを伴う。
【0133】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているわけではないことを示すいくつかの実施形態において、本方法は、スライス内のコーディングユニットごとに、cu_transquant_bypass_flagをシグナリングすることを更に含む。
【0134】
バイパスフラグが、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているわけではないことを示すいくつかの実施形態において、本方法は、スライス内の各コーディングユニットからcu_transquant_bypass_flagを除外することを更に伴う。
【0135】
例示的な実施形態において、ビデオをコーディングする方法が提供され、ここで、ビデオは、高水準シンタックス構造および高水準シンタックス構造を参照する少なくとも1つのスライスを含み、スライスは複数のコーディングユニットを含む。本方法は、スライス内の全てのコーディングユニットが無損失コーディングを用いてコーディングされているか否かを示す高水準シンタックス構造においてバイパスフラグを生成することを含む。各それぞれのコーディングユニットについて、四分木分割フラグを生成するべきか否かの判断が行われる。この判断は、少なくとも部分的に、それぞれのコーディングユニットのブロックサイズおよびコーディングモードからなる群から選択されたパラメータに基づく。四分木分割フラグは、四分木分割フラグを生成する判断を行った後にのみ、それぞれのコーディングユニットについて生成される。
【0136】
そのような実施形態において、高水準シンタックス構造は、ピクチャパラメータセット、セグメントスライスヘッダまたはsplit_transform_flagであり得る。いくつかのそのような実施形態において、四分木分割フラグは、ブロックが非イントラモードを用いてコーディングされており、かつブロックサイズが8×8または16×16であるときにのみ生成される。四分木分割フラグは、ブロックサイズが64×64~32×32である場合、生成されない。
【0137】
いくつかの実施形態は、最大非変換四分木分割ブロックコーディングサイズを示す高水準シンタックス要素を生成することを更に伴う。いくつかの実施形態では、最大非変換四分木分割ブロックコーディングサイズを示す高水準シンタックス要素がシーケンスパラメータセット(SPS)において生成される。いくつかの実施形態では、最大非変換四分木分割ブロックコーディングサイズを示す高水準シンタックス要素は、ピクチャパラメータセット(PPS)において生成される。
【0138】
いくつかの実施形態では、高水準シンタックス要素は、最大非変換四分木分割ブロックコーディングサイズが、非イントラモードにおいてコーディングされたブロックのための最大非変換四分木分割ブロックコーディングサイズを示すことを示すのに用いられる。
【0139】
いくつかの実施形態では、ブロックが非イントラモードを用いてコーディングされており、かつ非イントラモードにおいてコーディングされたブロックについて、ブロックサイズが最大非変換四分木分割ブロックコーディングサイズよりも大きくない場合に四分木分割フラグが生成される。
【0140】
いくつかの実施形態において、最大非変換四分木分割ブロックコーディングサイズを示す高水準シンタックス要素が、イントラモードにおいてコーディングされたブロックについて、最大非変換分割ブロックコーディングサイズを示す。
【0141】
いくつかの実施形態において、四分木分割フラグは、ブロックがイントラモードを用いてコーディングされており、かつイントラモードにおいてコーディングされたブロックについて、ブロックサイズが最大非変換四分木分割ブロックコーディングサイズ以下である場合に生成される。
【0142】
例示的な実施形態において、ビデオをコーディングする方法が提供される。ビデオは、高水準シンタックス構造および高水準シンタックス構造を参照する少なくとも1つのスライスを含み、スライスは、複数のコーディングユニットを含む。本方法は、高水準シンタックス構造において、スライス内のコーディングユニットの全てが無損失コーディングでコーディングされているか否かを示すバイパスフラグを生成することを含む。各それぞれのコーディングユニットについて、コーディングされたブロックフラグを生成するか否かの判断が行われる。判断は、少なくとも部分的に、それぞれのコーディングユニットのブロックサイズおよびコーディングモードからなる群から選択されたパラメータに基づく。コーディングされたブロックフラグは、コーディングされたブロックフラグを生成する判断を行った後にのみ、それぞれのコーディングユニットについて生成される。
【0143】
そのような実施形態において、高水準シンタックス構造は、ピクチャパラメータセットまたはセグメントスライスヘッダであり得る。コーディングされたブロックフラグは、cbf_lumaflag、cbf_cbflagまたはcbf_crflagのうちの1または複数であり得る。いくつかの実施形態では、コーディングされたブロックフラグは、ブロックが非イントラモードを用いてコーディングされており、かつブロックサイズが8×8または16×16であるときにのみ生成されるのに対し、コーディングされたブロックフラグは、ブロックがイントラモードを用いてコーディングされるかまたはブロックサイズが64×64~32×32である場合、生成されない。
【0144】
いくつかの実施形態では、最大非変換四分木分割ブロックコーディングサイズを示す高水準シンタックス要素が生成される。最大非変換四分木分割ブロックコーディングサイズを示す高水準シンタックス要素は、シーケンスパラメータセット(SPS)またはピクチャパラメータセット(PPS)において生成され得る。
【0145】
いくつかの実施形態では、最大非変換四分木分割ブロックコーディングサイズを示す高水準シンタックス要素は、非イントラモードにおいてコーディングされたブロックのための最大非変換四分木分割ブロックコーディングサイズを示す。ブロックが非イントラモードを用いてコーディングされており、かつイントラモードにおいてコーディングされたブロックについて、ブロックサイズが最大非変換分割ブロックコーディングサイズ以下の場合に、コーディングされたフラグが生成される。
【0146】
いくつかの実施形態において、最大非変換分割ブロックコーディングサイズを示す高水準シンタックス要素が、イントラモードにおいてコーディングされたブロックのための最大非変換分割ブロックコーディングサイズを示す。
【0147】
いくつかの実施形態では、コーディングされたブロックフラグは、ブロックがイントラモードを用いてコーディングされており、かつイントラモードにおいてコーディングされたブロックについて、ブロックサイズが最大非変換分割ブロックコーディングサイズ以下である場合に生成される。
【0148】
例示的な実施形態において、ビデオをコーティングする方法が提供される。ここで、ビデオは高水準シンタックス構造および高水準シンタックス構造を参照する少なくとも1つのスライスを含み、スライスは、複数のコーディングユニットを含む。本方法は、フラグcu_transquant_bypass_flagがコーディングユニットについて1に等しいと判断することを含む。判断は、コーディングユニットサイズおよびコーディングユニットのコーディングモードのうちの少なくとも一方に基づいて、ワンタイム変換四分木区分のレート-歪み性能を試験するために行われる。判断後、ワンタイム変換四分木区分のレート-歪み性能が試験される。
【0149】
いくつかのそのような実施形態では、本方法は、更なるコーディングユニットについて、ワンタイム変換四分木区分のレート-歪み性能を試験しないことの判断を行うことを更に含む。レート-歪み性能の試験は、追加のコーディングユニットのための非変換四分木区分についてのみ実行される。
【0150】
例示的な実施形態において、ビデオをコーディングする方法が提供される。ここで、ビデオは、分割変換フラグを含む変換木シンタックスを含み、複数のコーディングユニットを更に含む。本方法は、それぞれのコーディングユニットについて、コーディングユニットがイントラブロックコピーモードでコーディングされているか否か、および2つ以上の予測ユニット区分がコーディングユニット内に存在するか否かを判断することを含む。コーディングユニットがイントラブロックコピーモードでコーディングされており、かつ2つ以上の予測ユニット区分がコーディングユニット内に存在するという判断に応答して、分割変換フラグの値が1であると推測される。
【0151】
例示的な方法において、変換および量子化プロセスがバイパスされることを示すコーディングユニットフラグのためのデフォルト値を含む高水準シンタックス構造が生成される。
【0152】
いくつかのそのような実施形態では、高水準シンタックス構造を参照するスライス内の全てのコーディングユニットのcu_transquant_bypass_flagのデフォルト値を示すデフォルト値、transquant_bypass_default_flagが1に設定される。高水準シンタックス構造は、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)またはスライスセグメントヘッダのうちの少なくとも1つであり得る。
【0153】
いくつかの実施形態では、本方法は、transquant_bypass_enabled_flagが0に等しいPPSを含むビットストリームを生成することを含む。いくつかの実施形態では、本方法は、ビットストリームを生成することを含み、コーディングユニットパラメータはcu_transquant_bypass_flagを含まない。
【0154】
例示的な実施形態では、特定の高水準シンタックス構造における高水準シンタックス要素を介して、その特定の高水準シンタックス構造を参照する全てのCUについて、変換、変換スキップ、量子化およびループ内フィルタリングプロセスをバイパスするようにデコーダにシグナリングする方法が提供される。
【0155】
別の例示的な実施形態では、逆量子化、逆変換およびループ内フィルタリングプロセスのうちの任意の1または複数に関係付けられた複数のPPSシンタックス要素の存在を特定するための高水準シンタックス要素を受信および処理するようにデコーダを動作させる方法が提供される。
【0156】
いくつかのそのような方法において、高水準シンタックス要素は、デフォルトフラグ値(transquant_bypass_default_flag)である。いくつかのそのような方法において、高水準シンタックス要素は、transform_skip_enabled_flag要素の存在を特定するために用いられる。
【0157】
いくつかの実施形態では、本方法は、推測によりtransquant_bypass_enabled_flagが0であると判断し、これに応じて、CUレベルにおいてcu_transquant_bypass_flagのシグナリングを削除またはスキップすることを含む。いくつかの実施形態では、デフォルトフラグは、PPS拡張パラメータセットまたはSPS拡張パラメータセットのうちの少なくとも1つに含まれる。
【0158】
いくつかの実施形態において、デフォルトフラグの存在は、transquant_bypass_enabled_flagの値を条件とする。いくつかの実施形態において、デフォルトフラグはtransquant_bypass_default_flagである。
【0159】
いくつかの実施形態において、本方法は、無損失コーディングモードにおいて使用されないシンタックス要素のシグナリングされた値が適切に設定されたことを示す追加の適合性フラグのシグナリングを受信することを更に含む。
【0160】
いくつかの実施形態では、cu_qp_delta_enabled_flag、pps_loop_filter_across_slices_enabled_flag、deblocking_filter_control_present_flag、loop_filter_across_tiles_enabled_flag、pps_scaling_list_data_present_flagを含むシンタックス要素は、フラグtransquant_bypass_default_flagが1に設定される場合に0に設定される。
【0161】
例示的な実施形態では、無損失コーディングが用いられることを示す高水準シグナリング無損失コーディングシンタックス要素を含むビデオデータビットストリームを受信する方法が提供される。
【0162】
いくつかのそのような方法では、高水準シグナリングシンタックスは、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)またはスライスセグメントヘッダのうちの1つである。いくつかのそのような方法では、無損失コーディングシンタックス要素は、量子化、変形、変形スキップ、変形スキップ回転、およびループ内フィルタリングプロセスに関係付けられた1または複数のSPSシンタックス要素を表すための条件として用いられる。
【0163】
例示的な実施形態において、スライスセグメントヘッダが受信され、デフォルトフラグは、変換、量子化およびループ内フィルタリング処理ブロックのために用いられるスライスセグメントシンタックス要素の特定を条件付けるためのものである。いくつかのそのような方法において、デフォルトフラグはtransquant_bypass_default_flagである。
【0164】
例示的な実施形態において、高水準無損失コーディングインジケーションを受信し、これに応じて複数の処理ブロックをシャットダウンする方法がビデオデコーダにおいて実行される。いくつかのそのような実施形態では、高水準無損失コーディングインジケーションは、PPS、SPS、VPSまたはスライスヘッダのうちの1つのパラメータ要素である。いくつかの実施形態では、複数の処理ブロックは、以下のハードウェアブロック、すなわち、逆量子化、逆変換、デブロッキングフィルタ、SAOのうちの任意のもののうちの1または複数を含む。
【0165】
上記の技法のうちの任意のものを用いて符号化されたビデオが、任意の適切な有線もしくは無線伝送媒体を用いて送信されることが可能であり、かつ/または任意の適切な非一時的デジタルストレージ媒体上に記録されることが可能である。
【0166】
特徴および要素が、上記において特定の組み合わせで説明されたが、当業者であれば、各特徴または要素は、単独で、または他の特徴と要素との任意の組み合わせで用いられ得ることを理解するであろう。更に、本明細書において説明される方法は、コンピュータまたはプロセッサによって実行するためのコンピュータ可読媒体に組み込まれたコンピュータプログラム、ソフトウェアまたはファームウェアにおいて実施され得る。コンピュータ可読媒体の例は、(有線または無線接続を介して送信される)電子信号およびコンピュータ可読記憶媒体を含む。コンピュータ可読記憶媒体の例は、限定ではないが、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内部ハードディスクおよび取り外し可能ディスク等の磁気媒体、磁気光媒体、ならびにCD-ROMディスクおよびデジタル多用途ディスク(DVD)等の光媒体を含む。ソフトウェアに関連付けられたプロセッサは、WTRU、UE、端末、基地局、RNCまたは任意のホストコンピュータにおいて用いるための無線周波数送受信機を実装するように用いられ得る。
【手続補正書】
【提出日】2021-11-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションをシグナリングすることであって、前記第1のブロックはインターコーディングで予測されるまたはイントラブロックコピーコーディングで予測される、ことと、
前記第1のブロックを16×16よりも小さい複数の変換ユニットに分割することと、
前記複数の変換ユニットを使用してインターコーディングでまたはイントラコピーコーディングで前記第1のブロックを無損失にエンコードすることと
を含む、ビデオエンコーディング方法。
【請求項2】
前記分割することは、前記第1のブロックを8×8よりも小さい変換ユニットに分割することを含む、請求項1に記載のビデオエンコーディング方法。
【請求項3】
前記第1のブロックについて四分木分割フラグがシグナリングされない、請求項1または2に記載のビデオエンコーディング方法。
【請求項4】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションは、ピクチャレベルシンタックス要素においてシグナリングされる、請求項1から3のいずれか一項に記載のビデオエンコーディング方法。
【請求項5】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションを受信することであって、前記第1のブロックはインターコーディングで予測されるまたはイントラブロックコピーコーディングで予測される、ことと、
前記第1のブロックを16×16よりも小さい複数の変換ユニットに分割することと、
前記複数の変換ユニットを使用してインターコーディングでまたはイントラコピーコーディングで前記第1のブロックを無損失にデコードすることと
を含む、ビデオデコーディング方法。
【請求項6】
前記分割することは、前記第1のブロックを8×8よりも小さい変換ユニットに分割することを含む、請求項5に記載のビデオデコーディング方法。
【請求項7】
前記第1のブロックについて四分木分割フラグが受信されない、請求項5または6に記載のビデオデコーディング方法。
【請求項8】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションは、ピクチャレベルシンタックス要素において受信される、請求項5から7のいずれか一項に記載のビデオデコーディング方法。
【請求項9】
1つまたは複数のプロセッサに請求項1から8のいずれか一項に記載の方法を実行させる命令を含む、コンピュータ可読媒体。
【請求項10】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションをシグナリングすることであって、前記第1のブロックはインターコーディングで予測されるまたはイントラブロックコピーコーディングで予測される、ことと、
前記第1のブロックを16×16よりも小さい複数の変換ユニットに分割することと、
前記複数の変換ユニットを使用してインターコーディングでまたはイントラコピーコーディングで前記第1のブロックを無損失にエンコードすることと
を実行するように構成された1つまたは複数のプロセッサを備えた、ビデオエンコーダ。
【請求項11】
前記分割することは、前記第1のブロックを8×8よりも小さい変換ユニットに分割することを含む、請求項10に記載のビデオエンコーダ。
【請求項12】
前記第1のブロックについて四分木分割フラグがシグナリングされない、請求項10または11に記載のビデオエンコーダ。
【請求項13】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションは、ピクチャレベルシンタックス要素においてシグナリングされる、請求項10から12のいずれか一項に記載のビデオエンコーダ。
【請求項14】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションを受信することであって、前記第1のブロックはインターコーディングで予測されるまたはイントラブロックコピーコーディングで予測される、ことと、
前記第1のブロックを16×16よりも小さい複数の変換ユニットに分割することと、
前記複数の変換ユニットを使用してインターコーディングでまたはイントラコピーコーディングで前記第1のブロックを無損失にデコードすることと
を実行するように構成された1つまたは複数のプロセッサを備えた、ビデオデコーダ。
【請求項15】
前記分割することは、前記第1のブロックを8×8よりも小さい変換ユニットに分割することを含む、請求項14に記載のビデオデコーダ。
【請求項16】
前記第1のブロックについて四分木分割フラグが受信されない、請求項14または15に記載のビデオデコーダ。
【請求項17】
少なくともビデオの第1のブロックが無損失コーディングでコーディングされている旨のインジケーションは、ピクチャレベルシンタックス要素において受信される、請求項14から16のいずれか一項に記載のビデオデコーダ。