IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特開2023-182684映像符号化におけるイントラブロックコピーのためのサンプル識別
<>
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図1
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図2
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図3
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図4
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図5
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図6
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図7
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図8
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図9
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図10
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図11
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図12
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図13
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図14
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図15
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図16
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図17
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図18
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図19
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図20
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図21
  • 特開-映像符号化におけるイントラブロックコピーのためのサンプル識別 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182684
(43)【公開日】2023-12-26
(54)【発明の名称】映像符号化におけるイントラブロックコピーのためのサンプル識別
(51)【国際特許分類】
   H04N 19/593 20140101AFI20231219BHJP
【FI】
H04N19/593
【審査請求】有
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023168834
(22)【出願日】2023-09-28
(62)【分割の表示】P 2022501042の分割
【原出願日】2020-07-09
(31)【優先権主張番号】PCT/CN2019/095504
(32)【優先日】2019-07-10
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(71)【出願人】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】シュー ジジョン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ワン ユエ
(57)【要約】      (修正有)
【課題】映像または画像を復号化または符号化するためのイントラブロックコピーモードにおけるバッファ管理およびブロックベクトル符号化のための技術を提供する。
【解決手段】映像処理方法は、視覚メディアデータの現在のピクチャの映像ブロックと視覚メディアデータのビットストリーム表現との変換のために、現在の映像ブロックの予測ブロックを導出するために、現在のピクチャからの参照サンプルを含むバッファを維持することを含む。導出に利用不可能とマークを付けられたバッファにおける1つ以上の参照サンプルが、画素値の範囲外の値を有している。
【選択図】図21
【特許請求の範囲】
【請求項1】
視覚メディアデータの現在のピクチャの現在の映像ブロックと前記視覚メディアデータ
のビットストリーム表現との変換のために、前記現在の映像ブロックの予測ブロックの導
出のために前記現在のピクチャからの参照サンプルを含むバッファを維持することを含む
視覚メディア処理方法であって、
前記導出に利用不可能とマークを付けられた前記バッファにおける1つ以上の参照サン
プルが、画素値の範囲外の値を有している、視覚メディア処理方法。
【請求項2】
前記画素値の範囲は、[0,1<<(bit_depth)-1]として表され、bi
t_depthは正の整数である、請求項1に記載の方法。
【請求項3】
bit_depthは、前記サンプルを処理するために使用される精度である、請求項
2に記載の方法。
【請求項4】
前記バッファにおけるサンプルのセットを、このサンプルのセットが利用不可能である
ことを示す所定の値に初期化することをさらに含む、請求項1に記載の方法。
【請求項5】
前記所定の値は-1である、請求項4に記載の方法。
【請求項6】
前記サンプルのセットの位置および/または前記サンプルのセットを前記所定の値に初
期化するかどうかは、前記現在の映像ブロックの位置、前記現在の映像ブロックのサイズ
、前記現在の映像ブロックを含むVPDUのサイズ、および/または前記現在の映像ブロ
ックを含む符号化ツリーユニットのサイズに基づく、請求項4~5のいずれか1項に記載
の方法。
【請求項7】
(xCb%vSize)が0に等しく、(yCb%vSize)が0である場合、前記
サンプルのセットは利用不可能とマークを付けられ、xCb、yCbは、前記サンプルに
対する前記現在の映像ブロックの位置を示し、vSize=min(ctbSize,6
4)であり、ctbSizeは、前記符号化ツリーユニットの幅または高さを示す、請求
項6に記載の方法。
【請求項8】
前記現在の映像ブロックのサイズがmin(ctbSize,64)未満である場合、
前記バッファにおける前記サンプルのセットは利用不可能とマークを付けられ、ctbS
izeは、前記符号化ツリーユニットの幅または高さを示す、請求項1に記載の方法。
【請求項9】
前記複数のサンプルの位置が、VPDUのサイズに関連する、請求項8に記載の方法。
【請求項10】
前記サンプルのセットの位置が、前記現在の映像ブロックを含む前記符号化ツリーユニ
ットのサイズに関連する、請求項8に記載の方法。
【請求項11】
前記バッファにおける前記サンプルのセットは、位置が(x%wIbcBuf,y%h
IbcBuf)で表され、x=xV,・・・,xV+ctbSize-1およびy=yV
,・・・,yV+ctbSize-1,であり、xV,yVは、ピクチャの左上の位置に
対するVPDUの左上の位置を示し、ctbSizeは、前記現在の映像ブロックを含む
前記符号化ツリーユニットのサイズを示し、wIbcBufおよびhIbcBufは、バ
ッファの幅およびバッファの高さを示す、請求項4に記載の方法。
【請求項12】
前記バッファにおける前記サンプルのセットは、-1に初期化される、請求項11に記
載の方法。
【請求項13】
前記サンプルのセットは、映像ユニットの復号化の開始時に初期化される、請求項4に
記載の方法。
【請求項14】
前記変換は、イントラブロックコピーモードで行われる、請求項1~13のいずれか1
項に記載の方法。
【請求項15】
前記変換は、前記現在の映像ブロックから前記ビットストリーム表現を生成することを
含む、請求項1~14のいずれか1項に記載の方法。
【請求項16】
前記変換は、前記ビットストリーム表現から前記現在の映像ブロックの画素値を生成す
ることを含む、請求項1~14のいずれか1項に記載の方法。
【請求項17】
請求項1~14のいずれか1項に記載の方法を実装するように構成された処理装置を備
える映像エンコーダ装置。
【請求項18】
請求項1~14のいずれか1項に記載の方法を実装するように構成された処理装置を備
える映像デコーダ装置。
【請求項19】
コードが記憶されたコンピュータ可読媒体であって、前記コードは請求項1~14のい
ずれか1項に記載の方法を実装するための処理装置が実行可能な命令を実施する、コンピ
ュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
パリ条約に基づく適用可能な特許法及び/又は規則に基づいて、本願は、2019年7
月10日出願の国際特許出願PCT/CN2019/095504号、2019年7月1
1日出願の国際特許出願PCT/CN2019/095656号、2019年7月13日
出願の国際特許出願PCT/CN2019/095913号、2019年7月15日出願
の国際特許出願PCT/CN2019/096048号の優先権及び利益を適時に主張す
ることを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細
書の開示の一部として参照により援用される。
【0002】
この特許明細書は、映像符号化および復号化技術、デバイスおよびシステムに関する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネット及び他
のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像の受信及
び表示が可能な接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対す
る帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本明細書は、映像または画像を復号化または符号化するためのイントラブロックコピー
モードにおけるバッファ管理およびブロックベクトル符号化のための様々な実施形態およ
び技術を説明する。
【0005】
1つの例示的な態様において、視覚メディア処理方法が開示される。この方法は、視覚
メディアデータの現在のピクチャの現在の映像ブロックと現在の映像ブロックのビットス
トリーム表現との変換のために、ブロックベクトル(BVx,BVy)を決定することで
あって、前記ブロックベクトル(BVx,BVy)の有効性は、(1)サンプルブロック
の位置(P,Q)および/または(2)位置(P,Q)のサンプルを再構成するかどうか
、および/または(3)現在の映像ブロックの位置(但し、ブロックベクトル(BVx,
BVy)は、現在の映像ブロックとサンプルブロックとの間の画素変位を表す)に依存し
ない、決定することと、このブロックベクトルを使用して、現在の映像ブロックの予測ブ
ロックの導出に使用される参照サンプルからなる、現在の映像ブロックと同じ映像領域に
位置する再構成ブロックに基づいて、イントラブロックコピーモードで変換を行うことと
、を含み、変換中に少なくとも、バッファのサイズおよび/またはブロックベクトル(B
Vx,BVy)のサイズに応じて、バッファ内の参照サンプルから位置(A,B)を持つ
予測サンプルを決定する。
【0006】
別の例示的な態様において、視覚メディア処理の別の方法が開示される。この方法は、
視覚メディアデータの現在のピクチャの現在の映像ブロックと視覚メディアデータのビッ
トストリーム表現との変換のために、規則に従って、前記現在の映像ブロックに対応する
ブロックベクトル(BVx,BVy)が有効であるかどうかを判定することであって、前
記ブロックベクトル(BVx,BVy)は、現在の映像ブロックとサンプルブロックとの
間の画素変位を表す、決定することと、前記ブロックベクトルを使用して、現在の映像ブ
ロックの予測ブロックを導出するために使用される参照サンプルを含む現在のピクチャか
らの参照領域に基づいて、前記変換を行うこととを含み、前記規則は、ブロックベクトル
(BVx,BVy)が、(1)このサンプルブロックからの1つ以上のサンプルがこの現
在のピクチャの外側にあり、および/または(2)サンプルブロックからの1つ以上のサ
ンプルが、現在の映像ブロックに関連付けられた少なくとも1つの符号化ツリーユニット
(CTU)の外側にあり、および/または、(3)サンプルブロックからの1つ以上のサ
ンプルが再構成に失敗した場合に有効になる。
【0007】
さらに、別の例示的な態様において、視覚メディア処理の別の方法が開示される。この
方法は、視覚メディアデータの現在のピクチャの現在の映像ブロックと、この視覚メディ
アデータのビットストリーム表現との変換を行うことを含み、前記変換は、現在の映像ブ
ロックの予測ブロックを導出するために使用される参照サンプルを備える、現在のピクチ
ャからの参照領域に基づいて行われ、定義されたサイズの仮想バッファは、前記予測ブロ
ックを導出するための前記参照サンプルの可用性を追跡するために使用される。
【0008】
さらに、別の例示的な態様において、視覚メディア処理の別の方法が開示される。この
方法は、視覚メディアデータの現在のピクチャの現在の映像ブロックと視覚メディアデー
タのビットストリーム表現との変換のために、現在の映像ブロックの予測ブロックを導出
するための、現在のピクチャからの参照サンプルを含むバッファを維持することを含み、
前記導出に利用できないとマークされたバッファ内の1つ以上の参照サンプルが、画素値
の範囲外の値を有している。
【0009】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、現在の映
像ブロックの予測ブロックを導出するために、現在のピクチャからの参照サンプルを含む
バッファを使用して、視覚メディアデータの現在のピクチャの映像ブロックと視覚メディ
アデータのビットストリーム表現との変換を行うことを含み、前記変換は、ビットストリ
ーム表現が規則に準拠するために、バッファにおける参照サンプルがビットストリーム適
合性の制約を満たすものであることを規定する規則に基づく。
【0010】
さらに別の例示的な態様において、上述された方法を実装するように構成された処理装
置を備える映像エンコーダまたはデコーダ装置が開示される。
【0011】
別の例示的な態様において、コンピュータ可読プログラム媒体が開示される。この媒体
は、開示された方法のうちの1つを実装するための処理装置実行可能命令を実施するコー
ドを記憶する。
【0012】
これらの、および他の態様は、本明細書でより詳細に説明される。
【図面の簡単な説明】
【0013】
図1】現在のピクチャ参照またはイントラブロックコピー映像または画像符号化技術を例示する。
図2】ダイナミック参照領域を例示する。
図3】(x,y)から始まるブロックの符号化を例示する。
図4】前回符号化された64×64ブロックを選択するための、考えられる代替方法を例示する。
図5】64×64ブロックの符号化/復号化の順序を変更するための、考えられる代替方法を例示する。
図6】映像または画像の処理方法の一例を示すフローチャートである。
図7】映像または画像の符号化または復号化を行うハードウェアプラットフォームを示すブロック図である。
図8】64×64ブロックの復号化の順序が上から下へ、左から右である場合、前回の符号化された64×64ブロックを選択するための、別の考えられる代替方法を示す。
図9】前回の符号化された64×64ブロックを選択するための、別の考えられる代替方法を示す。
図10】リシェイプを伴う復号化処理の例示的なフローチャートを示す。
図11】64×64ブロックの復号化の順序が左から右、上から下である場合、前回の符号化された64×64ブロックを選択するための、別の考えられる代替方法を示す。
図12】IBC参照バッファステータスを示す図であり、1つのブロックは64×64CTUを示す。
図13】IBCのための参照領域の1つの配置を示す。
図14】IBCのための参照領域の別の配置を示す。
図15】現在の仮想パイプラインデータユニット(VPDU)がピクチャ境界の右側にある場合のIBCのための参照領域の別の配置を示す。
図16】1つのCTU行内のVPDUを順次復号化する場合の仮想バッファの状態の例を示す。
図17】開示された技術を実装することができる例示的な映像処理システムを示すブロック図である。
図18】視覚メディア処理方法の一例を示すフローチャートである。
図19】視覚メディア処理方法の一例を示すフローチャートである。
図20】視覚メディア処理方法の一例を示すフローチャートである。
図21】視覚メディア処理方法の一例を示すフローチャートである。
図22】視覚メディア処理方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
本明細書では、理解を容易にするために章の見出しを使用しており、1つの章に開示さ
れた実施形態をその章にのみ限定するものではない。本明細書は、映像または画像を復号
化または符号化するためのイントラブロックコピーモードにおけるバッファ管理およびブ
ロックベクトル符号化のための様々な実施形態および技術を説明する。
【0015】
1. 概要
【0016】
本明細書は、映像符号化技術に関する。具体的には、映像符号化におけるイントラブロ
ックコピーに関する。これは、例えば、汎用映像符号化など、開発中の規格に適用されて
もよい。本発明は、将来の映像符号化規格または映像コーデックにも適用可能である。
【0017】
2. 簡単な説明
【0018】
映像符号化規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発
展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-
1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 Vide
oとH.264/MPEG-4 AVC(Advanced Video Coding
)とH.265/HEVC規格を共同で作った。H.262以来、映像符号化規格は、時
間予測と変換符号化が利用されるハイブリッド映像符号化構造に基づく。HEVCを超え
た将来の映像符号化技術を探索するため、2015年には、VCEGとMPEGが共同で
JVET(Joint Video Exploration Team)を設立した。
それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exp
loration Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。201
8年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG1
1(MPEG)との間にJoint Video Expert Team(JVET)
が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取
り組んでいる。
【0019】
2.1 HEVC/H.265におけるインター予測
各インター予測されたPUは、1つまたは2つの参照ピクチャリストのための動きパラ
メータを有する。動きパラメータは、動きベクトルおよび参照ピクチャインデックスを含
む。2つの参照ピクチャリストのうちの1つの参照ピクチャリストの使用は、inter
_pred_idcを使用して信号通知されてもよい。動きベクトルは、予測子に対する
デルタ(delta)として明確にコーディングされてもよい。
【0020】
1つのCUがスキップモードにて符号化される場合、1つのPUがこのCUに関連付け
られ、有意な残差係数がなく、符号化された動きベクトル差分も参照ピクチャインデック
スもない。マージモードを指定し、これにより、現在のPUのための動きパラメータを、
空間的および時間的候補を含む近傍のPUから取得する。マージモードは、スキップモー
ドのためだけでなく、任意のインター予測されたPUに適用することができる。マージモ
ードの代替として、動きパラメータの明示的な送信があり、動きベクトル(より正確には
、動きベクトル予測子と比較した動きベクトル差分(MVD))、各参照ピクチャリスト
の対応する参照ピクチャインデックス、および参照ピクチャリストの使用状況が、各PU
に明確に信号通知される。このようなモードを、本開示では高度動きベクトル予測(AM
VP)と呼ぶ。
【0021】
2つの参照ピクチャリストのうちの1つを使用することを信号通知が示す場合、サンプ
ルのうちの1つのブロックからPUを生成する。これを「単一予測」と呼ぶ。Pスライス
およびBスライスの両方に対して単一予測が利用可能である。
【0022】
両方の参照ピクチャリストを使用することを信号通知が示す場合、サンプルのうちの2
つのブロックからPUを生成する。これを「双方向予測」と呼ぶ。Bスライスのみに双方
向予測が利用可能である。
【0023】
以下、HEVCに規定されるインター予測モードについて詳細に説明する。まず、マー
ジモードについて説明する。
【0024】
2.2 現在のピクチャの参照
現在のピクチャの参照(CPR)は、イントラブロックコピー(IBC)と呼ばれたこ
ともあるが、HEVCスクリーンコンテンツ符号化拡張機能(HEVC-SCC)と現在
のVVCテストモデルに採用されている。IBCは、動き補償の概念をフレーム間符号化
からイントラフレーム符号化に拡張する。図1に示すように、現在のブロックは、CPR
が適用される場合、同じピクチャ内の1つの参照ブロックによって予測される。現在のブ
ロックを符号化または復号化する前に、参照ブロックにおけるサンプルは既に再構成され
ていなければならない。CPRは、カメラでキャプチャされたほとんどのシーケンスに対
してそれほど効率的ではないが、スクリーンコンテンツに対しては、有意な符号化利得を
示す。その理由は、スクリーンコンテンツピクチャにおいて、アイコン、文字等の繰り返
しパターンが多いためである。CPRは、これらの繰り返しパターン間の冗長性を有効に
除去することができる。HEVC-SCCにおいて、インター符号化ユニット(CU)は
、現在のピクチャをその参照ピクチャとして選択する場合、CPRを適用することができ
る。この場合、MVをブロックベクトル(BV)と改称し、BVは常に整数画素精度を有
する。メインプロファイルHEVCに適合するように、現在のピクチャは、復号化ピクチ
ャバッファ(DPB)における「長期」参照ピクチャとしてマークされる。なお、同様に
、マルチプルビュー/3D映像符号化規格において、ビュー間の参照ピクチャも「長期」
参照ピクチャとしてマークされる。
【0025】
BVがその参照ブロックを見つけた後、この参照ブロックをコピーすることで予測を生
成することができる。残差は、元の信号から参照画素を減算することによって得ることが
できる。そして、他の符号化モードと同様に、変換および量子化を適用することができる
【0026】
図1は、現在のピクチャの参照の例示である。
【0027】
しかしながら、参照ブロックがピクチャの外にある場合、または現在のブロックと重複
する場合、または再構成された領域の外にある場合、或いは何らかの制約によって制限さ
れた有効領域の外にある場合、画素値の一部または全部は規定されない。基本的に、この
ような問題に対処するために2つの解決策がある。1つは、このような状況、例えばビッ
トストリーム適合性を許可しないことである。もう1つは、これらの未定義の画素値にパ
ディングを適用することである。以下のサブセッションでは、解決策を詳細に説明する。
【0028】
2.3 HEVCスクリーンコンテンツ符号化拡張機能におけるCPR
HEVCのスクリーンコンテンツ符号化拡張機能において、1つのブロックが現在のピ
クチャを参照として使用する場合、以下の仕様のテキストに示すように、参照ブロック全
体が利用可能な再構成された領域内にあることを保証すべきである。
変数offsetXおよびoffsetYは、以下のように導出される。
offsetX=(ChromaArrayType==0)?0:(mvCLX[
0]&0x7?2:0) (8-104)
offsetY=(ChromaArrayType==0)?0:(mvCLX[
1]&0x7?2:0) (8-105)
参照ピクチャが現在のピクチャである場合、輝度動きベクトルmvLXは、以下の制約
に従うべきであることが、ビットストリーム適合性の要件である。
- 6.4.1項で規定されたようなz走査順序ブロックの可用性に対する導出処理が、
(xCb,yCb)と等しく設定された(xCurr,yCurr)と、(xPb+(m
vLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offs
etY)に等しく設定された近傍の輝度位置(xNbY,yNbY)と、が入力として呼
び出されると、出力はTRUEとなる。
- 6.4.1項に規定されたようなz走査順序ブロックの可用性に対する導出処理が、
(xCb,yCb)と等しく設定された(xCurr,yCurr)と、(xPb+(m
vLX[0]>>2)+nPbW-1+offsetX、yPb+(mvLX[1]>>
2)+nPbI-I-1+offsetY)と等しく設定された近傍の輝度位置(xNb
Y,yNbY)と、が入力として呼び出されると、出力はTRUEとなる。
- 次の条件の一方または両方がtrueであること
- (mvLX[0]>>2)の値+nPbW+xB1+offsetXが0以下であ
る。
- (mvLX[1]>>2)の値+nPbH+yB1+offsetYが0以下であ
る。
- 次の条件がtrueとなること。
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbS
izeY-xCb/CtbSizeY<=yCb/CtbSizeY-(yPb+(mv
LX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY (
8-106)
【0029】
このように、参照ブロックが現在のブロックと重複するケース、または参照ブロックが
ピクチャの外にあるケースは発生しない。参照ブロックまたは予測ブロックを埋める必要
がない。
【0030】
2.4 CPR/IBCの例
VVC試験モデルにおいて、参照ブロック全体は現在の符号化ツリーユニット(CTU
)を有するべきであり、現在のブロックと重複しない。よって、参照または予測ブロック
をパディングする必要がない。
【0031】
デュアルツリーが有効化される場合、分割構造は、輝度CTUとクロマCTUとで異な
ってもよい。従って、4:2:0カラーフォーマットの場合、1つのクロマブロック(例
えば、CU)は、複数の輝度CUに分割されたコロケーションされた1つの輝度領域に対
応してもよい。
【0032】
クロマブロックは、以下の条件がtrueである場合に、CPRモードでのみ符号化す
ることができる。
1)コロケーションされた輝度ブロックの輝度CUの各々は、CPRモードで符号化され
るべきである。
2)輝度4×4ブロック’BVの各々は、まず、クロマブロックのBVに変換され、クロ
マブロックのBVは、有効なBVである。
【0033】
2つの条件のいずれかがfalseである場合、クロマブロックは、CPRモードで符
号化されない。
【0034】
なお、有効なBVの定義には、以下の制約がある。
1)BVによって特定される参照ブロックのすべてのサンプルは、制限された検索範囲内
にあるべきである(例えば、現在のVVC設計において同じCTU内にある)。
2)BVによって特定された参照ブロックのすべてのサンプルが再構成されている。
【0035】
2.5 CPR/IBCの例
いくつかの実施例において、CPR/IBCのための参照領域は、現在のCTUに制限
され、最大128×128である。CPR/IBCブロックがより多くの参照候補を有す
ることができる一方、CPR/IBCの参照バッファを1つのCTUから維持または低減
することができるように、参照領域を動的に変更してメモリを再利用し、CPR/IBC
の参照サンプルを記憶する。
【0036】
図2は1つの方法を示しており、1つのブロックは64×64であり、1つのCTUは
4つの64×64ブロックを含む。64×64ブロックを符号化する場合、前の3つの6
4×64ブロックを参照として使用できる。そうすることによって、デコーダは、CPR
/IBCをサポートするために、4つの64×64ブロックを記憶するだけでよい。
【0037】
ピクチャの左上隅に対する現在の輝度CUの位置を(x,y)とし、ブロックベクトル
を(BVx,BVy)とする。現在の設計において、BVが有効であるかどうかは、輝度
位置((x+BVx)>>6<<6+(1<<7),(y+BVy)>>6<<6)が再
構成されておらず、((x+BVx)>>6<<6+(1<<7),(y+BVy)>>
6<<6)が(x>>6<<6,y>>6<<6)と等しくないことによって知ることが
できる。
【0038】
2.6 インループリシェイプ(ILR)
インループリシェイプ(ILR)の基本的な考えは、元の(第1のドメインにおける)
信号(予測/再構成信号)を第2のドメイン(リシェイプされたドメイン)に変換するこ
とである。
【0039】
インループ輝度リシェイパは、1対のルックアップテーブル(LUT)として実装され
るが、信号通知されたLUTから他方を計算することができるので、2つのLUTのうち
の一方のみを信号通知する必要がある。各LUTは、1次元10ビット1024エントリ
マッピングテーブル(1D-LUT)である。1つのLUTは、フォワードLUT、Fw
dLUTであり、これは、入力輝度コード値Yを変更された値Y:Y=FwdLU
T[Y]にマッピングする。他方のLUTは、逆LUT、InvLUTであり、変更さ
れたコード値YをY^:Y^:InvLUT[Y]にマッピングする。(Y^
はYの再構成値を表す)。
【0040】
2.6.1 PWLモデル
概念的には、区分線形(PWL)は、以下のように実装される。
【0041】
x1、x2を2つの入力支点とし、y1、y2を1つのピースに対応する出力支点とす
る。x1とx2との間の任意の入力値xに対する出力値yは、以下の式によって補間する
ことができる。
【0042】
y=((y2-y1)/(x2-x1))*(x-x1)+y1
【0043】
固定点実装では、この式は、以下のように書き換えることができる。
y=((m*x+2FP_PREC-1)>>FP_PREC)+c
【0044】
mはスカラーであり、cはオフセットであり、FP_PRECは精度を規定するための
定数である。
【0045】
いくつかの実施例において、PWLモデルは、1024エントリのFwdLUTマッピ
ングテーブルおよびInvLUTマッピングテーブルを予め計算するために使用されるが
、PWLモデルは、LUTを予め計算することなく、実装において同一のマッピング値を
オンザフライで計算することも可能にする。
【0046】
2.6.2.1 輝度のリシェイプ
インループ輝度リシェイプの方法は、より複雑性低いパイプラインを提供し、且つイン
タースライス再構成におけるブロック単位のイントラ予測のための復号化待ち時間を排除
する。イントラ予測は、インタースライスおよびイントラスライスの両方のために、リシ
ェイプされたドメインにおいて行われる。
【0047】
イントラ予測は、スライスタイプにかかわらず、常にリシェイプされたドメインで行わ
れる。このような構成によれば、前回のTU再構成を行った直後にイントラ予測を開始す
ることができる。このような構成は、スライスに依存する代わりに、イントラモードのた
めの統一された処理を提供することもできる。図10は、CE12-2の方式に基づく復
号化処理を示すブロック図である。
【0048】
32ピース区分線形(PWL)モデルの代わりに、16ピースのPWLモデルを使用し
て、輝度およびクロマ残差スケーリングを行った。
【0049】
インループ輝度リシェイパを用いたインタースライス再構成(薄い緑色の影が付けられ
たブロックは、リシェイプされたドメインにおける信号を示す。輝度残差、輝度内予測、
および輝度内再構成)
【0050】
2.6.2.2 輝度依存クロマ残差スケーリング
輝度依存クロマ残差スケーリングは、固定小数点整数演算で実装される乗算処理である
。クロマ残差スケーリングは、輝度信号のクロマ信号との相互作用を補償する。TUレベ
ルでクロマ残差スケーリングを適用する。具体的には、以下が適用される。
- イントラの場合、再構成された輝度を平均する。
- インターの場合、予測輝度を平均する。
【0051】
この平均値は、PWLモデルにおけるインデックスを特定するために使用される。この
インデックスは、スケーリング係数cScaleInvを特定する。クロマ残差にその数
を乗算する。
【0052】
なお、クロマスケーリング係数は、再構成された輝度値ではなく、フォワードマップさ
れた予測輝度値から算出される。
【0053】
2.6.2.3 ILR側情報の信号通知
パラメータは(現在)タイルグループヘッダ(ALFに類似)で送信される。これらは
、40~100ビットを要すると報告されている。
【0054】
いくつかの実施例において、追加された構文は、イタリック体で強調されている。
【0055】
【表1】
【0056】
【表2】
【0057】
新しい構文表タイルグループリシェイパを追加する。
【0058】
【表3】
【0059】
一般的に、シーケンスパラメータセットRBSPの意味論では、次の意味論を追加する。
sps_reshaper_enabled_flagが1と等しい場合は、符号化映像
シーケンス(CVS)においてリシェイパが使用されていることを規定している。sps
_reshaper_enabled_flagが0と等しい場合は、CVSにおいてリ
シェイパが使用されていないことを規定している。
タイルグループヘッダ構文において、以下の意味論を追加する。
tile_group_reshaper_model_present_flagが1と等しい場合は、tile_group_reshaper_model()がタイルグループ内に存在することを規定している。tile_group_reshaper_model_present_flagが0と等しい場合は、tile_group_reshaper_model()がタイルグループヘッダに存在しないことを規定している。tile_group_reshaper_model_present_flagが存在しない場合は、0に等しいと推論される。
tile_group_reshaper_enabled_flagが1と等しい場合は、現在のタイルグループに対してリシェイパが有効になっていることを規定している。tile_group_reshaper_enabled_flagが0と等しい場合は、現在のタイルグループに対してリシェイパが有効になっていないことを規定している。tile_group_reshaper_enable_flagが存在しない場合、0であると推論される。
tile_group_reshaper_chroma_residual_scale_flagが1と等しい場合は、現在のタイルグループに対してクロマ残差スケーリングを有効であることを規定している。tile_group_reshaper_chroma_residual_scale_flagが0と等しい場合は、現在のタイルグループに対してクロマ残差スケーリングが有効でないことを規定している。tile_group_reshaper_chroma_residual_scale_flagが存在しない場合は、0であると推測される。
tile_group_reshaper_model()構文を追加する。
reshape_model_min_bin_idxは、最小のビン(またはピース)
インデックスを、リシェイパ構築処理に使用するように規定している。reshape_
model_min_bin_idxの値が0~MaxBinIdxの範囲内にあるもの
とする。MaxBinIdxの値は15と等しいとする。
reshape_model_delta_max_bin_idxは、最大許容ビン(
またはピース)インデックスMaxBinIdxから最大ビンインデックスを引いたもの
が、リシェイパ構築処理で使用されることを規定している。reshape_model
_max_bin_idxの値は、MaxBinIdx-reshape_model_
delta_max_bin_idxに等しく設定される。
reshaper_model_bin_delta_abs_cw_prec_min
us1+1は、構文reshape_model_bin_delta_abs_CW[
i]の表現に使用するビット数を規定している。
reshape_model_bin_delta_abs_CW[i]は、i番目のビ
ンの絶対デルタコード名値を規定する。
reshaper_model_bin_delta_sign_CW_flag[i]
は、reshape_model_bin_delta_abs_CW[i]のサインを
次のように記述する。
- reshape_model_bin_delta_sign_CW_flag[i
]が0と等しい場合、対応する変数RspDeltaCW[i]は正の値である。
- そうでない場合(reshape_model_bin_delta_sign_C
W_flag[i]が0と等しくない)、対応する変数RspDeltaCW[i]は負
の値である。
【0060】
reshape_model_bin_delta_sign_CW_flag[i]
が存在しない場合、0に等しいと推測される。
【0061】
変数RspDeltaCW[i]=(1 2*reshape_model_bin_
delta_sign_CW[i])*reshape_model_bin_delt
a_abs_CW[i];
変数RspCW[i]は、以下のステップとして導出される。
【0062】
変数OrgCWは、(1<<BitDepth)/(MaxBinIdx+1)に等
しく設定される。
-reshaper_model_min_bin_idx<=i<=reshaper
_model_max_bin_idxの場合、RspCW[i]=OrgCW+Rsp
DeltaCW[i]である。
- そうでない場合、RspCW[i]=0である。
【0063】
BitDepthの値が10に等しい場合、RspCW[i]の値は、32~2*O
rgCW_1の範囲内にくる。
【0064】
iが0~MaxBinIdx+1の範囲にある変数InputPivot[i]は、以
下のように導出される。
InputPivot[i]=i*OrgCW
【0065】
iが0~MaxBinIdx+1の範囲にあり、変数ScaleCoef[i]および
InvScaleCoeff[i]がそれぞれ0~MaxBinIdxの範囲にあり、i
が0~MaxBinIdxの範囲にある変数ReshapePivot[i]は、以下の
ように導出される。
shiftY=14
ReshapePivot[0]=0;
for(i=0;i<=MaxBinIdx;i++){
ReshapePivot[i+1]=ReshapePivot[i]+RspCW
[i]
ScaleCoef[i]=(RspCW[i]*(1<<shiftY)+(1<
<(Log2(OrgCW)-1)))>>(Log2(OrgCW))
if(RspCW[i]==0)
InvScaleCoeff[i]=0
他には
InvScaleCoeff[i]=OrgCW*(1<<shiftY)/Rs
pCW[i]
【0066】
iが0~MaxBinIdxの範囲内にある変数ChromaScaleCoef[i
]は、以下のように導出される。
ChromaResidualScaleLut[64]={16384,16384
,16384,16384,16384,16384,16384,8192,8192
,8192,8192,5461,5461,5461,5461,4096,4096
,4096,4096,3277,3277,3277,3277,2731,2731
,2731,2731,2341,2341,2341,2048,2048,2048
,1820,1820,1820,1638,1638,1638,1638,1489
,1489,1489,1489,1365,1365,1365,1365,1260
,1260,1260,1260,1170,1170,1170,1170,1092
,1092,1092,1092,1024,1024,1024,1024};
shiftC=11
-if(RspCW[i]==0)
ChromaScaleCoef[i]=(1<<shiftC)
-そうでない場合(RspCW[i]!=0),ChromaScaleCoef
[i]=
ChromaResidualScaleLut[RspCW[i]>>1]
【0067】
2.6.2.4 ILRの使用方法
エンコーダ側では、まず、各ピクチャ(またはタイルグループ)をリシェイプされたド
メインに変換する。そして、すべての符号化処理は、リシェイプされたドメインで行われ
る。イントラ予測の場合、近傍のブロックはリシェイプされたドメインにあり、インター
予測の場合、まず、参照ブロック(復号化ピクチャバッファからの元のドメインから生成
される)をリシェイプされたドメインに変換する。そして、残差を生成し、ビットストリ
ームに符号化する。
【0068】
ピクチャ全体(またはタイルグループ)の符号化/復号化が終わった後、リシェイプさ
れたドメインのサンプルを元のドメインに変換し、次いで、非ブロック化フィルタおよび
他のフィルタを適用する。
【0069】
以下の場合、予測信号へのフォワードリシェイプは無効化される。
【0070】
現在のブロックはイントラ符号化されている。
【0071】
現在のブロックはCPR(現在のピクチャを参照し、別名イントラブロックコピー、I
BC)として符号化される。
【0072】
現在のブロックは、結合されたインターイントラモード(CIIP)として符号化され
、イントラ予測ブロックのためにフォワードリシェイプは無効化される。
【0073】
3. 様々な実施形態によって解決される問題の例
現在のCPR/IBCの設計において、いくつかの問題が存在する。
1)参照領域が動的に変化するため、エンコーダ/デコーダの処理が複雑になる。
2)無効なブロックベクトルは容易に生成され、チェックしにくいため、エンコーダお
よびデコーダの両方を複雑にする。
3)参照領域が不規則であると、ブロックベクトルの符号化が非効率になる。
4)128×128より小さいCTUサイズに対してどのように対処するかは不明であ
る。
5)BVが有効であるか無効であるかの判定処理において、クロマブロックの場合、こ
の決定は、輝度サンプルの可用性に基づいて行われ、このことは、デュアルツリーパーテ
ィション構造に起因して誤った判定をもたらす可能性がある。
【0074】
4. 例示的な実施形態
いくつかの実施形態において、CPR/IBCブロックが参照を得るために、通常のバ
ッファを使用できる。
【0075】
関数isRec(x,y)は、画素(x,y)が再構成され、IBCモードによって参
照されたかどうかを示すように規定される。(x,y)が異なるスライス/タイル/ブリ
ックのピクチャから外れている場合、isRec(x,y)はfalseを返し、(x,
y)が再構成されていない場合、isRec(x,y)はfalseを返す。別の例にお
いて、サンプル(x,y)が再構成されたが、何らかの他の条件が満たされた場合、その
サンプルは、参照領域外/異なるVPDU内など、利用不可能であるとマークされてもよ
く、isRec(x,y)はfalseを返す。
【0076】
関数isRec(c,x,y)は、成分cのサンプル(x,y)が利用可能であるかど
うかを示すように規定される。例えば、サンプル(x,y)がまだ再構成されていない場
合、それは利用不可能であるとマークされる。別の例において、サンプル(x,y)が再
構成されたが、何らかの他の条件が満たされた場合、該サンプル(x,y)はまた、使用
不可能であるとしてマークされてもよく、例えば、ピクチャから外れている/異なるスラ
イス/タイル/ブリック内にある/異なるVPDU内にある、許可された参照領域のなど
のようにサンプル(x,y)が利用不可能である場合、isRec(c,x,y)はfa
lseを返し、そうでない場合、trueを返す。
【0077】
以下の説明において、参照サンプルは再構成サンプルであってもよい。なお、「画素バ
ッファ」は、「1つの色成分のバッファ」または「複数の色成分のバッファ」に応答して
もよい。
【0078】
CPR/IBC用参照バッファ
1. CPR/IBCのために輝度参照サンプルを記憶するために、M×N個の画素バッ
ファを使用することが提案される。
a. 一例において、バッファサイズは64×64である。
b. 一例において、バッファサイズは128×128である。
c. 一例において、バッファサイズは64×128である。
d. 一例において、バッファサイズは128×64である。
e. 一例において、NはCTUの高さに等しい。
f. 一例において、N=nHであり、HはCTUの高さであり、nは正の整数である

g. 一例において、MはCTUの幅に等しい。
h. 一例において、M=mWであり、WはCTUの幅であり、mは正の整数である。
i. 一例において、バッファサイズは、CTUサイズに等しくなく、例えば、96×
128または128×96である。
j. 一例において、バッファサイズはCTUサイズに等しい。
k. 一例において、M=mW、N=Hであり、WおよびHは、CTUの幅および高さ
であり、mは、正の整数である。
l. 一例において、M=W、N=nHであり、WおよびHは、CTUの幅および高さ
であり、nは、正の整数である。
m. 一例において、M=mW、N=nHであり、WおよびHは、CTUの幅および高
さであり、mおよびnは、正の整数である。
n. 上記例において、mおよびnはCTUのサイズに依存してもよい。
i. 一例において、CTUのサイズが128×128である場合、m=1であり、
n=1である。
ii. 一例において、CTUのサイズが64×64である場合、m=4であり、n
=1である。
iii. 一例において、CTUのサイズが32×32である場合、m=16であり
、n=1である。
iv. 一例において、CTUのサイズが16×16である場合、m=64であり、
n=1である。
o. 代替的に、バッファサイズはCTUサイズに対応する。
p.代替的に、このバッファサイズは、仮想パイプラインデータユニット(VPDU)
のサイズに対応する。
q. Mおよび/またはNは、エンコーダからデコーダに、例えばVPS/SPS/P
PS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ等で信号通知されてもよ
い。
2. Mおよび/またはNは、規格で規定された異なるプロファイル/レベル/層で異な
ってもよい。別のMc×Nc画素バッファを使用して、CPR/IBCのためのクロマ参
照サンプルを記憶することが提案される。
a. 一例において、4:2:0映像の場合、Mc=M/2およびNc=N/2である

b. 一例において、4:4:4映像の場合、Mc=MおよびNc=Nである。
c. 一例において、4:2:2映像の場合、Mc=MおよびNc=N/2である。
d. 代替的に、McおよびNcは、MおよびNから独立してもよい。
e. 一例において、クロマバッファは、CbおよびCrに対応する2つのチャネルを
含む。
f. 一例において、Mc=Mであり、Nc=Nである。
3. M×Nサンプルバッファを使用してPR/IBCのためにRGB参照サンプルを記
憶ことが提案される。
a. 一例において、バッファサイズは64×64である。
b. 一例において、バッファサイズは128×128である。
c. 一例において、バッファサイズは64×128である。
d. 一例において、バッファサイズは128×64である。
e. 代替的に、バッファサイズはCTUサイズに対応する。
f. 代替的に、このバッファサイズは、仮想パイプラインデータユニット(VPDU
)のサイズに対応する。
4. バッファは、ループフィルタリングの前に再構成された画素を記憶することができ
ることが提案される。ループフィルタリングは、非ブロック化フィルタ、適応ループフィ
ルタ(ALF)、サンプル適応オフセット(SAO)、クロス成分ALF、または任意の
他のフィルタを参照してもよい。
a. 一例において、バッファは、現在のCTUにサンプルを記憶することができる。
b. 一例において、バッファは、現在のCTUの外部にサンプルを記憶することがで
きる。
c. 一例において、バッファは、現在のピクチャの任意の部分からのサンプルを記憶
することができる。
d. 一例において、バッファは、他のピクチャからのサンプルを記憶することができ
る。
5. バッファは、ループフィルタリングの後に再構成された画素を記憶することができ
ることが提案される。ループフィルタリングは、非ブロック化フィルタ、適応ループフィ
ルタ(ALF)、サンプル適応オフセット(SAO)、クロス成分ALF、または任意の
他のフィルタを参照してもよい。
a. 一例において、バッファは、現在のCTUにサンプルを記憶することができる。
b. 一例において、バッファは、現在のCTUの外部にサンプルを記憶することがで
きる。
c. 一例において、バッファは、現在のピクチャの任意の部分からのサンプルを記憶
することができる。
d. 一例において、バッファは、他のピクチャからのサンプルを記憶することができ
る。
6. バッファは、ループフィルタリング前およびループフィルタリング後の両方で再構
成されたサンプルを記憶することができることが提案される。ループフィルタリングは、
非ブロック化フィルタ、適応ループフィルタ(ALF)、サンプル適応オフセット(SA
O)、クロス成分ALF、または任意の他のフィルタを参照してもよい。
a. 一例において、バッファは、現在のピクチャからのサンプルと他のピクチャから
のサンプルとを、それらのサンプルの可用性に基づいて記憶することができる。
b. 一例において、他のピクチャからの参照サンプルは、ループフィルタリング後の
再構成サンプルからのものである。
c. 一例において、他のピクチャからの参照サンプルは、ループフィルタリングの前
に再構成されたサンプルからのものである。
7. バッファは、符号化映像データのビット深度とは異なり得る所与のビット深度を有
するサンプルを記憶することが提案される。
a. 一例において、再構成バッファ/符号化映像データのビット深度は、バッファに
記憶されたIBC参照サンプルのビット深度よりも大きい。
b. 一例において、内部ビット深度が1つの映像シーケンスのための入力ビット深度
と異なる場合、例えば(10ビット対8ビット)であっても、IBC参照サンプルは、入
力ビット深度に位置合わせされて記憶される。
c. 一例において、ビット深度は再構成バッファのビット深度と同じである。
d. 一例において、ビット深度は、入力画像/映像のビット深度と同じである。
e. 一例において、ビット深度は、予め規定された数と同じである。
f. 一例において、ビット深度は、標準のプロファイルに依存する。
g. 一例において、出力ビット深度/入力ビット深度/内部ビット深度と比較したビ
ット深度またはビット深度の差は、SPS/PPS/シーケンスヘッダ/ピクチャヘッダ
/スライスヘッダ/タイルグループヘッダ/タイルヘッダまたは他の種類の映像データユ
ニットにおいて信号通知されてもよい。
h. 提案された方法は、他の黒丸印で言及された提案されたバッファ定義に適用され
てもよく、代替的に、IBCの既存の設計にも適用されてもよい。
i. バッファの各色成分のビット深度は異なってもよい。
【0079】
バッファ開始
8. 所与の値でバッファを初期化することが提案される。
a. 一例において、バッファは所与の値で初期化される。
i. 一例において、所与の値は、入力ビット深度および/または内部ビット深度に
依存してもよい。
ii. 一例において、バッファは、中間グレー値で初期化され、例えば、8ビット
信号の場合、128が設定され、10ビット信号の場合、512が設定される。
iii. 一例において、ILRが使用される場合、バッファはforwardLU
T(m)で初期化される。例m=1<<(Bitdepth-1)。
b. 代替的に、バッファは、SPS/VPS/APS/PPS/シーケンスヘッダ/
タイルグループヘッダ/ピクチャヘッダ/tile/CTU/符号化ユニット/VPDU
/領域で信号通知される値で初期化される。
c. 一例において、この所与の値は、前に復号化されたピクチャまたはスライスまた
はCTUの行またはCTUまたはCUのサンプルから導出されてもよい。
d. この所与の値は、異なる色成分ごとに異なってもよい。
9. 代替的に、前回符号化されたブロックからの復号化された画素を使用してバッファ
を初期化することが提案される。
a. 一例において、復号化された画素は、インループフィルタリング前の画素である

b. 一例において、バッファサイズがCTUである場合、バッファは、利用可能であ
る場合、前回の復号化されたCTUの復号化された画素で初期化される。
c. 一例において、バッファサイズが64×64である場合、そのバッファサイズは
、利用可能である場合、前回の復号化された64×64ブロックの復号化された画素で初
期化される。
d. 代替的に、さらに、前回符号化されたブロックが利用可能でない場合、黒丸印8
の方法が適用されてもよい。
【0080】
バッファの参照
10. 1つのブロックがバッファ内の画素を参照として使用するために、このブロック
は、バッファ内の位置(x,y),x=0,1,2,...,M-1;y=0,1,2,
...,N-1,を使って参照先を示すことができる。
11. 代替的に、この参照位置は、l=y*M+x,l=0,1,...,M*N-1
として表すことができる。
12. なお、現在のCTUに関するブロックの左上の位置を(x0,y0)として、ブ
ロックベクトル(BVx,BVy)=(x-x0,y-y0)をデコーダに送信し、バッ
ファにおける参照先を示してもよい。
13. 代替的に、ブロックベクトル(BVx,BVy)は、(x-x0+Tx,y-y
0+Ty)として規定されてもよく、TxおよびTyは、予め規定されたオフセットであ
る。
14. 任意の画素(x0,y0)および(BVx,BVy)の場合、バッファにおける
その参照は、(x0+BVx,y0+BVy)に見出すことができる。
a. 一例において、(x0+BVx,y0+BVy)がバッファの外にある場合、そ
れは境界にクリップされる。
b. 代替的に、(x0+BVx,y0+BVy)がバッファの外にある場合、その基
準値は、所与の値、例えば、中間グレーとして予め規定される。
c. 代替的に、参照位置は、常にバッファ内にあるように、((x0+BVx)mo
d M,(y0+BVy)mod N)として規定される。
15. 任意の画素(x0,y0)および(BVx,BVy)に対して、(x0+BVx
,y0+BVy)がバッファの外にある場合、その基準値はバッファにおける値から導出
されてもよい。
a. 一例において、この値は、バッファにおけるサンプル((x0+BVx)mod
M,(y0+BVy)mod N)から導出される。
b. 一例において、この値は、バッファにおけるサンプル((x0+BVx)mod
M, clip(y0+BVy,0,N-1))から導出される。
c. 一例において、この値は、バッファにおけるサンプル(clip(x0+BVx
,0,M-1),(y0+BVy)mod N)から導出される。
d. 一例において、この値は、バッファにおけるサンプル(clip(x0+BVx
,0,M-1),clip(y0+BVy,0,N-1))から導出される。
16. バッファ範囲外の特定の座標を許可しない場合がある。
a. 一例において、CTUの左上隅およびブロックベクトル(BVx,BVy)に対
する任意の画素(x0,y0)について、y0+BVyが[0,..,N-1]の範囲内
にあるべきであることが、ビットストリーム制約である。
b. 一例において、CTUおよびブロックベクトル(BVx,BVy)の左上隅の任
意の画素(x0,y0)に対して、x0+BVxが[0,..,M-1]の範囲内にある
べきであることが、ビットストリーム制約である。
c. 一例において、CTUおよびブロックベクトル(BVx,BVy)の左上隅の任
意の画素(x0,y0)に対して、y0+BVyが[0,..,N-1]の範囲内にある
べきであり、且つx0+BVxが[0,..,M-1]の範囲内にあるべきであることが
、ビットストリーム制約である。
17. 1つのブロックの信号通知されたまたは導出されたブロックベクトルがバッファ
の外のどこかを指している場合、バッファに基づいてパディングを行ってもよい。
a. 一例において、バッファの外の任意のサンプルの値は、予め規定された値で規定
される。
i. 一例において、この値は、1<(ビット深度-1)であってもよく、例えば、
8ビット信号の場合、128であり、10ビット信号の場合、512である。
ii. 一例において、ILRが使用される場合、この値はforwardLUT(
m)であってもよい。例 m=1<<(Bitdepth-1).
iii. 代替的に、予め規定された値の表示は、SPS/PPS/シーケンスヘッ
ダ/ピクチャヘッダ/スライスヘッダ/タイルグループ/タイル/CTU/CUレベルで
信号通知または表示されてもよい。
b. 一例において、バッファの外の任意のサンプルは、バッファにおける最も近いサ
ンプルの値として規定される。
18. バッファ参照からの取り扱い方法は、水平方向と垂直方向とで異なってもよく、
または現在のブロックの位置によって(例えば、ピクチャ境界により近いか否か)異なっ
てもよい。
a. 一例において、y0+BVyが[0,N-1]の外にある場合、(x0+BVx
,y0+BVy)のサンプル値が予め規定された値として割り当てられる。
b. 一例において、x0+BVxが[0,M-1]の外にある場合、(x0+BVx
,y0+BVy)のサンプル値が予め規定された値として割り当てられる。
c. 代替的に、(x0+BVx,y0+BVy)のサンプル値を((x0+BVx)
mod M,y0+BVy)のサンプル値として割り当て、これにより、(((x0+
BVx) mod M,y0+BVy)がまだバッファの外にある場合には、その値をさ
らに導出するために他の方法を呼び出してもよい。
d. 代替的に、(x0+BVx,y0+BVy)のサンプル値を(x0+BVx,(
y0+BVy) mod N)のサンプル値として割り当て、これにより、(x0+BV
x,(y0+BVy) mod N)がまだバッファの外にある場合には、その値をさら
に導出するために他の方法を呼び出してもよい。
【0081】
ブロックベクトル表現
19. ブロックベクトル(BVx,BVy)の各成分またはその成分の1つを一定の範
囲に正規化してもよい。
a. 一例において、BVxは、(BVx mod M)に置き換えられてもよい。
b. 代替的に、BVxは、((BVx+X) mod M)-Xに置き換えられても
よく、Xは、予め規定された値である。
i. 一例において、Xは64。
ii. 一例において、XはM/2。
iii. 一例において、Xは、現在のCTUに対するブロックの水平座標である。
c. 一例において、BVyは、(BVy mod N)に置き換えられてもよい。
d. 代替的に、BVyを((BVy+Y) mod N)-Yで置き換えてもよく、
Yは予め規定された値である。
i. 一例において、Yは64。
ii. 一例において、YはN/2。
iii. 一例において、Yは、現在のCTUに対するブロックの垂直座標である。
20. BVxおよびBVyは、異なる正規化範囲を有してもよい。
21. ブロックベクトル差(BVDx,BVDy)を一定の範囲に正規化することがで
きる。
a. 一例において、BVDxは、(BVDx mod M)に置き換えられてもよく
、関数modは、リマインダを返す。
b. 代替的に、BVDxは、((BVDx+X) mod M)-Xに置き換えられ
てもよく、Xは、予め規定された値である。
i. 一例において、Xは64。
ii. 一例において、XはM/2。
c. 一例において、BVyは、(BVDy mod N)に置き換えられてもよい。
d. 代替的に、BVyを((BVDy+Y) mod N)-Yで置き換えてもよく
、Yは予め規定された値である。
i. 一例において、Yは64。
ii. 一例において、YはN/2。
22. BVDxおよびBVDyは、異なる正規化範囲を有してもよい。
【0082】
ブロックベクトルの妥当性検査
IBCバッファの幅および高さをWbufおよびHbufとする。ピクチャの左上隅に
対して(X,Y)から始まるW×Hブロック(輝度ブロック、クロマブロック、CU、T
U、4×4、2×2、または他のサブブロックであってもよい)の場合、ブロックベクト
ル(BVx、BVy)が有効であるかどうかを示すために、以下を適用してもよい。W
ic、Hpicを1つのピクチャの幅および高さとし、Wctu、Hctuを1つのCT
Uの幅および高さとする。関数floor(x)は、xより大きくない最大の整数を返す

関数isRec(x,y)は、サンプル(x,y)を再構成した場合、それを返す。
23. いずれかの参照位置がピクチャ境界の外にあっても、ブロックベクトル(BVx
,BVy)を有効であるとして設定してもよい。
a. 一例において、ブロックベクトルは、X+BVx<0であっても有効であるとし
て設定してもよい。
b. 一例において、ブロックベクトルは、X+W+BVx>Wpicであっても、有
効であるとして設定してもよい。
c. 一例において、Y+BVy<0であっても、ブロックベクトルを有効であるとし
て設定してもよい。
d. 一例において、Y+H+BVy>Hpicであっても、ブロックベクトルを有効
であるとして設定してもよい。
24. 現在のCTU行の外側に参照位置が存在しても、ブロックベクトル(BVx,B
Vy)を有効であるとして設定してもよい。
a. 一例において、ブロックベクトルは、Y+BVy<floor(Y/Hctu
*Hctuであっても有効であるとして設定してもよい。
b. 一例において、ブロックベクトルは、Y+H+BVy>=floor(Y/H
tu)*Hctu+Hctuであっても有効であるとして設定してもよい。
25.ブロックベクトル(BVx,BVy)は、いずれかの参照位置が現在のCTUおよ
び左(n-1)CTUの外にあったとしても、有効であるとして設定してもよく、nは、
IBCのための参照領域として使用できるCTU(現在のCTUを含む、または除く)の
数である。
a. 一例において、ブロックベクトルは、X+BVx<floor(X/Wctu
*Wctu-(n-1)*Wctuであっても有効であるとして設定してもよい。
b. 一例において、ブロックベクトルは、X+W+BVx>floor(X/Wct
)*Wctu+Wctuであっても、有効であるとして設定してもよい。
26. 特定のサンプルが再構成されていなくても、ブロックベクトル(BVx,BVy
)を有効として設定してもよい。
a. 一例において、isRec(X+BVx,Y+BVy)がfalseであっても
、ブロックベクトルを有効であるとして設定してもよい。
b. 一例において、isRec(X+BVx+W-1,Y+BVy)がfalseで
あっても、ブロックベクトルを有効であるとして設定してもよい。
c. 一例において、isRec(X+BVx,Y+BVy+H-1)がfalseで
あっても、ブロックベクトルを有効であるとして設定してもよい。
d. 一例において、isRec(X+BVx+W-1,Y+BVy+H-1)がfa
lseであっても、ブロックベクトルを有効であるとして設定してもよい。
27. ブロックベクトル(BVx,BVy)は、1つのブロックがCTU行における第
1のCTUのブロックでない場合、常に有効であるとして設定してもよい。
a. 代替的に、ブロックベクトルは、常に有効であるとして設定してもよい。
28. 以下の3つの条件をすべて満たす場合、ブロックベクトル(BVx,BVy)を
常に有効であるとして設定してもよい。
・X+BVx>=0
・Y+BVy>=floor(Y/Hctu
・isRec(X+BVx+W-1,Y+BVy+H-1)==true
a. 代替的に、1つのCTU行における第1のCTUのブロックについて、3つの条
件をすべて満たす場合、ブロックベクトルを常に有効であるとして設定してもよい。
29. ブロックベクトル(BVx,BVy)が有効である場合、ブロックのサンプルコ
ピーはブロックベクトルに基づいて行われてもよい。
a. 一例において、サンプル(X,Y)の予測は、((X+BVx)%Wbuf,(
Y+BVy)%Hbuf)から得ることができる。
【0083】
バッファ更新
30. 新しいピクチャまたはタイルを符号化するとき、バッファはリセットされてもよ
い。
a. 「リセット」という用語は、バッファが初期化されることを指すことができる。
b. 用語「リセット」は、バッファ内のすべてのサンプル/画素が所与の値(例えば
、0または-1)に設定されることを指すことができる。
31. VPDUの符号化を終えたら、バッファはVPDUの再構成された値で更新され
てもよい。
32. CTUの符号化を終えたら、バッファはCTUの再構成された値で更新されても
よい。
a. 一例において、バッファが満杯でない場合、バッファはCTUによってCTUを
順次更新することができる。
b. 一例において、バッファが満杯である場合、最も古いCTUに対応するバッファ
領域を更新する。
c. 一例において、M=mW、N=H(W、HはCTUのサイズであり、M、Nはバ
ッファサイズである)であり、前回更新された領域が(kW,0)から始まる場合、更新
する次の開始位置は、((k+1)W mod M,0)となる。
33. バッファは、各CTU行の最初にリセットされてもよい。
a. 代替的に、バッファは、各CTUの復号化の開始時にリセットされてもよい。
b. 代替的に、バッファは、1つのタイルを復号化する開始時にリセットされてもよ
い。
c. 代替的に、バッファは、1つのタイルグループ/ピクチャの復号化の開始時にリ
セットされもよい。
34. (x,y)から始まるブロックの符号化を終えたら、(x,y)から始まるバッ
ファの対応する領域は、ブロックからの再構成によって更新される。
a. 一例において、(x,y)は、CTUの左上隅に対する位置である。
35. ピクチャに対するブロックの符号化を終えたら、バッファの対応する領域は、ブ
ロックからの再構成によって更新される。
a. 一例において、バッファにおける位置(x mod M,y mod N)の値
は、ピクチャの左上隅に対する位置(x,y)の再構成された画素値で更新されてもよい

b. 一例において、バッファにおける位置(x mod M,y mod N)の値
は、現在のタイルの左上隅に対する位置(x,y)の再構成された画素値で更新されても
よい。
c. 一例において、バッファにおける位置(x mod M,y mod N)の値
は、現在のCTU行の左上隅に対する位置(x,y)の再構成された画素値で更新されて
もよい。
d. 一例において、バッファ内の値は、ビット深度整列後の再構成された画素値で更
新されてもよい。
36. (x,y)から始まるブロックの符号化を終えたら、(xb,yb)から始まる
バッファの対応する領域は、ブロックからの再構成によって更新され、(xb,yb)お
よび(x,y)は2つの異なる座標である。
a. 一例において、(x,y)は、CTUの左上隅に関する位置であり、(xb,y
b)は、(x+update_x,y+update_y)であり、update_xお
よびupdate_yは、バッファにおける更新可能な位置を示している。
37. 上記の例では、1つのブロックの再構成された値は、フィルタ(例えば、非ブロ
ック化フィルタ)を適用する前の再構成された値を示してもよい。
a. 代替的に、1つのブロックの再構成された値は、フィルタ(例えば、非ブロック
化フィルタ)が適用された後の再構成された値を示してもよい。
38. バッファが再構成されたサンプルから更新されるとき、再構成されたサンプルは
、記憶される前にまず修正されてもよく、例えば、サンプルのビット深度を変更してもよ
い。
a. 一例において、バッファは、バッファのビット深度へのビット深度整列後、再構
成されたサンプル値で更新される。
b. 一例において、バッファ値は、値{p+[1<<(b-1)]}>>bに基づい
て更新され、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト
値である。
c. 一例において、バッファ値は、clip({p+[1<<(b-1)]}>>b
,0,(1<<bitdepth)-1)の値に基づいて更新され、pは、再構成された
サンプル値であり、bは、予め規定されたビットシフト値であり、ビット深度は、バッフ
ァビット深度である。
d. 一例において、バッファ値は、値{p+[1<(b-1)-1]}>bに基づい
て更新され、pは、再構成されたサンプル値であり、bは、予め規定されたビットシフト
値である。
e. 一例において、バッファ値は、clip({p+[1<<(b-1)-1]}>
>b,0,(1<<bitdepth)-1)の値に基づいて更新され、pは、再構成さ
れたサンプル値であり、bは、予め規定されたビットシフト値であり、bitdepth
は、バッファビット深度である。
f. 一例において、バッファ値は、値p>>bに基づいて更新される。
g. 一例において、バッファ値は、clip(p>>b,0,(1<<bitdep
th)-1)の値に基づいて更新され、bitdepthは、バッファビット深度である

h. 上記例において、bは、ビット深度から入力サンプルビット深度を引いたものと
して再構成されてもよい。
39. バッファサンプルを使用して予測を形成する場合、前処理を適用することができ
る。
a. 一例において、予測値は、p<<bであり、pは、バッファにおけるサンプル値
であり、bは、予め規定された値である。
b. 一例において、予測値は、clip(p<<b,0,1<<bitdepth)
であり、bitdepthは、再構成サンプルのビット深度である。
c. 一例において、予測値は、(p<<b)+(1<<(bitdepth-1))
であり、pは、バッファにおけるサンプル値であり、bは、予め規定された値であり、b
itdepthは、再構成サンプルのビット深度である。
d. 上記例において、bは、ビット深度から入力サンプルビット深度を引いたものと
して再構成されてもよい。
40. バッファは所与の順番で更新されてもよい。
a. 一例において、バッファは順次更新されてもよい。
b. 一例において、バッファは、再構成されたブロックの順に基づいて更新されても
よい。
41. バッファが満杯である場合、バッファ内のサンプルを最新の再構成サンプルに置
き換えることができる。
a. 一例において、サンプルは、先入れ先出し方式で更新されてもよい。
b. 一例において、最も古いサンプルが置き換えられる。
c. 一例において、サンプルに優先順位を割り当て、この優先順位に基づいてサンプ
ルを置き換えることができる。
d. 一例において、サンプルは、他のサンプルが最初に置き換えられるように、「長
期」としてマークされ得る。
e. 一例において、高い優先順位を示すために、1つのブロックとともに1つのフラ
グを送信することができる。
f. 一例において、優先順位を示すために、1つのブロックとともに1つの数字を送
信することができる。
g. 一例において、ある特徴を有する再構成されたブロックからのサンプルは、他の
サンプルが最初に置き換えられるように、より高い優先順位を割り当てられる。
i. 一例において、IBCモードで符号化されたサンプルのパーセンテージが閾値
よりも大きい場合、ブロックのすべてのサンプルに高い優先順位を割り当てることができ
る。
ii. 一例において、Paletteモードで符号化されたサンプルのパーセンテ
ージが閾値よりも大きい場合、ブロックのすべてのサンプルに高い優先順位を割り当てる
ことができる。
iii. 一例において、IBCまたはPaletteモードで符号化されたサンプ
ルのパーセンテージが閾値よりも大きい場合、ブロックのすべてのサンプルに高い優先順
位を割り当てることができる。
iv. 一例において、変換スキップモードで符号化されたサンプルのパーセンテー
ジが閾値よりも大きい場合、ブロックのすべてのサンプルに高い優先順位を割り当てるこ
とができる。
v. この閾値は、ブロックサイズ、色成分、CTUサイズに基づいて異なってもよ
い。
vi. 閾値は、SPS/PPS/シーケンスヘッダ/スライスヘッダ/タイルグル
ープ/タイルレベル/領域で信号通知されてもよい。
h. 一例において、このバッファが一杯であることは、このバッファにおける利用可
能なサンプルの数が所与の閾値に等しいかまたはそれよりも多いことを意味し得る。
i. 一例において、バッファにおける利用可能なサンプルの数が64×64×3輝
度サンプル以上である場合、バッファは満杯であると判定されてもよい。
【0084】
代替バッファ組み合わせ
42. 前回符号化された3つの64×64ブロックを常に参照領域として使用する代わ
りに、現在のブロック(またはVPDU)の位置に基づいてそれを適応的に変更すること
が提案される。
a. 一例において、64×64ブロックを符号化/復号化するとき、前回の3つの6
4×64ブロックを参照として使用できる。図2に比べ、前回の64×64個のブロック
をより多く組み合わせてもよい。図2は、前の64×64ブロックの異なる組み合わせの
例を示す。
43. z走査順序を用いる代わりに、垂直走査順序を使用してもよい。
a. 一例において、1つのブロックがz走査順序にインデックス0..3を有する4
つのVPDUに分割される場合、符号化/復号化の順序は、0、2、1、3である。
b. 一例において、64×64個のブロックを符号化/復号化するとき、前回の3つ
の64×64個のブロックを参照として使用できる。図2と比較して、より多くの種類の
64×64ブロックの符号化/復号化の順序を適用することができる。図4は、64×6
4ブロックの異なる符号化/復号化の順序の例を示す。
c. 代替的に、上記方法は、スクリーンコンテンツの符号化にのみ適用されてもよい

d. 代替的に、上記方法は、1つのタイル/タイルグループ/ピクチャに対してCP
Rが有効化される場合にのみ適用されてもよい。
e. 代替的に、上記方法は、1つのCTUまたは1つのCTU行に対してCPRが有
効化される場合にのみ適用されてもよい。
【0085】
仮想IBCバッファ
以下、輝度サンプルにおいて、VPDUの幅および高さを、それぞれWVPDU(例え
ば、64)およびHVPDU(例えば、64)と表す。代替的に、WVPDUおよび/ま
たはHVPDUは、他の映像ユニット(例えば、CTU)の幅および/または高さを表し
てもよい。
44. IBC参照領域の状態を追跡し続けるために、仮想バッファを維持してもよい。
a. 一例において、仮想バッファサイズは、mWVPDU×nHVPDUである。
i. 一例において、mは3に等しく、nは2に等しい。
ii. 一例において、mおよび/またはnは、ピクチャ解像度、CTUサイズに依
存してもよい。
iii. 一例において、mおよび/またはnは、信号通知されてもよく、または予
め規定されてもよい。
b. 一例において、上記の黒丸印および副黒丸印で記載された方法は、仮想バッファ
に適用されてもよい。
c. 一例において、ピクチャ/スライス/タイル/ブリックの左上隅に対するサンプ
ル(x,y)は、(x%(mWVPDU),y%(nHVPDU))にマッピングされて
もよい。
45. アレイを使用して、仮想バッファに関連付けられた各サンプルの可用性を追跡し
てもよい。
a. 一例において、フラグは、仮想バッファにおけるサンプルに関連付けて、バッフ
ァにおけるサンプルがIBC参照として使用できるか否かを特定してもよい。
b. 一例において、輝度サンプルおよびクロマサンプルを含む各4×4ブロックは、
1つのフラグを共有して、そのブロックに関連付けられたいずれかのサンプルがIBC参
照として使用できるかどうかを示してもよい。
c. 一例において、3×2個のVPDUに対応するアレイ(例えば、各4×4ブロッ
クは、同じ可用性フラグを共有してもよい)は、IBC参照サンプルの可用性を追跡する
ように維持される。
d. 一例において、4×2個のVPDUに対応するアレイ(例えば、各4×4ブロッ
クは、同じ可用性フラグを共有してもよい)は、IBC参照サンプルの可用性を追跡する
ように維持される。
46. VPDUまたは映像ユニットの復号化を終えた後、仮想バッファに関連付けられ
た特定のサンプルは、IBC参照に利用不可能なものとしてマークされてもよい。
a. 一例において、どのサンプルが利用不可能であるかは、直近に復号化されたVP
DUの位置に依存してもよい。
b. 1つのサンプルが利用不可能とマークされた場合、このサンプルからの予測は許
可されない。
i. 代替的に、他の方法(例えば、デフォルト値を使用する)をさらに適用して、
予測子を導出し、利用不可能なサンプルを置き換えてもよい。
47. 最近復号化されたVPDUの位置を記録し、仮想バッファに関連付けられたどの
サンプルが利用不可能であるとマークされているかを識別しやすくすることができる。
a. 一例において、VPDUを復号化する開始時に、最近復号化されたVPDUの位
置に基づいて、仮想バッファに関連付けられたいくつかのサンプルに利用不可能なマーク
を付けることができる。
i. 一例において、直近に復号化されたVPDUのピクチャ/スライス/タイル/
ブリック/他の映像処理ユニットの左上隅に対して(xPrevVPDU,yPrevV
PDU)を左上位置として表し、yPrevVPDU%(nHVPDU)が0に等しいと
、特定の位置(x,y)は、利用不可能とマークを付けることができる。
1. 一例において、xは、[xPrevVPDU-WVPDU+2mWVPDU)% mWVPDU,((xPrevVPDU-2WVPDU+2mWVPDU)%mWVPDU)-1+WVPDU]のような範囲内にあってもよい。
2. 一例において、yは、[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]のような範囲内にあってもよい。
3. 一例において、xは、[xPrevVPDU-WVPDU+2mWVPDU]%mWVPDU、((xPrevVPDU-WVPDU+2mWVPDU)%mWVPDU-1+WVPDU]のような範囲内にあってもよく、yは、[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]のような範囲内にあってもよい。
ii. 一例において、直近に復号化されたVPDUのピクチャ/スライス/タイル
/ブリック/他の映像処理ユニットの左上隅に対して、(xPrevVPDU,yPre
vVPDU)を左上位置として表し、yPrevVPDU%(nHVPDU)が0に等し
くない場合、特定の位置(x,y)は、利用不可能とマークを付けることができる。
1. 一例において、xは、[xPrevVPDU-WVPDU+2mWVPDU
)%mWVPDU,((xPrevVPDU-WVPDU+2mWVPDU)%mWVP
DU)-1+WVPDU]のような範囲内にあってもよい。
2. 一例において、yは、[yPrevVPDU%(nHVPDU),(yPr
evVPDU%(nHVPDU))-1+HVPDU]のような範囲内にあってもよい。
3. 一例において、xは、[xPrevVPDU-WVPDU+2mWVPDU
)%mWVPDU,((xPrevVPDU-WVPDU+2mWVPDU)%mWVP
DU)-1+WVPDU]のような範囲内にあってもよく、yは、[yPrevVPDU
%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]の
ような範囲内にあってもよい。
48. 1つのCUが複数のVPDUを含む場合、VPDUに基づくIBC参照可用性マ
ーキング処理を適用する代わりに、IBC参照可用性マーキング処理は以下のCUに従っ
てもよい。
a. 一例において、複数のVPDUを含むCUを復号化する開始時に、CU内のVP
DUを復号化する前に、各VPDUごとにIBC参照可用性マーキング処理を適用しても
よい。
b. このような場合、128×64個のIBCブロックと64×128個のIBCブ
ロックとは許可されないことがある。
i. 一例において、128×64および64×128個のCUのためのpred_
mode_ibc_flagは送信されなくてもよく、0に等しいと推測されてもよい。
49. 参照ブロックまたはサブブロックの場合、右上隅の参照可用性ステータスをチェ
ックして、この参照ブロックに関連付けられたブロックベクトルが有効であるかどうかを
判断する必要がない場合がある。
a. 一例において、ブロックベクトルが有効であるか否かを判断して、ブロック/サ
ブブロックの左上、左下、右下の角のみをチェックする。
50. IBCバッファサイズは、VPDUのサイズ(幅/高さはvSizeで表される
)および/またはCTB/CTUのサイズ(幅/高さはctbSizeで表される)に依
存してもよい。
a. 一例において、バッファの高さはctbSizeに等しくてもよい。
b. 一例において、バッファの幅は、min(ctbSize,64)に依存しても
よい。
i. 一例において、バッファの幅は、(128*128/vSize,min(c
tbSize,64))であってもよい。
51. IBCバッファは、画素範囲外の値を含んでもよく、このことは、この位置がI
BC参照に利用可能でない(例えば、他のサンプルの予測に利用されない)可能性がある
ことを示す。
a. サンプル値は、サンプルが利用不可能であることを示す値に設定してもよい。
b. 一例において、この値は、-1であってもよい。
c. 一例において、この値は、[0,1<<(internal_bit_dept
h)-1]の外側の任意の値であってもよく、internal_bit_depthは
正の整数値である。
例えば、internal_bit_depthは、1つの色成分のサンプルを符号化
/復号化するために使用される内部ビット深度である。
d. 一例において、この値は、[0,1<<(input_bit_depth)-
1]の範囲外の任意の値であってもよく、input_bit_depthは正の整数値
である。
例えば、input_bit_depthは、1つの色成分のサンプルを符号化/復号
化するために使用される入力ビット深度である。
52. IBCバッファにおけるサンプルの可用性マーキングは、現在のブロックの位置
、現在のブロックのサイズ、CTU/CTBのサイズ、およびVPDUのサイズに依存し
てもよい。一例において、(xCb,yCb)は、ピクチャの左上に対するブロックの位
置を表し、ctbSizeは、CTU/CTBのサイズ(即ち、幅および/または高さ)
であり、vSize=min(ctbSize,64)であり、wIbcBufおよびh
IbcBufは、IBCバッファの幅および高さである。
a. 一例において、(xCb%vSize)が0に等しく、(yCb%vSize)
が0に等しい場合、IBCバッファにおける特定の位置のセットは、利用不可能とマーク
を付けることができる。
b. 一例において、現在のブロックのサイズがVPDUのサイズ、即ち、min(c
tbSize,64)より小さい場合、利用不可能とマークを付けられた領域は、VPD
Uのサイズに従ってもよい
c. 一例において、現在のブロックのサイズがVPDUのサイズより大きい場合、即
ち、min(ctbSize,64)である場合、利用不可能とマークを付けられた領域
は、CUのサイズに従ってもよい。
53. ピクチャの左上位置に対する映像ユニット(例えば、VPDU(xV,yV))
の復号化の開始時に、IBCバッファにおける対応する位置は、画素範囲外の値に設定し
てもよい。
a. 一例において、バッファにおける位置(x%wIbcBuf,y%hIbcBu
f)を有し、x=xV、...、xV+ctbSize-1、y=yV、...、yV+
ctbSize-1を有するバッファサンプルは、値-1に設定される。wIbcBuf
およびhIbcBufは、IBCバッファの幅および高さであり、ctbSizeは、C
TU/CTBの幅である。
i. 一例において、hIbcBufはctbSizeに等しくてもよい。
54. ビットストリーム適合性の制約は、IBCバッファにおけるサンプルの値に従っ
てもよい。
a. 一例において、IBCバッファにおける1つのブロックベクトルに関連付けられ
た1つの参照ブロックが画素範囲外の値を含む場合、このビットストリームは不正である
可能性がある。
55. IBCバッファにおける可用性表示に基づいて、ビットストリーム適合性の制約
を設定してもよい。
a. 一例において、IBCバッファにマッピングされたいずれかの参照サンプルが、
1つのブロックを符号化/復号化するために利用不可能とマークを付けられた場合には、
このビットストリームは不正である可能性がある。
b. 一例において、シングルツリーが使用される場合、1つのブロックを符号化/復
号化するためにIBCバッファにマッピングされたいずれかの輝度参照サンプルが利用不
可能とマークを付けられた場合には、このビットストリームは不正である可能性がある。
c. 1つの適合ビットストリームは、IBC符号化ブロックの場合、関連付けられた
ブロックベクトルがIBCバッファにマッピングされた1つの参照ブロックを指してもよ
く、1つのブロックを符号化/復号化するためにIBCバッファに位置する各輝度参照サ
ンプルには利用可能なものとしてマークを付けることを満たすことができる(例えば、サ
ンプルの値は、[K0,K1]の範囲内にあり、例えば、K0が0に設定され、K1が(
1<<BitDepth-1)に設定され、BitDepthは、内部ビット深度または
入力ビット深度である)。
56. ビットストリーム適合性の制約は、分割木のタイプおよび現在のCUの符号化の
treeTypeに依存してもよい。
a. 一例において、デュアルツリーが高レベル(例えば、スライス/ピクチャ/ブリ
ック/タイル)で許可され、現在の映像ブロック(例えば、CU/PU/CB/PB)が
シングルツリーで符号化される場合、ビットストリーム制約は、IBCバッファにマッピ
ングされたすべての成分の位置が利用不可能としてマークされているかどうかをチェック
する必要がある場合もある。
b. 一例において、デュアルツリーがハイレベル(例えば、スライス/ピクチャ/ブ
リック/タイル)で許可され、現在の輝度映像ブロック(例えば、CU/PU//CB/
PB)がデュアルツリーで符号化されている場合には、ビットストリームの制約により、
クロマ成分のIBCバッファ内にマッピングされた位置が利用不可能としてマークされて
いるかどうかを無視してもよい。
i. 代替的に、このような場合、ビットストリーム制約は、依然として、IBCバ
ッファにマッピングされたすべての成分の位置が利用不可能としてマークされているかど
うかをチェックすることもある。
c. 一例において、シングルツリーが使用される場合、ビットストリーム制約は、I
BCバッファにマッピングされたクロマ成分の位置が利用不可能であるか否かを無視する
ことができる。
【0086】
現在のVTM設計の改善
57. IBCの予測は、再構成よりも低い精度を有していてもよい。
a. 一例において、予測値は、値clip{{p+[1<<(b-1)]}>>b,
0,(1<<bitdepth)-1}<<bに基づいており、pは、再構成されたサン
プル値であり、bは、予め規定されたビットシフト値であり、bitdepthは、予測
サンプルビットのビット深度である。
b. 一例において、予測値は、値clip{{p+[1<<(b-1)-1]}>>
b,0,(1<<bitdepth)-1}<<bに基づいており、pは、再構成された
サンプル値であり、bは、予め規定されたビットシフト値である。
c. 一例において、予測値は、値((p>>b)+(1<<(bitdepth-1
)))<<bに基づいており、ビット深度は、予測サンプルのビット深度である。
d. 一例において、予測値は、値(clip((p>>b),0,(1<<(bit
depth-b)))+(1<<(bitdepth-1)))<<bに基づいており、
ビット深度は、予測サンプルのビット深度である。
e. 一例において、予測値は、ILRが適用されるかどうかに基づいて、異なる方法
でクリップされる。
f. 上記例において、bは、ビット深度から入力サンプルビット深度を引いたものと
して再構成されてもよい。
g. 一例において、出力ビット深度/入力ビット深度/内部ビット深度と比較したビ
ット深度またはビット深度の差は、SPS/PPS/シーケンスヘッダ/ピクチャヘッダ
/スライスヘッダ/タイルグループヘッダ/タイルヘッダまたは他の種類の映像データユ
ニットにおいて信号通知されてもよい。
58. IBCの予測の一部はより精度が低くてもよく、他の部分は再構成と同じ精度を
有する。
a. 一例において、許容される参照領域は、異なる精度(例えば、ビット深度)を有
するサンプルを含んでもよい。
b. 一例において、現在の64×64ブロックが復号化されていない他の64×64
ブロックからの参照は、精度が低く、現在の64×64ブロックからの参照は、再構成と
同じ精度を有する。
c. 一例において、復号化されている現在のCTU以外のCTUからの参照は精度が
低く、現在のCTUからの参照は再構成と同じ精度を有する。
d. 一例において、特定の色成分の集まりからの参照は精度が低く、他の色成分から
の参照は再構成と同じ精度を有する。
59. CTUのサイズがM×Mであり、参照領域のサイズがnM×nMである場合、参
照領域は、CTUの行における最も近い利用可能なn×n CTUである。
a. 一例において、参照領域のサイズが128×128であり、CTUのサイズが6
4×64である場合、1つのCTU行における最も近い利用可能な4つのCTUをIBC
参照に使用できる。
b. 一例において、参照領域のサイズが128×128であり、CTUのサイズが3
2×32である場合、1つのCTU行における最も近い利用可能な16個のCTUをIB
C参照に使用できる。
60. CTUのサイズがMであり、参照領域のサイズがnMである場合、参照領域は、
CTUの行/タイルにおける最も近い利用可能なn-1個のCTUである。
a. 一例において、参照領域のサイズが128×128または256×64であり、
CTUのサイズが64×64である場合、1つのCTU行における最も近い利用可能な3
つのCTUをIBC参照に使用できる。
b. 一例において、参照領域のサイズが128×128または512×32であり、
CTUのサイズが32×32である場合、1つのCTU行における最も近い利用可能な1
5個のCTUをIBC参照に使用できる。
61. CTUのサイズがMである場合、VPDUのサイズはkMであり、参照領域のサ
イズはnMであり、参照領域はCTUの行/タイルにおける最も近い利用可能なn-k個
のCTUである。
a. 一例において、CTUのサイズは64×64であり、VPDUのサイズも64×
64であり、参照のサイズは128×128であり、1つのCTUの行における最も近い
3つのCTUをIBC参照のために使用できる。
b. 一例において、CTUのサイズは32×32であり、VPDUのサイズは64×
64であり、参照のサイズは128×128であり、1つのCTU行における最も近い(
16-4)=12個のCTUをIBC参照のために使用できる。
62. IBCを使用して、左上隅が(x,y)であるw×hブロックの場合、参照ブロ
ックをメモリ再利用のための特定の領域から守る制約があり、wおよびhは、現在のブロ
ックの幅および高さである。
a. 一例において、CTUのサイズが128×128であり、(x,y)=(m×6
4,n×64)である場合、参照ブロックは、((m-2)×64,n×64)から始ま
る64×64の領域と重複することはできない。
b. 一例において、CTUのサイズが128×128である場合、参照ブロックは、
w×hブロックの左上隅が(x-128,y)である場合に重複することはできない。
c. 一例において、CTUのサイズが128×128である場合、(x+BVx,y
+BVy)は、左上隅は(x-128,y)であるw*hブロック内に存在することはな
く、BVxおよびBVyは、現在のブロックのブロックベクトルを表す。
d. 一例において、CTUのサイズがM×Mであり、IBCバッファサイズがk×M
×Mである場合、参照ブロックは、w×hブロックと重複することができず、左上隅は(
x-k×M,y)であり、BVxおよびBVyは、現在のブロックのブロックベクトルを
表す。
e. 一例において、CTUのサイズがM×Mであり、IBCバッファサイズがk×M
×Mである場合、(x+BVx,y+BVy)は、w×hイントラブロック内に存在する
ことはなく、左上隅は(x-k×M,y)であり、BVxおよびBVyは、現在のブロッ
クのブロックベクトルを表す。
63. CTUのサイズがM×Mでなく、参照領域のサイズがnM×nMである場合、参
照領域は、CTUの行における最も近い利用可能なn×n-1個のCTUである。
a. 一例において、参照領域のサイズが128×128であり、CTUのサイズが6
4×64である場合、1つのCTU行における最も近い利用可能な3つのCTUをIBC
参照に使用できる。
b. 一例において、参照領域のサイズが128×128であり、CTUのサイズが3
2×32である場合、1つのCTU行における最も近い利用可能な15個のCTUをIB
C参照に使用できる。
64. (2m*64,2n*64)から始まる64×64のブロックのCU、即ち12
8×128CTUにおける左上の64×64ブロックの場合、そのIBC予測は、((2
m-2)*64,2n*64)から始まる64×64ブロック、((2m-1)*64,
2n*64)から始まる64×64ブロック、および((2m-1)*64,(2n+1
)*64)から始まる64×64ブロック、および現在の64×64ブロックにおける再
構成サンプルから行うことができる。
65. ((2m+1)*64、(2n+1)*64)から始まる64×64ブロックの
CU、すなわち、128×128CTUにおける右下の64×64ブロックの場合、その
IBC予測は、現在の128×128CTUからであってもよい。
66. ((2m+1)*64,2n*64)から始まる64×64のブロックのCU、
即ち128×128CTUにおける右上の64×64ブロックの場合、そのIBC予測は
、((2m-1)*64,2n*64)から始まる64×64ブロック、((2m-1)
*64,(2n+1)*64)から始まる64×64ブロック、および(2m*64,2
n*64)から始まる64×64ブロック、および現在の64×64ブロックにおける再
構成サンプルから行うことができる。
a. 代替的に、(2m*64,(2n+1)*64)から始まる64×64ブロック
を再構成した場合、IBC予測は、((2m-1)*64,2n*64)から始まる64
×64ブロック、(2m*64,2n*64)から始まる64×64ブロック、(2m*
64,(2n+1)*64)から始まる64×64ブロック、および現在の64×64ブ
ロックにおける再構成サンプルから行うことができる。
67. (2m*64,(2n+1)*64)から始まる64×64ブロックのCU、即
ち128×128CTUにおける左下の64×64ブロックの場合、そのIBC予測は、
((2m-1)*64,(2n+1)*64)から始まる64×64ブロック、(2m*
64,2n*64)から始まる64×64ブロック、((2m+1)*64,2n*64
)から始まる64×64ブロック、および現在の64×64ブロックにおける再構成サン
プルから行うことができる。
a. 代替的に、((2m+1)*64,2n*64)から始まる64×64ブロック
を再構成されていない場合、IBC予測は、((2m-1)*64,2n*64)から始
まる64×64ブロック、((2m-1)*64,(2n+1)*64)から始まる64
×64ブロック、(2m*64,2n*64)から始まる64×64ブロック、および現
在の64×64ブロックにおける再構成サンプルから行うことができる。
68. 現在のCUがどの64×64ブロックに属するかに基づいて、参照領域を調整す
ることが提案される。
a. 一例において、(x,y)から始まるCUの場合、(y>>6)&1==0のと
き、((x>>6<<6)-128,y>>6<<6)および((x>>6<<6)-6
4,y>>6<<6)から始まる2つまたは2つ前までの64×64ブロックは、IBC
モードによって参照することができる。
b. 一例において、(x,y)から始まるCUの場合、(y>>6)&1==1であ
るとき、((x>>6<<6)-64,y>>6<<<6)から始まる1つの前の64×
64ブロックは、IBCモードによって参照することができる。
69. (x,y)から始まり、ブロックベクトル(BVx,BVy)を有するブロック
の場合、isRec(((x+BVx)>>6<<6)+128-(((y+BVy)>
>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(y%64))
がtrueならば、ブロックベクトルは無効である。
a. 一例において、ブロックは輝度ブロックである。
b. 一例において、このブロックは、4:4:4フォーマットではクロマブロックで
ある。
c. 一例において、このブロックは、輝度成分およびクロマ成分の両方を含む。
70. (x,y)から始まり、ブロックベクトル(BVx,BVy)を有する4:2:
0形式のクロマブロックの場合、isRec(((x+BVx)>>5<<5)+64-
(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<
5)+(y%32))がtrueならば、ブロックベクトルは無効である。
71. 成分cのブロックに対してBVが無効であるかどうかの判定は、輝度サンプルの
みをチェックする代わりに、成分Xのサンプルの可用性に依存してもよい。
a. (x,y)から始まり、ブロックベクトル(BVx,BVy)を有する成分cの
ブロックの場合、isRec(c,((x+BVx)>>6<<6)+128-(((y
+BVy)>>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(
y%64))がtrueであれば、ブロックベクトルは無効として扱ってもよい。
i. 一例において、このブロックは、輝度ブロックである(例えば、cは、輝度成
分であるか、またはRGB符号化のためのG成分である)。
ii. 一例において、このブロックは、4:4:4フォーマットのクロマブロック
である(例えば、cは、cbまたはcr成分、またはRGB符号化のためのB/R成分で
ある)。
iii. 一例において、例えば、このブロックは、輝度およびクロマ成分の両方を
含むなど、輝度およびクロマ成分の両方のためのサンプルの可用性がチェックしてもよい

b. 成分cの(x,y)から始まり、ブロックベクトル(BVx,BVy)を有する
4:2:0形式のクロマブロックの場合、isRec(c,((x+BVx)>>5<<
5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy
)>>5<<5)+(y%32))がtrueである場合、ブロックベクトルは、無効と
して扱ってもよい。
c. 成分cの(x,y)から始まり、ブロックベクトル(BVx,BVy)を有する
クロマブロックまたはサブブロックの場合、クロマ成分のためのisRec(c,x+B
Vx+Chroma_CTU_size,y)がtrueである場合、ブロックベクトル
は無効として扱ってもよく、Chroma_CTU_sizeは、クロマ成分のCTUサ
イズである。
i. 一例において、4:2:0フォーマットの場合、Chroma_CTU_si
zeは64であってもよい。
ii. 一例において、クロマサブブロックは、4:2:0フォーマットの2×2ブ
ロックであってもよい。
iii. 一例において、クロマサブブロックは、4:4:4フォーマットの4×4
ブロックであってもよい。
iv. 一例において、クロマサブブロックは、輝度成分における最小CUサイズに
対応しうる。
1. 代替的に、クロマサブブロックは、クロマ成分の最小CUサイズに対応して
もよい。
72. 上述したすべての黒丸印について、参照バッファは複数のM×Mブロック(M=
64)を含むと仮定する。しかしながら、これは、参照バッファが複数のN×M個のブロ
ックを含む(例えば、N=128、M=64)等の他の場合にも拡張できる。
73. 上述したすべての黒丸印に対して、参照バッファが現在のブロックと同じブリッ
ク/タイル/タイルグループ/スライス内にあるべきであるという、さらなる制限を適用
してもよい。
a. 一例において、参照バッファの一部が現在のブリック/タイル/タイルグループ
/スライスの外にある場合、IBCの使用は無効にされ得る。IBC関連構文要素の信号
通知はスキップしてもよい。
b. 代替的に、参照バッファの一部が現在のブリック/タイル/タイルグループ/ス
ライスの外にある場合、IBCは1つのブロックに対して依然として有効化される可能性
があるが、1つのブロックに関連付けられたブロックベクトルは残りの参照バッファのみ
を指してもよい。
74. IBCの参照領域として、現在のVPDUを除き、利用可能であれば、CTU/
CTB行の第1のVPDU行において、K1個の最近符号化VPDUを有し、可能であれ
ば、CTU/CTB行の第2のVPDU行において、K2個の最近符号化VPDUを有す
ることが提案される。
a. 一例において、K1は2に等しく、K2は1に等しい。
b. 一例において、上記方法は、CTU/CTBサイズが128×128であり、V
PDUサイズが64×64である場合に適用されてもよい。
c. 一例において、上記方法は、CTU/CTBサイズが64×64であり、VPD
Uサイズが64×64および/または32×32である場合に適用されてもよい。
d. 一例において、上記方法は、CTU/CTBサイズが32×32であり、VPD
Uサイズが32×32以下である場合に適用されてもよい。
75. 上述した方法は、異なる段階で適用されてもよい。
a. 一例において、ブロックベクトル(BV)のモジュール演算(例えば、mod
b)を、BVの可用性チェック処理において呼び出して、BVが有効であるか否かを判定
してもよい。
b. 一例において、ブロックベクトル(BV)のモジュール演算(例えば、mod
b)を呼び出して、IBC仮想バッファまたは再構成ピクチャバッファにおける参照サン
プルの位置(例えば、現在のサンプルの位置およびBVのモジュール結果に基づいて)を
特定してもよい(例えば、インループフィルタリング処理の前)。
【0087】
5. 実施形態
5.1 実施形態#1
IBCのためのバッファの1つの実装形態を以下に説明する。
【0088】
バッファサイズは128×128である。CTUのサイズも128×128である。1
つのCTU行における第1のCTUの符号化のために、バッファは128(8ビットの映
像信号の場合)で初期化される。CTU行におけるk番目のCTUを符号化するために、
バッファは、(k-1)番目のCTUのループフィルタリングの前に、再構成で初期化さ
れる。
【0089】
図3は、(x,y)から始まるブロックの符号化を例示する。
【0090】
現在のCTUに関する(x,y)から始まるブロックを符号化する場合、ブロックベク
トル(BVx,BVy)=(x-x0,y-y0)をデコーダに送信し、参照ブロックが
IBCバッファにおける(x0,y0)からであることを示す。それぞれ、ブロックの幅
をwとし、ブロックの高さをhとする。ブロックの符号化を終えるとき、IBCバッファ
における(x,y)から始まるwxh領域は、ループフィルタリング前のブロックの再構
成によって更新される。
【0091】
5.2 実施形態#2
図4は、前回符号化された64×64ブロックを選択するための、考えられる代替方法
を例示する。
【0092】
5.3 実施形態#3
図5は、64×64ブロックの符号化/復号化の順序を変更することができる代替方法
を例示する。
【0093】
5.4 実施形態#4
図8は、64×64ブロックの復号化の順序が上から下へ、左から右である場合、前回
の符号化された64×64ブロックを選択する別の考えられる代替方法を示す。
【0094】
5.5 実施形態#5
図9は、前回の符号化された64×64ブロックを選択する別の考えられる代替方法を
示す。
【0095】
5.6 実施形態#6
図11は、64×64ブロックの復号化の順序が左から右、上から下である場合、前回
の符号化された64×64ブロックを選択するための別の考えられる代替方法を示す。
【0096】
5.7 実施形態#7
CTUのサイズがW×Wであり、デコーダにおいて、サイズがmW×Wであり、ビット
深度がBであるIBCバッファを実装すると、以下のようになる。
【0097】
CTU行の復号化の開始時に、バッファを値(1<<(B-1))で初期化し、更新の
開始点(xb,yb)を(0,0)に設定する。
【0098】
CTUの左上隅に関する、サイズがw×hである(x,y)から始まるCUを復号化す
る場合、ビット深度をBビットに整列させた後、(xb+x,yb+y)およびw×hサ
イズから始まる領域を、CUの再構成された画素値で更新する。
【0099】
CTUを復号化した後、更新開始点(xb,yb)を((xb+W) mod mW,
0)と設定する。
【0100】
ブロックベクトル(BVx,BVy)を有するIBC CUを復号化するとき、CTU
の左上隅に関する任意の画素(x,y)について、予測信号のビット深度にビット深度整
列した後、バッファの位置((x+BVx) mod mW,(y+BVy) mode
W)からその予測を抽出する。
【0101】
一例において、Bは7または8に設定され、一方、ブロックの出力/入力ビット深度は
10に等しくてもよい。
【0102】
5.8 実施形態#8
ピクチャの左上隅に関する(x,y)およびブロックベクトル(BVx,BVy)から
始まる輝度CUまたは結合輝度/クロマCUの場合、ブロックベクトルは、isRec(
((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+
(x%64),((y+BVy)>>6<<6)+(y%64))がtrueの場合は無
効である。
【0103】
ピクチャの左上隅に関する(x,y)およびブロックベクトル(BVx,BVy)から
始まるクロマCUの場合、ブロックベクトルは、isRec(((x+BVx)>>5<
<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BV
y)>>5<<5)+(y%32))がtrueの場合は無効である。
【0104】
5.9 実施形態#9
ピクチャの左上隅に関する4:2:0形式の(x,y)から始まるクロマブロックまた
はサブブロック、およびブロックベクトル(BVx,BVy)の場合、isRec(c,
(x+BVx+64,y+BVy)がtrueで、cがクロマ成分であるとき、ブロック
ベクトルは無効である。
【0105】
ピクチャの左上隅に関する、4:4:4形式の(x,y)から始まるクロマブロックま
たはサブブロック、およびブロックベクトル(BVx,BVy)の場合、isRec(c
,(x+BVx+64,y+BVy)がtrueで、cがクロマ成分であるとき、ブロッ
クベクトルは無効である。
【0106】
5.10 実施形態#10
ピクチャの左上隅に関する(x,y)およびブロックベクトル(BVx,BVy)から
始まる輝度CUまたは結合輝度/クロマCUの場合、ブロックベクトルは、isRec(
((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+
(x%64),((y+BVy)>>6<<6)+(y%64))がtrueの場合は無
効である。
【0107】
ピクチャの左上隅に関する、4:2:0形式の(x,y)から始まるクロマブロックま
たはサブブロック、およびブロックベクトル(BVx,BVy)の場合、isRec(c
,((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+
(x%32),((y+BVy)>>5<<5)+(y%32))がtrueで、cがク
ロマ成分であるとき、ブロックベクトルは無効である。
【0108】
5.11 実施形態#11
本実施形態においては、現在のVPDUを除き、第1のVPDUの行にある2つの最も
符号化されたVPDUと、第1のCTU/CTBの行の第2のVPDUの行にある1つの
最も符号化されたVPDUとを保持する実装が強調される。
【0109】
符号化順が上から下へ、左から右への場合、参照領域は図13のように示される。
【0110】
VPDUの符号化順が左から右および上から下であり、かつ、現在のVPDUがピクチ
ャ境界の右側にない場合、参照領域は、図14のように示される。
【0111】
VPDUの符号化順が左から右および上から下であり、かつ現在のVPDUがピクチャ
境界の右側にある場合、参照領域を図15として示すことができる。
【0112】
輝度ブロック(x,y)のサイズがw×hだとすると、ブロックベクトル(BVx,B
Vy)は有効であるか、どうかは以下の条件をチェックすることによって知ることができ
る。
【0113】
isRec(((x+BVx+128)>>6<<6)-(refy&0x40)+(
x%64),((y+BVy)>>6<<6)+(refy>>6==y>>6)?(y
%64):0)。ここでは、refy=(y&0x40)?(y+BVy):(y+BV
y+w-1)。
【0114】
上記関数がtrueを返す場合、ブロックベクトル(BVx,BVy)は無効であり、
そうでない場合、ブロックベクトルは有効であり得る。
【0115】
5.12 実施形態#12
CTUのサイズが192×128である場合、サイズが192×128の仮想バッファ
が維持されてIBCの参照サンプルを追跡する。
【0116】
ピクチャの左上隅に対するサンプル(x,y)は、バッファの左上隅に対する位置(x
%192,y%128)に関連付けられる。以下のステップは、IBC参照のために仮想
バッファに関連付けられたサンプルの可用性をどのようにマークするかを示す。
【0117】
ピクチャの左上隅に対する位置(xPrevVPDU,yPrevVPDU)を記録し
て、直近に復号化されたVPDUの左上のサンプルを表す。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能と
マークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定
される。
2) VPDUの第1のCUの復号化開始時に、x=(xPrevVPDU-2WVP
DU+2mWVPDU)%(mWVPDU),..,((xPrevVPDU-2WVP
DU+2mWVPDU)%(mWVPDU))-1+WVPDU;and y=yPre
vVPDU%(nHVPDU),..,(yPrevVPDU%(nHVPDU))-1
+HVPDUの場合の位置(x,y)を利用不可能としてマークしてもよい。そして、(
xPrevVPDU,yPrevVPDU)を(xCU,yCU)として、即ち、CUの
ピクチャに対する左上位置に設定する。
3) 1つのCUを復号化した後、x=xCU%(mWVPDU),...,(xCU
+CU_width-1)%(mWVPDU)およびy=yCU%(nHVPDU),.
..,(yCU+CU_height-1)%(nHVPDU)の場合の位置(x,y)
は、利用可能としてマークされる。
4)ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU+
xBV)%(mWVPDU),...,(xCU+xBV+CU_width-1)%(
mWVPDU)およびy=(yCU+yBV)%(nHVPDU),...,(yCU+
yBV+CU_height-1)%(nHVPDU)の場合の位置(x,y)は、利用
不可能としてマークされ、ブロックベクトルは、無効であると考えられる。
【0118】
図16は、ピクチャにおけるバッファ状態をVPDUの復号化状態とともに示す。
【0119】
5.13 実施形態#13
CTUのサイズが128×128であるか、またはCTUのサイズがVPDUのサイズ
よりも大きい(例えば、現在の設計においては、64×64)場合、またはCTUのサイ
ズがVPDUのサイズよりも大きい(例えば、現在の設計においては、64×64)場合
には、サイズ192×128の仮想バッファを維持してIBCのための参照サンプルを追
跡する。以下、a<0の場合、(a%b)をfloor(a/b)*bとして定義し、f
loor(c)は、c以下の最大の整数を返す。
【0120】
ピクチャの左上隅に対するサンプル(x,y)は、バッファの左上隅に対する位置(x
%192,y%128)に関連付けられる。以下のステップは、IBC参照のために仮想
バッファに関連付けられたサンプルの可用性をどのようにマークするかを示す。
【0121】
ピクチャの左上隅に対する位置(xPrevVPDU,yPrevVPDU)を記録し
て、直近に復号化されたVPDUの左上のサンプルを表す。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能と
マークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定
される。
2) VPDUの第1のCUの復号化の始めに、
a. yPrevVPDU%64が0に等しい場合、x=(xPrevVPDU-1
28)%192,..,((xPrevVPDU-128)%192)+63;およびy
=yPrevVPDU%128,..,(yPrevVPDU%128)+63の位置(
x,y)は、利用不可能としてマークされる。そして、(xPrevVPDU,yPre
vVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設
定する。
b. そうでない場合、x=(xPrevVPDU-64)%192,..,((x
PrevVPDU-64)%192)+63;およびy=yPrevVPDU%128,
..,(yPrevVPDU%128)+63の位置(x,y)は、利用不可能としてマ
ークされる。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU
)として、即ち、CUのピクチャに対する左上位置に設定する。
3) 1つのCUを復号化した後、x=xCU%192,...,(xCU+CU_w
idth-1)%192およびy=yCU%128,...,(yCU+CU_heig
ht-1)%128の場合の位置(x,y)は、利用可能としてマークされる。
4) ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU
+xBV)%192,...,(xCU+xBV+CU_width-1)%192およ
びy=(yCU+yBV)%128,...,(yCU+yBV+CU_height-
1)%128の場合の位置(x,y)は、利用不可能としてマークされ、ブロックベクト
ルは、無効であると考えられる。
【0122】
CTUのサイズがS×Sである場合、Sが128に等しくないので、Wbufを128
*128/Sに等しくする。サイズWbufxSの仮想バッファが維持して、IBCの参
照サンプルを追跡する。この場合、VPDUのサイズはCTUのサイズに等しい。
【0123】
ピクチャの左上隅に対する位置(xPrevVPDU,yPrevVPDU)を記録し
て、直近に復号化されたVPDUの左上のサンプルを表す。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能と
マークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定
される。
2) VPDUの第1のCUの復号化の開始時に、x=(xPrevVPDU-Wbu
*S)%S,..,((xPrevVPDU-Wbuf*S)%S)+S-1;and
y=yPrevVPDU%S,..,(yPrevVPDU%S)+S-1の場合の位置
(x,y)は、利用不可能であるとマークされる。そして、(xPrevVPDU,yP
revVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置
に設定する。
3) 1つのCUを復号化した後、x=xCU%(Wbuf),...,(xCU+C
U_width-1)%(Wbuf)およびy=yCU%S,...,(yCU+CU_
height-1)%Sである場合の位置(x,y)は、利用可能としてマークされる。
4) ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU
+xBV)%(Wbuf),...,(xCU+xBV+CU_width-1)%(W
buf)およびy=(yCU+yBV)%S,...,(yCU+yBV+CU_hei
ght-1)%Sの場合の位置(x,y)は、利用不可能としてマークされ、ブロックベ
クトルは、無効であると考えられる。
【0124】
5.14 実施形態#14
CTUのサイズが128×128であるか、またはCTUのサイズがVPDUのサイズ
よりも大きい(例えば、現在の設計においては、64×64)場合、またはCTUのサイ
ズがVPDUのサイズよりも大きい(例えば、現在の設計においては、64×64)場合
には、サイズ256×128の仮想バッファを維持してIBCのための参照サンプルを追
跡する。以下、a<0の場合、(a%b)をfloor(a/b)*bとして定義し、f
loor(c)は、c以下の最大の整数を返す。
【0125】
ピクチャの左上隅に対するサンプル(x,y)は、バッファの左上隅に対する位置(x
%256,y%128)に関連付けられる。以下のステップは、IBC参照のために仮想
バッファに関連付けられたサンプルの可用性をどのようにマークするかを示す。
【0126】
ピクチャの左上隅に対する位置(xPrevVPDU,yPrevVPDU)を記録し
て、直近に復号化されたVPDUの左上のサンプルを表す。
1) 1つのVPDU行の復号化の開始時に、バッファのすべての位置が利用不可能と
マークされる。(xPrevVPDU,yPrevVPDU)は、(0,0)として設定
される。
2) VPDUの第1のCUの復号化の始めに、
a. yPrevVPDU%64が0に等しい場合、x=(xPrevVPDU-1
28)%256,..,((xPrevVPDU-128)%256)+63;およびy
=yPrevVPDU%128,..,(yPrevVPDU%128)+63の位置(
x,y)は、利用不可能としてマークされる。そして、(xPrevVPDU,yPre
vVPDU)を(xCU,yCU)として、即ち、CUのピクチャに対する左上位置に設
定する。
b. そうでない場合、x=(xPrevVPDU-64)%256,..,((x
PrevVPDU-64)%256)+63;およびy=yPrevVPDU%128,
..,(yPrevVPDU%128)+63の位置(x,y)は、利用不可能としてマ
ークされる。そして、(xPrevVPDU,yPrevVPDU)を(xCU,yCU
)として、即ち、CUのピクチャに対する左上位置に設定する。
3) 1つのCUを復号化した後、x=xCU%256,...,(xCU+CU_w
idth-1)%256およびy=yCU%128,...,(yCU+CU_heig
ht-1)%128の場合の位置(x,y)は、利用可能としてマークされる。
4) ブロックベクトル(xBV,yBV)を有するIBCCUの場合、x=(xCU
+xBV)%256,...,(xCU+xBV+CU_width-1)%256およ
びy=(yCU+yBV)%128,...,(yCU+yBV+CU_height-
1)%128の場合の位置(x,y)は、利用不可能としてマークされ、ブロックベクト
ルは、無効であると考えられる。
【0127】
CTUのサイズが128×128でない、または64×64未満である、または64×
64未満である場合、前の実施例、すなわち、実施形態#14と同じ処理が適用される。
【0128】
5.15 実施形態#15
IBC参照可用性マーキング処理を以下のように説明する。この文書では、その変更を
太字、下線、イタリック体で示している。
【0129】
【表4】
【0130】
【表5】
【化1】
【0131】
7.3.7.5 符号化ユニット構文
【0132】
【表6】
【0133】
8.6.2 IBCブロックの動きベクトル成分の導出処理
8.6.2.1 一般
...
【化2】
...
【0134】
8.6.3 ibcブロックの復号化処理
8.6.3.1 一般
この処理は、ibc予測モードで符号化された符号化ユニットを復号化するときに呼び
出される。
【0135】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプ
ルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight

- 水平および垂直方向の輝度符号化サブブロックの数を規定する変数numSbXおよ
びnumSbY、
- xSbIdx=0..numSbX-1、およびySbIdx=0..numSbY
-1である場合の動きベクトルmv[xSbIdx][ySbIdx]
- 現在のブロックの色成分インデックスを規定する変数cIdx
【化3】
...
【0136】
xSbIdx=0..numSbX-1,およびySbIdx=0..numSbY-
1の場合のサブブロックインデックス(xSbIdx,ySbIdx)の各コーディング
サブブロックに対して、以下が適用される。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化サブブロックの左上のサ
ンプルを規定する輝度位置(xSb,ySb)は、以下のように導出される。
(xSb,ySb)=(xCb+xSbIdx*sbWidth,yCb+ySbId
x*sbHeight) (8-913)
【化4】
【化5】
【0137】
8.7.5 ピクチャ再構成処理
8.7.5.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規
定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCu
rrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定する(nCurrSw)×(nCurrSh)
配列のpredSamples、
- 現在のブロックの残差サンプル規定する(nCurrSw)×(nCurrSh)配
列のresSamples。
【0138】
この処理の出力は以下の通りである。
- 再構成されたピクチャサンプルアレイrecSamples。
【化6】
【0139】
5.16 実施形態#16
以下の変更を除き、上記実施形態と同じである。
【0140】
【表7】
【0141】
【表8】
【化7】
【0142】
5.17 実施形態#17
本明細書では、一部の例における変化は、太字、下線を付したテキストで示される。
【0143】
7.3.7 スライスデータ構文
7.3.7.1 一般スライスデータ構文
【0144】
【表9】
【0145】
7.4.8.5 符号化ユニット構文
【0146】
以下のすべての条件がtrueである場合、NumHmvpSmrIbcCandをN
umHmvpIbcCandに等しく設定し、HmvpSmrIbcCandList[
i]をHmvpIbcCandList[i]に等しく設定してi=0..NumHmv
pIbcCand-1とすることにより、共有したマージ候補リスト領域に対する履歴に
基づく動きベクトル予測子は更新される。
- IsInSmr[x0][y0]はTRUEに等しい。
- SmrX[x0][y0]はx0に等しい。
- SmrY[x0][y0]y0に等しい。
【0147】
x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-
1に対して、以下の通り割り当てをする。
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
【化8】
【0148】
8.6.2 IBCブロックの動きベクトル成分の導出処理
8.6.2.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサ
ンプルの輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight
【0149】
この処理の出力は以下の通りである。
- 1/16分数サンプル精度mvLにおける輝度動きベクトル。
【0150】
輝度動きベクトルmvLは、以下のように導出される。
- 8.6.2.2項で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置
(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出さ
れ、その出力は輝度動きベクトルmvLである。
- general_merge_flag[xCb][yCb]が0の場合、以下が適
用される
1. 変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
2. 8.5.2.14項で規定されるような動きベクトルの丸め処理は、mvLに等
しく設定されたmvXセット、MvShift+2に等しく設定されたrightShi
ftセット、MvShift+2に等しく設定されたleftShiftセットを入力と
して呼び出され、丸められたmvLが出力となる。
3. 輝度動きベクトルmvLは、以下のように修正される。
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0](8-8
86)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (
8-888)
注1- 上記で指定したmvL[0]およびmvL[1]の結果値は、常に-217
~217-1の範囲に含まれる。
【0151】
8.6.2.6項で規定されるような履歴に基づく動きベクトル予測子リストの更新処
理は、輝度動きベクトルmvLを使用して呼び出される。
【化9】
【0152】
8.7.5 ピクチャ再構成処理
8.7.5.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規
定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCu
rrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定する(nCurrSw)×(nCurrSh)
配列のpredSamples、
- 現在のブロックの残差サンプル規定する(nCurrSw)×(nCurrSh)配
列のresSamples。
【0153】
【化10】
【0154】
色成分cIdxの値に基づいて、以下の割り当てが行われる。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイ
に対応し、関数clipCidx1はClip1に対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cb
f_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構
成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1
対応する。
- そうでない場合(cIdxが2に等しい)、tuCbfChromaをtu_cbf
_cr[xCurr][yCurr]に等しく設定し、recSamplesは再構成さ
れたクロマサンプル配列SCrに対応し、関数clipCidx1はClip1に対応
する。
【0155】
slice_lmcs_enabled_flagの値によって、以下が適用される。
- slice_lmcs_enabled_flagが0に等しい場合、位置(xCu
rr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)
×(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCur
rSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1
(predSamples[i][j]+resSamples[i][j]) (8
-992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい)
、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピク
チャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび
高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サン
プル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列
reCamplesとなる。
- それ以外の場合(cIdxが0より大きい場合)は,8.7.5.3項で規定され
ているクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、
クロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さ
nCurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChro
ma、予測クロマサンプル配列predSamples、残差クロマサンプル配列res
Samplesを入力として呼び出され、再構成されたクロマサンプル配列recSam
plesを出力とする。
【化11】
【0156】
5.18 実施形態#18
本明細書では、いくつかの例における変更を、太字、下線、イタリック体で示している
【0157】
7.3.7 スライスデータ構文
7.3.7.1 一般スライスデータ構文
【0158】
【表10】
【0159】
7.4.8.5 符号化ユニット構文
【0160】
以下のすべての条件がtrueである場合、NumHmvpSmrIbcCandをN
umHmvpIbcCandに等しく設定し、HmvpSmrIbcCandList[
i]をHmvpIbcCandList[i]に等しく設定してi=0..NumHmv
pIbcCand-1とすることにより、共有したマージ候補リスト領域に対する履歴に
基づく動きベクトル予測子は更新される。
- IsInSmr[x0][y0]はTRUEに等しい。
- SmrX[x0][y0]はx0に等しい。
- SmrY[x0][y0]はy0に等しい。
【0161】
x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-
1に対して、以下の通り割り当てをする。
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
【化12】
【0162】
8.6.2 IBCブロックの動きベクトル成分の導出処理
8.6.2.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサ
ンプルの輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight
【0163】
この処理の出力は以下の通りである。
- 1/16分数サンプル精度mvLにおける輝度動きベクトル。
【0164】
輝度動きベクトルmvLは、以下のように導出される。
- 8.6.2.2項で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置
(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出さ
れ、その出力は輝度動きベクトルmvLである。
- general_merge_flag[xCb][yCb]が0と等しい場合、以
下が適用される。
1. 変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
2. 8.5.2.14項で規定されるような動きベクトルの丸め処理は、mvLに等
しく設定されたmvXセット、MvShift+2に等しく設定されたrightShi
ftセット、MvShift+2に等しく設定されたleftShiftセットを入力と
して呼び出され、丸められたmvLが出力となる。
3. 輝度動きベクトルmvLは、以下のように修正される。
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (
8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (
8-888)
注1- 上記で指定したmvL[0]およびmvL[1]の結果値は、常に-217
~217-1の範囲に含まれる。
【0165】
8.6.2.6項で規定されるような履歴に基づく動きベクトル予測子リストの更新処
理は、輝度動きベクトルmvLを使用して呼び出される。
【化13】
【0166】
8.6.3 ibcブロックの復号化処理
8.6.3.1 一般
この処理は、ibc予測モードで符号化された符号化ユニットを復号化するときに呼び
出される。
【0167】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプ
ルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight

- 現在のブロックの色成分インデックス、
【化14】
【0168】
この処理の出力は以下の通りである。
- 予測サンプルの配列predSamples。
【化15】
【0169】
8.7.5 ピクチャ再構成処理
8.7.5.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規
定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCu
rrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定する(nCurrSw)×(nCurrSh)
配列のpredSamples、
- 現在のブロックの残差サンプル規定する(nCurrSw)×(nCurrSh)配
列のresSamples。
【0170】
【化16】
【0171】
色成分cIdxの値に基づいて、以下の割り当てが行われる。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイ
に対応し、関数clipCidx1はClip1に対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cb
f_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構
成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1
対応する。
- そうでない場合、(cIdxが2に等しければ、tuCbfChromaはtu_c
bf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再
構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1
に対応する。
【0172】
slice_lmcs_enabled_flagの値によって、以下が適用される。
- slice_lmcs_enabled_flagが0に等しい場合、位置(xCu
rr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)
×(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCur
rSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1(
predSamples[i][j]+resSamples[i][j]) (8-
992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい
)、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピク
チャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび
高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サン
プル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列
reCamplesとなる。
- それ以外の場合(cIdxが0より大きい場合)は,8.7.5.3項で規定され
ているクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、
クロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さ
nCurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChro
ma、予測クロマサンプル配列predSamples、残差クロマサンプル配列res
Samplesを入力として呼び出され、再構成されたクロマサンプル配列recSam
plesを出力とする。
【化17】
【0173】
5.19 実施形態#19
本明細書では、一部の例における変化は、太字、下線を付したテキストで示される。
【0174】
7.3.7 スライスデータ構文
7.3.7.1 一般スライスデータ構文
【0175】
【表11】
【0176】
7.4.8.5 符号化ユニット構文
以下のすべての条件がtrueである場合、NumHmvpSmrIbcCandをN
umHmvpIbcCandに等しく設定し、HmvpSmrIbcCandList[
i]をHmvpIbcCandList[i]に等しく設定してi=0..NumHmv
pIbcCand-1とすることにより、共有したマージ候補リスト領域に対する履歴に
基づく動きベクトル予測子は更新される。
- IsInSmr[x0][y0]はTRUEに等しい。
- SmrX[x0][y0]はx0に等しい。
- SmrY[x0][y0]はy0に等しい。
【0177】
x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1
に対して、以下の通り割り当てをする。
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
【化18】
【0178】
8.6.2 IBCブロックの動きベクトル成分の導出処理
8.6.2.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサ
ンプルの輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight
【0179】
この処理の出力は以下の通りである。
- 1/16分数サンプル精度mvLにおける輝度動きベクトル。
【0180】
輝度動きベクトルmvLは、以下のように導出される。
- 8.6.2.2項で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置
(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出さ
れ、その出力は輝度動きベクトルmvLである。
- general_merge_flag[xCb][yCb]が0の場合、以下が適
用される
1. 変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
2. 8.5.2.14項で規定されるような動きベクトルの丸め処理は、mvLに等
しく設定されたmvXセット、MvShift+2に等しく設定されたrightShi
ftセット、MvShift+2に等しく設定されたleftShiftセットを入力と
して呼び出され、丸められたmvLが出力となる。
3. 輝度動きベクトルmvLは、以下のように修正される。
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (
8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (
8-888)
注1- 上記で指定したmvL[0]およびmvL[1]の結果値は、常に-217
~217-1の範囲に含まれる。
【0181】
8.6.2.6項で規定されるような履歴に基づく動きベクトル予測子リストの更新処
理は、輝度動きベクトルmvLを使用して呼び出される。
【化19】
【0182】
8.6.3 ibcブロックの復号化処理
8.6.3.1 一般
この処理は、ibc予測モードで符号化された符号化ユニットを復号化するときに呼び
出される。
【0183】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプ
ルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight

【化20】
【0184】
8.7.5 ピクチャ再構成処理
8.7.5.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規
定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCu
rrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定する(nCurrSw)×(nCurrSh)
配列のpredSamples、
- 現在のブロックの残差サンプル規定する(nCurrSw)×(nCurrSh)配
列のresSamples。
【0185】
この処理の出力は、再構成されたピクチャサンプルアレイrecSamplesおよび
IBCバッファアレイibcBuf、ibcBufCb、ibcBufCrである。
【0186】
色成分cIdxの値に基づいて、以下の割り当てが行われる。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイ
SLに対応し、関数clipCidx1はClip1に対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cb
f_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構
成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1
対応する。
- そうでない場合、(cIdxが2に等しければ、tuCbfChromaはtu_c
bf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再
構成されたクロマサンプル配列SCrに対応し、関数clipCidx1はClip1
に対応する。
【0187】
slice_lmcs_enabled_flagの値によって、以下が適用される。
- slice_lmcs_enabled_flagが0に等しい場合、位置(xCu
rr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)
×(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCur
rSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1(
predSamples[i][j]+resSamples[i][j]) (8-
992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい)
、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピク
チャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび
高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サン
プル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列
reCamplesとなる。
- それ以外の場合(cIdxが0より大きい場合)、8.7.5.3項で規定されて
いるクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、ク
ロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さn
CurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChrom
a、予測クロマサンプル配列predSamples、残差クロマサンプル配列resS
amplesを入力として呼び出され、再構成されたクロマサンプル配列recSamp
lesを出力とする。
【化21】
【0188】
5.20 実施形態#20
本明細書では、いくつかの例における変更を、太字、下線、イタリック体で示している
【0189】
7.3.7 スライスデータ構文
7.3.7.1 一般スライスデータ構文
【0190】
【表12】
【0191】
7.4.8.5 符号化ユニット構文
以下のすべての条件がtrueである場合、NumHmvpSmrIbcCandをN
umHmvpIbcCandに等しく設定し、HmvpSmrIbcCandList[
i]をHmvpIbcCandList[i]に等しく設定してi=0..NumHmv
pIbcCand-1とすることにより、共有したマージ候補リスト領域に対する履歴に
基づく動きベクトル予測子は更新される。
- IsInSmr[x0][y0]はTRUEに等しい。
- SmrX[x0][y0]はx0に等しい。
- SmrY[x0][y0]はy0に等しい。
【0192】
x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-
1に対して、以下の通り割り当てをする。
CbPosX[x][y]=x0 (7-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
【化22】
【0193】
8.6.2 IBCブロックの動きベクトル成分の導出処理
8.6.2.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサ
ンプルの輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight
【0194】
この処理の出力は以下の通りである。
- 1/16分数サンプル精度mvLにおける輝度動きベクトル。
【0195】
輝度動きベクトルmvLは、以下のように導出される。
- 8.6.2.2項で規定されたIBC輝度動きベクトル予測の導出処理は、輝度位置
(xCb,yCb)、変数cbWidthおよびcbHeightを入力として呼び出さ
れ、その出力は輝度動きベクトルmvLである。
- general_merge_flag[xCb][yCb]が0と等しい場合、以
下が適用される
1. 変数mvdは、以下のように導出される。
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
2. 8.5.2.14項で規定されるような動きベクトルの丸め処理は、mvLに等
しく設定されたmvXセット、MvShift+2に等しく設定されたrightShi
ftセット、MvShift+2に等しく設定されたleftShiftセットを入力と
して呼び出され、丸められたmvLが出力となる。
3. 輝度動きベクトルmvLは、以下のように修正される。
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (
8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (
8-888)
注1- 上記で指定したmvL[0]およびmvL[1]の結果値は、常に-217
~217-1の範囲に含まれる。
【0196】
8.6.2.6項で規定されるような履歴に基づく動きベクトル予測子リストの更新処
理は、輝度動きベクトルmvLを使用して呼び出される。
【化23】
【0197】
8.6.3 ibcブロックの復号化処理
8.6.3.1 一般
この処理は、ibc予測モードで符号化された符号化ユニットを復号化するときに呼び
出される。
【0198】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプ
ルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight

- 現在のブロックの色成分インデックスを規定する変数cIdx、
【化24】
【0199】
8.7.5 ピクチャ再構成処理
8.7.5.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャ成分の左上のサンプルに対する現在のブロックの左上のサンプルを規
定する位置(xCurr,yCurr)、
- 現在のブロックの幅および高さをそれぞれ規定する変数nCurrSwおよびnCu
rrSh、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの予測サンプルを規定する(nCurrSw)×(nCurrSh)
配列のpredSamples、
- 現在のブロックの残差サンプル規定する(nCurrSw)×(nCurrSh)配
列のresSamples。
【化25】
【0200】
色成分cIdxの値に基づいて、以下の割り当てが行われる。
- cIdxが0に等しい場合、recSamplesは再構成ピクチャサンプルアレイ
に対応し、関数clipCidx1はClip1に対応する。
- そうでない場合、cIdxが1に等しければ、tuCbfChromaはtu_cb
f_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構
成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1
対応する。
- そうでない場合、(cIdxが2に等しければ、tuCbfChromaはtu_c
bf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再
構成されたクロマサンプル配列SCbに対応し、関数clipCidx1はClip1
に対応する。
【0201】
slice_lmcs_enabled_flagの値によって、以下が適用される。
- slice_lmcs_enabled_flagが0に等しい場合、位置(xCu
rr,yCurr)における再構成サンプルrecSamplesの(nCurrSw)
x(nCurrSh)ブロックは、i=0..nCurrSw-1,j=0..nCur
rSh-1に対しては下記のように導出する。
recSamples[xCurr+i][yCurr+j]=clipCidx1
(predSamples[i][j]+resSamples[i][j]) (8
-992)
- そうでない場合(slice_lmcs_enabled_flagが1に等しい)
、以下が適用される。
- cIdxが0に等しい場合、以下が適用される。
- 8.7.5.2項で規定されるような輝度サンプルのマッピング処理を伴うピク
チャ再構成は、輝度位置(xCurr,yCurr)、ブロック幅nCurrSwおよび
高さnCurrSh、予測輝度サンプル配列preSamples、および残差輝度サン
プル配列resSamplesを入力として呼び出され、出力は再構成輝度サンプル配列
reCamplesとなる。
- それ以外の場合(cIdxが0より大きい場合)は,8.7.5.3項で規定され
ているクロマサンプルの輝度依存クロマ残差スケーリング処理によるピクチャ再構成が、
クロマの位置(xCurr,yCurr)、変換ブロックの幅nCurrSwおよび高さ
nCurrSh、現在のクロマ変換ブロックの符号化ブロックフラグtuCbfChro
ma、予測クロマサンプル配列predSamples、残差クロマサンプル配列res
Samplesを入力として呼び出され、再構成されたクロマサンプル配列recSam
plesを出力とする。
【化26】
【0202】
図6は、視覚メディア(映像または画像)処理の例示的な方法の一例を示すフローチャ
ートである。方法600は、現在の映像ブロックと現在の映像ブロックのビットストリー
ム表現との間での変換のため、イントラブロックコピー符号化モードを使用して現在の映
像ブロックのための参照サンプルを記憶するバッファサイズを判定することと(602)
、このバッファに記憶された参照サンプルを使用してこの変換を行うことと(604)を
含む。
【0203】
以下の項は、方法600の実施形態および他の方法によって実装されるいくつかの例示
的な好適な特徴を説明する。追加の例は、本明細書の第4章に記載する。
【0204】
1. 現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間で
の変換のため、イントラブロックコピー符号化モードを使用して前記現在の映像ブロック
のための参照サンプルを記憶するバッファサイズを判定することと、前記バッファに記憶
された前記参照サンプルを使用して前記変換を行うことと、を含む、映像処理方法。
【0205】
2. 前記バッファサイズが所定の定数である、第1項に記載の方法。
【0206】
3. 前記サイズがM×Nであり、MおよびNが整数である、第1項から2項のいずれ
かに記載の方法。
【0207】
4. M×Nが64×64または128×128または64×128に等しい、第3項
に記載の方法。
【0208】
5. 前記バッファサイズは、前記現在の映像ブロックの符号化ツリーユニットのサイ
ズに等しい、第1項に記載の方法。
【0209】
6. 前記バッファサイズは、前記変換に使用される仮想パイプラインデータユニット
のサイズに等しい、第1項に記載の方法。
【0210】
7. 前記バッファサイズは、前記ビットストリーム表現における1つのフィールドに
対応する、第1項に記載の方法。
【0211】
8. 前記フィールドは、映像パラメータセット、シーケンスパラメータセットまたは
ピクチャパラメータセット、またはピクチャヘッダ、スライスヘッダ、またはタイルグル
ープヘッダレベルでのビットストリーム表現に含まれる、第7項に記載の方法。
【0212】
9. 前記バッファの前記サイズが、輝度成分の参照サンプルとクロマ成分の参照サン
プルとで異なる、第1~8項のいずれかに記載の方法。
【0213】
10. 前記バッファの前記サイズは、前記現在の映像ブロックのクロマサブサンプリ
ングフォーマットに依存する、第1~8項のいずれかに記載の方法。
【0214】
11. 前記参照サンプルはRGBフォーマットで記憶される、第1~8項のいずれか
に記載の方法。
【0215】
12. 前記バッファは、ループフィルタリング前およびループフィルタリング後の再
構成サンプルを記憶するために使用される、第1~11項のいずれかに記載の方法。
【0216】
13. ループフィルタリングは、非ブロック化フィルタリング、または適応ループフ
ィルタリング(ALF)、またはサンプル適応オフセット(SAO)フィルタリングを含
む、第12項に記載の方法。
【0217】
14. 現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間
での変換のため、前記参照サンプルの初期値を使用してイントラブロックコピー符号化モ
ードを使用して前記現在の映像ブロックのための参照サンプルを記憶するバッファを初期
化することと、前記バッファに記憶された前記参照サンプルを使用して前記変換を行うこ
とと、を含む、映像処理方法。
【0218】
15. 前記初期値は定数に対応する、第14項に記載の方法。
【0219】
16. 前記初期値は、現在の映像ブロックのビット深度の関数である、第14~15
項のいずれかに記載の方法。
【0220】
17. 前記定数が中間グレー値に対応する、第15項に記載の方法。
【0221】
18. 前記初期値は、前回復号化された映像ブロックの画素値に対応する、第項14
に記載の方法。
【0222】
19. 前回復号化された映像ブロックは、インループフィルタリング前の復号化され
たブロックに対応する、第18項に記載の方法。
【0223】
20. 前記バッファサイズが第1~13項の1つに記載のものである、第14~19
項のいずれかに記載の方法。
【0224】
21. xおよびyの数字を使用して、前記バッファ内の画素位置がアドレス指定され
る、第1~20項のいずれかに記載の方法。
【0225】
22. 前記バッファ内の画素位置を0からM*N-1までの範囲の単一の数を使用し
て、アドレス指定し、MおよびNは、バッファの画素幅および画素高さである、第1~2
0項のいずれかに記載の方法。
【0226】
23. 現在のビットストリーム表現は、前記変換のためのブロックベクトルを含み、
(BVx,BVy)として表される前記ブロックベクトルは、(x-x0,y-y0)に
等しく、(x0,y0)は、前記現在の映像ブロックの符号化ツリーユニットの左上位置
に対応する、第1~20項のいずれかに記載の方法。
【0227】
24. 現在のビットストリーム表現は、前記変換のためのブロックベクトルを含み、
(BVx,BVy)として表される前記ブロックベクトルは、(x-x0+Tx,y-y
0+Ty)に等しく、(x0,y0)は、前記現在の映像ブロックの符号化ツリーユニッ
トの左上位置に対応し、TxおよびTyは、オフセット値である、第1~20項のいずれ
かに記載の方法。
【0228】
25. TxおよびTyが予め規定されたオフセット値である、第24項に記載の方法
【0229】
26. 前記変換の間、位置(x0,y0)にあり、ブロックベクトル(BVx,BV
y)を有する画素に対し、前記バッファにおける対応する参照が、参照位置(x0+BV
x,y0+BVy)に見出される、第1~20項のいずれかに記載の方法。
【0230】
27. 前記参照位置が前記バッファの外にある場合、前記バッファにおける前記参照
は、前記バッファの境界でクリッピングすることによって判定される、第26項に記載の
方法。
【0231】
28. 前記参照位置が前記バッファの外にある場合、前記バッファにおける前記参照
は、所定の値を有すると判定される、第26項に記載の方法。
【0232】
29. 前記変換の間、位置(x0,y0)にあり、ブロックベクトル(BVx,BV
y)を有する画素に対し、前記バッファにおける対応する参照が、参照位置((x0+B
Vx) mod M,(y0+BVy) mod N)に見出され、「mod」は、モデ
ュロ演算であり、MおよびNは、前記バッファのxおよびy寸法を表す整数である、第1
~20項に記載の方法。
【0233】
30. 映像と現在の映像ブロックのビットストリーム表現との間での変換中に、映像
境界におけるイントラブロックコピー符号化のための参照サンプルを記憶するバッファを
リセットすることと、このバッファに記憶された参照サンプルを使用してこの変換を行う
ことと、を含む、映像処理方法。
【0234】
31. 前記映像境界は、新しいピクチャまたは新しいタイルに対応する、第30項に
記載の方法。
【0235】
32. 前記変換は、前記リセットの後、前記バッファを仮想パイプラインデータユニ
ット(VPDU)の再構成された値で更新することによって行われる、第30項に記載の
方法。
【0236】
33. 前記変換は、前記リセットの後、前記バッファを符号化ツリーユニットの再構
成された値で更新することによって行われる、第30項に記載の方法。
【0237】
34. 前記リセットは、各符号化ツリーユニット行の最初に行われる、項30に記載
の方法。
【0238】
35. 前記バッファの前記サイズは、64×64の前回復号化されたブロックL個に
対応し、Lは整数である、第1項に記載の方法。
【0239】
36. 前記変換中に前記バッファ内のサンプルを読み取るかまたは記憶するために、
垂直走査順序が使用される、第1~35項のいずれかに記載の方法。
【0240】
37. 現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間
での変換のため、イントラブロックコピー符号化モードを使用して前記現在の映像ブロッ
クのための参照サンプルを記憶するためのバッファを使用することであって、前記バッフ
ァの第1のビット深度は、前記符号化されたデータの第2のビット深度とは異なる、使用
することと、前記バッファに記憶された前記参照サンプルを使用して前記変換を行うこと
と、を含む、映像処理方法。
【0241】
38. 前記第1のビット深度が前記第2のビット深度よりも大きい、第37項に記載
の方法。
【0242】
39. 前記第1のビット深度が、変換中に使用される再構成バッファのビット深度と
同じである、第37~38項のいずれかに記載の方法。
【0243】
40. 前記第1のビット深度が、前記ビットストリーム表現において値または差分値
として信号伝達される、第37~39項のいずれかに記載の方法。
【0244】
41. 前記変換は、クロマおよび輝度成分に対して異なるビット深度を使用する、第
37~40項のいずれかに記載の方法。
【0245】
第37~41項までの追加の実施形態および実施例は、第4章の第7項に記載されてい
る。
【0246】
42. イントラブロックコピーモードを使用して現在の映像ブロックと前記現在の映
像ブロックのビットストリーム表現との間で変換を行うことを含み、前記変換中に予測計
算に使用される第1の精度は、前記変換中に再構成計算に使用される第2の精度より低い
、映像処理方法。
【0247】
43. 前記予測計算は、clip{{p+[1<<(b-1)]}>>b,0,(1
<<bitdepth)-1}<<bを使用して、再構成サンプル値から予測サンプル値
を判定することを含み、pは、再構成サンプル値であり、bは、予め規定されたビットシ
フト値であり、bitdepthは、予測サンプル精度である、第43項に記載の方法。
【0248】
第42~43項までの追加の実施形態および実施例は、第4章の第28~31、および
34項に記載されている。
【0249】
44. イントラブロックコピーモードを使用して現在の映像ブロックと現在の映像ブ
ロックのビットストリーム表現との間で変換を行うことを含み、サイズnM×nMは、符
号化ツリーユニットサイズM×Mに使用され、nおよびNは、整数であり、前記現在の映
像ブロックは、前記符号化ツリーユニットに位置決めされ、前記参照領域は、前記現在の
映像ブロックに対応する符号化ツリーユニットで最も近く、利用可能なn×n符号化ツリ
ーユニットである、映像処理方法。
【0250】
第4項の追加の実施形態および実施例は、第4章の第35項に記載されている。
【0251】
45. イントラブロックコピーモードを使用して現在の映像ブロックと現在の映像ブ
ロックのビットストリーム表現との間で変換を行うことを含み、サイズnM×nMは、符
号化ツリーユニットサイズ、M×M以外に使用され、nおよびNは、整数であり、前記現
在の映像ブロックは、前記符号化ツリーユニットに位置決めされ、前記参照領域は、前記
現在の映像ブロックに対応する符号化ツリーユニットで最も近く、利用可能なn×n-1
符号化ツリーユニットである、映像処理方法。
【0252】
第4項の追加の実施形態および実施例は、第4章の第36項に記載されている。図8
よび9には、さらなる例示的な実施形態が示されている。
【0253】
46. M=mW、N=Hであり、WおよびHは、現在の映像ブロックの符号化ツリー
ユニット(CTU)の幅および高さであり、mは、正の整数である、請求項3に記載の方
法。
【0254】
47. M=WかつN=nHであり、WおよびHは、符号化ツリーユニット(CTU)
の幅および高さであり、nは、正の整数である、請求項3に記載の方法。
【0255】
48. M=mW、N=nHであり、WおよびHは、符号化ツリーユニット(CTU)
の幅および高さであり、mおよびnは、正の整数である、請求項3に記載の方法。
【0256】
49. nおよびmがCTUのサイズに依存する、請求項46~48のいずれかに記載
の方法。
【0257】
50. 現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での
変換のため、前記映像の成分Xを使用して前記映像の成分cの前記現在の映像ブロックに
対応するブロックベクトルの妥当性を判定することであって、前記成分Xは、前記映像の
輝度成分とは異なる、判定することと、前記ブロックベクトルが前記現在の映像ブロック
に対して有効であると判定されると前記ブロックベクトルを使用して前記変換を行うこと
と、を含む映像処理方法。ここで、(BVx,BVy)と表されるブロックベクトルは、
(x-x0,y-y0)に等しく、(x0,y0)は、現在の映像ブロックの符号化ツリ
ーユニットの左上位置に対応する。
【0258】
51. 前記成分cが、前記映像の輝度成分に対応する、項50項に記載の方法。
【0259】
52. 前記現在の映像ブロックがクロマブロックであり、前記映像が4:4:4フォ
ーマットである、第50項に記載の方法。
【0260】
53. 前記映像は、4:2:0形式であり、前記現在の映像ブロックは、位置(x,
y)で始まるクロマブロックであり、前記判定することは、isRec(c,((x+B
Vx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32)
,((y+BVy)>>5<<5)+(y%32))がtrueである場合には前記ブロ
ックベクトルは無効であると判定することを含む、第50項に記載の方法。
【0261】
54. 前記映像は、4:2:0形式であり、前記現在の映像ブロックは、位置(x,
y)から始まるクロマブロックであり、前記判定することは、isRec(c,x+BV
x+Chroma_CTU_size,y)がtrueである場合には、前記ブロックベ
クトルは無効であると判定することを含む、第50項に記載の方法
【0262】
55. 映像領域の現在の仮想パイプラインデータユニット(VPDU)の現在の映像
ブロックと、現在の映像ブロックのビットストリーム表現との間での変換のため、選択的
に、映像領域の第1の行から前処理済みVPDUであるK1および第2の行の前処理済み
VPDUであるK2を使用することを判定することと、変換を行うことであって、この変
換は、現在のVPDUの残りを使用することを除外する、変換を多なうことと、を含む映
像処理方法。
【0263】
56. K1=1であり、K2=2である、第55項に記載の方法。
【0264】
57. 前記現在の映像ブロックは、前記映像領域の寸法または前記現在のVPDUの
寸法に基づいて選択的に処理される、第55~56項に記載の方法。
【0265】
58. 現在の映像ブロックと、前記現在の映像ブロックのビットストリーム表現との
間での変換のためにブロックベクトルの妥当性チェックを行うことであって、前記ブロッ
クベクトルは、イントラブロックコピーモードで使用する、妥当性チェックを行うことと
、前記妥当性チェックの結果を使用して前記変換中に前記ブロックベクトルを選択的に使
用することと、を含む、映像処理方法。
【0266】
59. イントラブロックコピー(IBC)バッファを前記変換中に使用し、前記IB
Cバッファの幅と高さをWbufおよびHbufとして、前記現在の映像ブロックの寸法
がW×Hであり、前記ブロックベクトルは、(BVx,BVy)として表現され、現在の
映像ブロックは、WpicおよびHpicの寸法を有する現在のピクチャにあり、符号化
ツリーユニットは、幅および高さとしてWctuおよびHctuを有し、前記妥当性チェ
ックは、所定の規則を使用する、第58項に記載の方法。
【0267】
60. 前記現在の映像ブロックは、輝度ブロック、クロマブロック、符号化ユニット
CU、変換ユニットTU、4×4ブロック、2×2ブロック、または画素座標(X,Y)
から始まる親ブロックのサブブロックである、第58~59項のいずれかに記載の方法。
【0268】
61. 前記妥当性チェックは、前記現在のピクチャの境界外にある前記ブロックベク
トルを妥当であると見なす、第58~60項のいずれかに記載の方法。
【0269】
62. 前記妥当性チェックは、符号化ツリーユニットの境界外にあるブロックベクト
ルを妥当であると見なす、第58~60項のいずれかに記載の方法。
【0270】
前章の第23~30項では、上記第58~62項の追加例および変形例を述べている。
【0271】
63. 前記変換は、前記現在の映像ブロックから前記ビットストリーム表現を生成す
ることを含む、第1~62項のいずれかに記載の方法。
【0272】
64. 前記変換は、前記ビットストリーム表現から前記現在の映像ブロックの画素値
を生成することを含む、第1~62項のいずれかに記載の方法。
【0273】
65. 請求項1~62の1項以上に記載の方法を実装するように構成された処理装置
を備える映像エンコーダ装置。
【0274】
66. 第1~62項の1項以上に記載の方法を実装するように構成された処理装置を
備える、映像デコーダ装置。
【0275】
67. コードが記憶されたコンピュータ可読媒体であって、前記コードは第1~62
項のいずれかまたは複数項に記載の方法を実装するための処理装置が実行可能な命令を実
施する、コンピュータ可読媒体。
【0276】
図7は、映像/画像処理装置700のハードウェアプラットフォームを示すブロック図
である。装置700は、本明細書に記載の方法の1つ以上を実装するために使用してもよ
い。装置700は、スマートフォン、タブレット、コンピュータ、IoT(Intern
et of Things)受信機等により実装されてもよい。装置700は、1つ以上
のプロセッサ702と、1つ以上のメモリ704と、映像処理ハードウェア706と、を
含んでもよい。1つまたは複数の処理装置702は、本明細書に記載される1つ以上の方
法(方法600を含むが、これに限定されない)を実装するように構成されてもよい。メ
モリ(複数可)704は、本明細書で説明される方法および技術を実装するために使用さ
れるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア706
は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0277】
現在の映像ブロックに対応するビットストリーム表現は、ビットの連続したセットであ
る必要はなく、ヘッダ、パラメータセット、およびネットワーク抽象化層(NAL)パケ
ットにまたがって分散されてもよい。
【0278】
セクションA:追加の例示的な実施形態
【0279】
セクションAにおいて、本明細書に記載される技術の一部を実装するために、VVC規
格の現在のバージョンを修正し得る別の例示的な実施形態を提示する。
【0280】
本セクションでは、現在のIBC参照バッファ設計におけるいくつかの問題を分析し、
これらの問題に対処するための異なる設計を提示する。復号化メモリと混合する代わりに
、独立したIBC参照バッファが提案される。現在のアンカと比較して、提案されたスキ
ームは、クラスFで-0.99%/-0.71%/-0.79%のAI/RA/LD-B
の輝度BD率、4:2:0 TGMでは-2.57%/-1.81%/-1.36%で、
6.7%のメモリの減少、あるいは、クラスFでは-1.31%/-1.01%/-0.
81%、4:2:0 TGMでは-3.23%/-2.33%/-1.71%で、6.7
%のメモリの増加を示している。
【0281】
A1. 導入
イントラブロックコピー、すなわちIBC(または現在のピクチャ参照、即ち前のCP
R)符号化モードが採用される。なお、IBC参照サンプルはオンチップメモリに記憶さ
れるべきであり、従って、1つのCTUの限られた参照領域が規定される。バッファのた
めのエクストラオンチップメモリを制限するために、現在の設計は、64×64メモリを
再利用して現在のVPDUを復号化するので、IBCをサポートするために必要なメモリ
は3つの追加の64×64ブロックのメモリのみである。CTUの大きさが128×12
8である場合の、現在の参照領域を図2に示す。
【0282】
現在の草案(VVC草案4)において、面積は、次のように定義される。
【0283】
【表13】
【0284】
このように、合計基準サイズはCTUである。
【0285】
A2. 現在の設計における潜在的な問題
現在の設計は、現在のVPDUを復号化するために64×64メモリを再使用すること
を想定し、IBC基準は、それに応じてVPDUメモリの再利用に合わせられる。このよ
うな設計は、VPDU復号化メモリをIBCバッファで束ねる。次のような問題が考えら
れる。
1. より小さなCTUサイズを扱うことが問題となり場合がある。CTUのサイズが
32x32であるとすると、現在のVPDUを復号化する現在の64×64メモリが、異
なるアーキテクチャにおいて32×32レベルのメモリ再利用を効率的にサポートできる
かどうかは、不明である。
2. 参照領域は有意に異なる。従って、あまりにも多くのビットストリーム適合性の
制約が導入されている。これは、参照領域を効率的に利用し、合法的なビットストリーム
の生成を回避するために、エンコーダに余分な負担をかける。また、異なるモジュール、
例えばマージリストにおいて無効なBVを有する可能性が高まる。これらの無効なBVを
扱うことにより、余分なロジックまたは余分な適合性の制約を導入してしまう場合がある
。これは、エンコーダまたはデコーダに負担をもたらすだけでなく、BV符号化とMV符
号化との間に相違を生じさせる可能性がある。
3. 設計がうまく拡大縮小されていない。VPDU復号化はIBCバッファと混合さ
れるので、現在の1つの128×128CTU設計に対して参照領域を増減させることは
容易ではない。を利用することは、より低いまたはより高いプロファイルなどの、後の開
発において、より優れた符号化効率とオンチップメモリのトレードオフを有効に利用する
ための柔軟性を制限する可能性がある。
4. IBC参照バッファのビット深度は、復号化バッファに接続される。通常、スク
リーンコンテンツのビット深度は内部復号化のビット深度よりも小さいが、バッファは、
大部分が丸められたり量子化されたりするノイズを表すビットを記憶するために、依然と
してメモリを費やす必要がある。より高い復号化ビット深度構成を考える場合、この問題
はさらに深刻になる。
【0286】
A3. クリアなIBCバッファ設計
上記サブセクションに記載された問題に対処するために、我々は、復号化メモリと混合
されない専用のIBCバッファを有することを提案する。
【0287】
128×128CTUの場合、バッファは8ビットのサンプルを含む128×128と
して規定され、サイズw×hのCU(x,y)が復号化されていると、ループフィルタリ
ング前のバッファの再構成は8ビットに変換され、位置(x%128,y%128)から
始まるw×hブロック領域に書き込まれる。モデュロ演算子%は、常に正の数を返す。即
ち、x<0であってx%Lを-(-x%L)と定義すると、例えば、-3%128=12
5である。
【0288】
画素(x,y)がIBCモードでBV=(BVx,BVy)で符号化されると仮定する
と、IBC参照バッファにおける予測サンプルは、((x+BVx)%128、(y+B
Vy)%128)に位置し、画素値は予測前に10ビットに変換される。
【0289】
バッファを(W,H)と見なす場合、(x,y)から始まるCTUまたはCUを復号化
した後、ループフィルタリング前の再構成された画素を(x%W,y%H)から始まるバ
ッファに記憶する。このように、CTUを復号化した後、対応するIBC参照バッファは
それに応じて更新される。このような設定は、CTUのサイズが128×128でない場
合に発生することがある。例えば、64×64CTUの場合、現在のバッファサイズは、
256×64バッファと見なすことができる。64×64CTUの場合のバッファの状態
図2に示す。
【0290】
図12は、IBC参照バッファステータスを示す図であり、1つのブロックは64×6
4CTUを示す。
【0291】
このような設計において、IBCバッファはVPDU復号化メモリとは異なるので、す
べてのIBC参照バッファを参照として使用できる。
【0292】
IBCバッファのビット深度が8ビットである場合、3つの追加の10ビット64×6
4バッファを必要とする現在の設計に比べ、オンチップメモリの増加は、(8*4)/(
10*3)-100%=6.7%である。
【0293】
ビット深度をさらに低減した場合メモリ要件をさらに低減することができる。例えば、
7ビットバッファの場合、オンチップメモリの節約は、100%-(7*4)/(10*
3)=6.7%である。
【0294】
この設計では、唯一のビットストリーム適合性の制約は、参照ブロックが現在のタイル
の現在のCTU行における再構成された領域内にあるべきである、ということである。
【0295】
各CTU行の開始時に512への初期化が許可される場合、すべてのビットストリーム
適合性の制約を除去することができる。
【0296】
A4. 実験結果
いくつかの実施形態において、開示された方法は、VTM-4.0ソフトウェアを使用
して実装されてもよい。
【0297】
10ビットバッファ実装およびCTCの場合、このデコーダは、現在のVTM4.0エ
ンコーダに完全に適合する。すなわち、これは、提案されたデコーダがVTM-4.0
CTCビットストリームを正確に復号化することができることを意味する。
【0298】
7ビットバッファの実装形態では、表1に示す結果が得られる。
【0299】
8ビットバッファの実装形態では、結果を表2に示す。
【0300】
【表14】
【0301】
【表15】
【0302】
図17は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム
1700を示すブロック図である。様々な実装形態は、システム1700のモジュールの
一部又は全部を含んでもよい。システム1700は、映像コンテンツを受信するための入
力ユニット2802を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット
、例えば、8又は10ビットのマルチモジュール画素値で受信されてもよく、又は圧縮又
は符号化フォーマットで受信されてもよい。入力ユニット1702は、ネットワークイン
ターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。
ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワ
ーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラ
ーインターフェース等の無線インターフェースを含む。
【0303】
システム1700は、本明細書に記載される様々な符号化又は符号化方法を実装するこ
とができる符号化モジュール1704を含んでもよい。符号化モジュール1704は、入
力ユニット1702からの映像の平均ビットレートを符号化モジュール1704の出力に
低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮また
は映像コード変換技術と呼ばれることがある。符号化モジュール1704の出力は、モジ
ュール1706によって表されるように、記憶されてもよいし、接続された通信を介して
送信されてもよい。入力ユニット1702において受信された、記憶された又は通信され
た映像のビットストリーム(又は符号化)表現は、モジュール1708によって使用され
て、表示インターフェースユニット1710に送信される画素値又は表示可能な映像を生
成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理
は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「符号
化」動作又はツールと呼ぶが、符号化ツール又は動作は、エンコーダ及びそれに対応する
、復号化の結果を逆にする復号化ツール又は動作が、デコーダによって行われることが理
解されよう。
【0304】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニ
バーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDM
I(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェ
ースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、
IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソ
コン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデ
バイス等の様々な電子デバイスに実施されてもよい。
【0305】
図18は、映像データ処理方法の一例を示すフローチャートである。このフローチャー
トのステップは、本願の第4章の実施例23に関連して説明する。ステップ1802にお
いて、この処理は、映像メディアデータの現在のピクチャの現在の映像ブロックと現在の
映像ブロックのビットストリーム表現との変換のために、ブロックベクトル(BVx,B
Vy)を決定し、前記ブロックベクトルの妥当性は、(1)サンプルブロックの位置(P
,Q)、および/または、(2)位置(P,Q)のサンプルを再構成するかどうか、およ
び/または、(3)現在の映像ブロックの位置に依存せず、ブロックベクトル(BVx,
BVy)は、現在の映像ブロックとサンプルブロックとの間の画素変位を表す。ステップ
1804において、前記処理は、前記ブロックベクトルを使用して、現在の映像ブロック
の予測ブロックを導出するために使用される参照サンプルを含む、現在の映像ブロックと
同じ映像領域に位置する再構成ブロックに基づくイントラブロックコピーモードでの変換
を行い、前記変換中、バッファにおける参照サンプルからの位置(A,B)を有する予測
サンプルを、少なくともバッファのサイズおよび/またはブロックベクトル(BVx,B
Vy)に基づいて決定する。
【0306】
図19は、映像データ処理方法の一例を示すフローチャートである。このフローチャー
トのステップは、本願の第4章の実施例23に関連して説明する。ステップ1902にお
いて、前記処理は、視覚メディアデータの現在のピクチャの現在の映像ブロックと前記視
覚メディアデータのビットストリーム表現との変換のために、現在の映像ブロックに対応
するブロックベクトル(BVx,BVy)が規則に従って有効であるかどうかを判定し、
前記ブロックベクトル(BVx,BVy)は、前記現在の映像ブロックとサンプルブロッ
クとの間の画素変位を表す。ステップ1904において、前記処理は、ブロックベクトル
を使用して、前記現在の映像ブロックの予測ブロックを導出するために使用される参照サ
ンプルを含む前記現在のピクチャからの参照領域に基づく変換を行い、前記規則は、ブロ
ックベクトル(BVx,BVy)が、(1)このサンプルブロックからの1つ以上のサン
プルがこの現在のピクチャの外側にあり、および/または、(2)サンプルブロックから
の1つ以上のサンプルが、現在の映像ブロックに関連付けられた少なくとも1つの符号化
ツリーユニット(CTU)の外側にあり、および/または、(3)サンプルブロックから
の1つ以上のサンプルが再構成に失敗した場合に有効になる。
【0307】
図20は、映像データ処理方法の一例を示すフローチャートである。このフローチャー
トのステップは、本願の第4章の実施例44に関連して説明する。ステップ2002にお
いて、プロセスは、視覚メディアデータの現在のピクチャの現在の映像ブロックと、視覚
メディアデータのビットストリーム表現との変換を行い、前記変換は、現在の映像ブロッ
クの予測ブロックを導出するために使用される参照サンプルを含む現在のピクチャからの
参照領域に基づき、定義されたサイズの仮想バッファが、予測ブロックを導出するための
参照サンプルの利用可能性を追跡するために使用される。
【0308】
図21は、映像データ処理方法の一例を示すフローチャートである。このフローチャー
トのステップは、本願の第4章の実施例51に関連して説明する。ステップ2102にお
いて、前記処理は、視覚メディアデータの現在のピクチャの現在の映像ブロックと視覚メ
ディアデータのビットストリーム表現との変換のために、現在の映像ブロックの予測ブロ
ックを導出するための、現在のピクチャからの参照サンプルを含むバッファを維持するこ
とを含み、前記導出に利用できないとマークされたバッファ内の1つ以上の参照サンプル
が、画素値の範囲外の値を有している。
【0309】
図22は、映像データ処理方法の一例を示すフローチャートである。このフローチャー
トのステップは、本願の第4章の実施例54に関連して説明する。ステップ2202にお
いて、前記処理は、現在の映像ブロックの予測ブロックを導出するために、現在のピクチ
ャからの参照サンプルを含むバッファを使用して、視覚メディアデータの現在のピクチャ
の映像ブロックと視覚メディアデータのビットストリーム表現との変換を行うことを含み
、前記変換は、ビットストリーム表現が規則に準拠するために、バッファにおける参照サ
ンプルがビットストリーム適合性の制約を満たすものであることを規定する規則に基づく
【0310】
本明細書のいくつかの実施形態は、項に基づく形式で提示される。
【0311】
L1.視覚メディア処理方法であって、
映像メディアデータの現在のピクチャの現在の映像ブロックと現在の映像ブロックのビ
ットストリーム表現との変換のために、ブロックベクトル(BVx,BVy)を決定する
ことであって、前記ブロックベクトルの妥当性は、(1)サンプルブロックの位置(P,
Q)、および/または、(2)位置(P,Q)のサンプルを再構成するかどうか、および
/または、(3)現在の映像ブロックの位置に依存せず、ブロックベクトル(BVx,B
Vy)は、現在の映像ブロックとサンプルブロックとの間の画素変位を表す、決定するこ
とと、
前記ブロックベクトルを使用して、現在の映像ブロックの予測ブロックを導出するため
に使用される参照サンプルを含む、現在の映像ブロックと同じ映像領域に位置する再構成
ブロックに基づくイントラブロックコピーモードでの変換を行うことであって、前記変換
中、バッファにおける参照サンプルからの位置(A,B)を有する予測サンプルを、少な
くともバッファのサイズおよび/またはブロックベクトル(BVx,BVy)に基づいて
決定する、変換を行うことと、を含む。
【0312】
L2.視覚メディア処理方法であって、
視覚メディアデータの現在のピクチャの現在の映像ブロックと前記視覚メディアデータ
のビットストリーム表現との変換のために、現在の映像ブロックに対応するブロックベク
トル(BVx,BVy)が規則に従って有効であるかどうかを判定することであって、前
記ブロックベクトル(BVx,BVy)は、前記現在の映像ブロックとサンプルブロック
との間の画素変位を表す、決定することと、
前記ブロックベクトルを使用して、前記現在の映像ブロックの予測ブロックを導出する
ために使用される参照サンプルを含む前記現在のピクチャからの参照領域に基づく変換を
行うこととを含み、前記規則は、ブロックベクトル(BVx,BVy)が、(1)このサ
ンプルブロックからの1つ以上のサンプルがこの現在のピクチャの外側にあり、および/
または、(2)サンプルブロックからの1つ以上のサンプルが、現在の映像ブロックに関
連付けられた少なくとも1つの符号化ツリーユニット(CTU)の外側にあり、および/
または、(3)サンプルブロックからの1つ以上のサンプルが再構成に失敗した場合に有
効になる、視覚メディア処理方法。
【0313】
L3.前記ブロックベクトル(BVx,BVy)が有効であることを識別すると、少な
くとも、バッファのサイズおよび/またはブロックベクトル(BVx,BVy)のサイズ
に応じて、バッファ内の参照サンプルから位置(A,B)を持つ予測サンプルを決定する
、条項L2に記載の方法。
【0314】
L4.バッファにおける参照サンプルが、現在のピクチャの領域の再構成サンプルに対
応する、項目L1またはL3のいずれか1つ以上に記載の方法。
【0315】
L5.前記領域は、現在の映像ブロックに関連付けられた符号化ツリーユニット(CT
U)行を含む、項目L4に記載の方法。
【0316】
L6.前記ブロックベクトル(BVx,BVy)および現在の映像ブロックの左上の位
置(x,y)に基づいて算出された位置(P,Q)が1つのピクチャの境界の外側にある
かどうかに関わらず、ブロックベクトル(BVx,BVy)が有効であると決定される、
項目L1~L5のいずれか1つ以上に記載の方法。
【0317】
L7.x+BVx<0であるかまたはx+BVx>0であるかに関わらず、ブロックベ
クトル(BVx,BVy)が有効である、項目L6に記載の方法。
【0318】
L8.ブロックベクトル(BVx,BVy)は、x+W+BVx>Wpicまたはx+
W+BVx<Wpicであるかどうかに関わらず有効であり、式中、Wは、前記現在の映
像ブロックの幅を表し、Wpicは、前記ピクチャの幅を表す、項目L6に記載の方法。
【0319】
L9.ブロックベクトル(BVx,BVy)は、y+BVy<0であるかまたはy+B
Vy>0であるかに関わらず有効である、項目L6に記載の方法。
【0320】
L10.ブロックベクトル(BVx,BVy)は、x+H+BVx>Hpicまたはx
+H+BVx<Hpicであるかどうかに関わらず有効であり、式中、Hは、前記現在の
映像ブロックの高さを表し、Hpicは、前記ピクチャの高さを表す、項目L6に記載の
方法。
【0321】
L11.前記ブロックベクトル(BVx,BVy)および現在の映像ブロックの左上の
位置(x,y)に基づいて算出された位置(P,Q)が1つの前記現在の映像ブロックを
含む符号化ツリーユニットの外側にあるかどうかに関わらず、ブロックベクトル(BVx
,BVy)が有効である、項目L1~L5のいずれか1つ以上に記載の方法。
【0322】
L12.y+BVy<floor(y/Hctu)*Hctuであるかy+BVy>f
loor(y/Hctu)*Hctuであるかに関わらず、ブロックベクトル(BVx,
BVy)が有効であり、Hctuは、符号化ツリーユニットの高さを表し、floor(
a)は、a以下の最大整数である、項目L11に記載の方法。
【0323】
L13.y+H+BVy<floor(y/Hctu)*Hctuであるかy+H+B
Vy>floor(y/Hctu)*Hctuであるかに関わらず、ブロックベクトル(
BVx,BVy)が有効であり、Hは前記現在の映像ブロックの高さを表し、Hctu
、符号化ツリーユニットの高さを表し、floor(a)は、a以下の最大整数である、
項目L11に記載の方法。
【0324】
L14.前記ブロックベクトル(BVx,BVy)および現在の映像ブロックの左上の
位置(x,y)に従って計算された位置(P,Q)が、現在の映像ブロックおよび左方向
に沿った(n-1)個の符号化ツリーユニットを含む符号化ツリーユニットの外側にある
かどうかにかかわらず、前記ブロックベクトル(BVx,BVy)が有効である、項目L
1~L5のいずれか1つ以上に記載の方法。
【0325】
L15.x+BVx<floor(x/Wctu)*Wctu-(n-1)*Wctu
またはx+BVx>floor(X/Wctu)*Wctu-(n-1)*Wctuのい
ずれであるかに関わらず、ブロックベクトル(BVx,BVy)が有効であり、Wctu
は、前記符号化ツリーユニットの重さを示し、floor(a)は、a以下の最大整数で
ある、項目L14に記載の方法。
【0326】
L16.x+W+BVx>floor(X/Wctu)*Wctu+Wctuまたはx
+W+BVx<floor(X/Wctu)*Wctu+Wctuのいずれであるかに関
わらず、ブロックベクトル(BVx,BVy)が有効であり、Wは、前記符号化ツリーユ
ニットの重さを示し、Wctuは、前記現在の映像ブロックの重さを示し、floor(
a)は、a以下の最大整数である項目L14に記載の方法。
【0327】
L17.前記ブロックベクトル(BVx,BVy)および現在の映像ブロックの左上の
位置(x,y)に基づいて算出された位置(P,Q)が、現在の映像ブロックを含む現在
の符号化ツリーユニットを含む下内のCTU行の外側にあるかどうかに関わらず、ブロッ
クベクトル(BVx,BVy)が有効である、項目L1~L5のいずれか1つ以上に記載
の方法。
【0328】
L18.前記ブロックベクトル(BVx,BVy)は、Y+BVy<floor(Y/
ctu)*HctuまたはY+H+BVy>=floor(Y/Hctu)*Hctu
+Hctuに関わらず有効であり、ここで、WctuおよびHctuは、それぞれCTU
の幅および高さを示し、floor(a)は、a以下の最大整数である、項目L17に記
載の方法。
【0329】
L19.サンプルの再構成に失敗したかどうかに関わらず、ブロックベクトル(BVx
,BVy)が有効であると判定される、項目L1~L5のいずれか1つ以上に記載の方法
【0330】
L20.ブロックベクトル(BVx,BVy)は、isRec(x+BVx,y+BV
y)が偽であるかどうかに関わらず有効であり、画素(x,y)がイントラブロックコピ
ーモードによって再構成される場合、isRec(x,y)が真である、項目L19に記
載の方法。
【0331】
L21.ブロックベクトル(BVx,BVy)は、isRec(x+BVx+W-1,
y+BVy)が偽であるかどうかに関わらず有効であり、画素(x,y)がイントラブロ
ックコピーモードによって再構成される場合、isRec(x,y)が真であり、Wは前
記現在の映像ブロックの幅である、項目L19に記載の方法。
【0332】
L22.ブロックベクトル(BVx,BVy)は、isRec(x+BVx,y+BV
y+H-1)が偽であるかどうかに関わらず有効であり、画素(x,y)がイントラブロ
ックコピーモードによって再構成される場合、isRec(x,y)が真であり、Hは前
記現在の映像ブロックの高さである、項目L19に記載の方法。
【0333】
L23.ブロックベクトル(BVx,BVy)は、isRec(x+BVx+W-1,
y+BVy+H-1)が偽であるかどうかに関わらず有効であり、画素(x,y)がイン
トラブロックコピーモードによって再構成される場合、isRec(x,y)が真であり
、Wは、前記現在の映像ブロックの幅を示し、Hは前記現在の映像ブロックの高さである
、項目L19に記載の方法。
【0334】
L24.現在の映像ブロックが符号化ツリー単位行の第1の符号化ツリー単位に含まれ
ているかどうかに関わらず、ブロックベクトル(BVx,BVy)が有効であると判定さ
れる、項目L1~L5のいずれか1つ以上に記載の方法。
【0335】
L25.(i)x+BVx>=0、(ii)y+BVy>=floor(y/Hctu
)、(iii)isRec(x+BVx+W-1,y+BVy+H-1)が真である、と
いう条件がすべて満たされたときに、ブロックベクトル(BVx,BVy)が有効である
と判定され、isRec(x,y)はサンプル(x,y)がイントラブロックコピーモー
ドで再構成されている場合に真であり、Wは現在のビデオブロックの幅を示し、Hは現在
のビデオブロックの高さを示し、floor(a)はa以下の最大整数である項目L1~
L5のいずれか1つ以上に記載の方法。
【0336】
L26.前記ブロックベクトルは、CTU行における第1のCTUに位置する、項目L
25に記載の方法。
【0337】
L27.バッファのサイズ、ブロックベクトル(BVx,BVy)、および左上の位置
(x,y)に基づいて、位置(A,B)の予測サンプルを決定する、項目L3に記載の方
法。
【0338】
L28.(A,B)の位置を有する予測サンプルは、((X+BVx)%Wbuf,(
Y+BVy)%Hbuf)に従って算出された位置を有する予測サンプルを含み、Wbu
およびHbufは、それぞれ、バッファの幅およびバッファの高さを表す、項目L27
に記載の方法。
【0339】
L29.前記変換は、イントラブロックコピーモードで実行される、項目L1~L28
のいずれか1つ以上に記載の方法。
【0340】
M1.視覚メディア処理方法であって、
視覚メディアデータの現在のピクチャの現在の映像ブロックと、この視覚メディアデー
タのビットストリーム表現との変換を行うことを含み、
前記変換は、現在の映像ブロックの予測ブロックを導出するために使用される参照サン
プルを備える、現在のピクチャからの参照領域に基づいて行われ、
定義されたサイズの仮想バッファは、前記予測ブロックを導出するための前記参照サン
プルの可用性を追跡するために使用される、視覚メディア処理方法。
【0341】
M2.前記仮想バッファは、仮想パイプラインデータユニット(VPDU)を使用して
維持され、前記仮想バッファの大きさはm*WVPDU×n*HVPDUであり、WVP
DUおよびHVPDUは、前記VPDUの幅および高さを示す、項目M1に記載の方法。
【0342】
M3.m=4であり、n=2である、項目M2に記載の方法。
【0343】
M4.mおよび/またはnが、現在の映像ブロックに関連付けられたピクチャの解像度
または現在の映像ブロックを含む符号化ツリーユニットのサイズに少なくとも部分的に基
づく、項目M2に記載の方法。
【0344】
M5.mおよび/またはが、予め定義された数量である、項目M2に記載の方法。
【0345】
M6.mおよび/またはが、ビットストリーム表現におけるフィールドとして信号通知
される、項目M2に記載の方法。
【0346】
M7.現在のビデオブロック内のサンプルが、仮想バッファ内の(x%(m*WVPD
),y%(n*HVPDU))にマッピングされ、ここで、現在のビデオブロック内の
サンプルは、ピクチャの左上隅に対する(x,y)に位置し、“x%y”は、y=x-y
*floor(x/y)と定義され、floor(a)はa以下の最大整数であり、W
PDUおよびHVPDUは、VPDUの幅および高さを示す、項目M1に記載の方法。
【0347】
M8.項目M1に記載の方法であって、
仮想バッファに記憶されたサンプルの可用性を追跡するためのアレイを使用することを
さらに含む、方法。
【0348】
M9.前記アレイは、前記バッファに記憶された1つ以上のサンプルがイントラブロッ
クコピーモードでの予測に使用されるかどうかを示すためのフラグを含む、項目M8に記
載の方法。
【0349】
M10.前記アレイは、サイズ3×2の1つ以上のVPDUに対応する、項目M8に記
載の方法。
【0350】
M11.前記アレイは、サイズ4×2の1つ以上のVPDUに対応する、項目M8に記
載の方法。
【0351】
M12.前記仮想バッファに記憶されたサンプルのサブセットに、予測に利用不可能と
してフラグを立てる、項目M1に記載の方法。
【0352】
M13.予測に利用不可能とフラグが立てられたサンプルの前記サブセットは、最近処
理されたVPDUの位置に基づく、項目M12に記載の方法。
【0353】
M14.前記サンプルは、VPDUの処理の開始時に利用不可能としてフラグが立てら
れる、項目M13に記載の方法。
【0354】
M15.yPrevVPDU%(n*HVPDU)が0である場合、位置(x,y)に
位置するサンプルのサブセットは利用不可能としてフラグが立てられ、ここで、xが第1
の所定の範囲内にあり、yが第2の所定の範囲内にあり、(xPrevVPDU,yPr
evVPDU)が、最近処理されたVPDUの符号化ツリーユニットの左上隅を表し、W
VPDUおよびHVPDUがVPDUの幅および高さを表す、項目M14に記載の方法。
【0355】
M16.前記第1の範囲は、[xPrevVPDU-2WVPDU+2mWVPDU
%mWVPDU,((xPrevVPDU-2*WVPDU+2*m*WVPDU)%(
m*WVPDU))-1+WVPDU]として表され、第2の範囲は、[yPrevVP
DU%(n*HVPDU),(yPrevVPDU%(n*HVPDU))-1+HVP
DU]として表される、項目M15に記載の方法。
【0356】
M17.前記第1の範囲は、[xPrevVPDU-2*WVPDU+2*m*WVP
DU)%mWVPDU,((xPrevVPDU-2*WVPDU+2*m*WVPDU
)%(m*WVPDU))-1+WVPDU]として表され、第2の範囲は、[yPre
vVPDU%(n*HVPDU),(yPrevVPDU%(n*HVPDU))-1+
VPDU]として表される、項目M15に記載の方法。
【0357】
M18.yPrevVPDU%(n*HVPDU)が0に等しくない場合、位置(x,
y)に位置するサンプルのサブセットは利用不可能としてフラグが立てられ、ここで、x
が第1の所定の範囲内にあり、yが第2の所定の範囲内にあり、(xPrevVPDU,
yPrevVPDU)が、最近処理されたVPDUの符号化ツリーユニットの左上隅を表
し、WVPDUおよびHVPDUがVPDUの幅および高さを表す、項目M14に記載の
方法。
【0358】
M19.第1の範囲が[xPrevVPDU-WVPDU+2*m*WVPDU)%(
m*WVPDU),((xPrevVPDU-WVPDU+2*m*WVPDU)%(m
*WVPDU))-1+WVPDU]として表され、第2の範囲が[yPrevVPDU
%(n*HVPDU),(yPrevVPDU%(n*HVPDU))-1+HVPDU
]として表される、項目M18に記載の方法。
【0359】
M20.第1の範囲は、[xPrevVPDU-WVPDU+2*m*WVPDU)%
mWVPDU,((xPrevVPDU-WVPDU+2*m*WVPDU)%(m*W
VPDU))-1+WVPDU]として表され、第2の範囲は、[yPrevVPDU%
(n*HVPDU),(yPrevVPDU%(n*HVPDU))-1+HVPDU
として表される、項目M18に記載の方法。
【0360】
M21.前記符号化ツリーがVPDUを含む場合、予測に利用不可能としてフラグが立
てられた前記サンプルのサブセットは、最近処理された符号化ツリーユニットの位置に基
づく、項目M12に記載の方法。
【0361】
M22.符号化ツリーユニットの処理の開始時に前記サンプルは利用不可能としてフラ
グが立てられる、項目M21に記載の方法。
【0362】
M23.項目M1からM22のいずれか1つに記載の方法であって、
現在の映像ブロックの左上の位置、現在の映像ブロックの左下の位置、および現在の映
像ブロックの右下位置に基づいて、現在の映像ブロックに対応するブロックベクトルの妥
当性を決定することを含み、前記決定は、現在の映像ブロックの右上位置の使用を除外す
ることをさらに含む、方法。
【0363】
M24.前記変換は、イントラブロックコピーモードで実行される、項目M1~M23
のいずれか1つ以上に記載の方法。
【0364】
N1.視覚メディア処理方法であって、
視覚メディアデータの現在のピクチャの映像ブロックと視覚メディアデータのビットス
トリーム表現との変換のために、現在の映像ブロックの予測ブロックを導出するために、
現在のピクチャからの参照サンプルを含むバッファ維持することを含み、
前記導出に利用できないとマークされたバッファ内の1つ以上の参照サンプルが、画素
値の範囲外の値を有している、方法。
【0365】
N2.前記画素値の範囲は、[0,1<<(bit_depth)-1]として表され
、ここで、bit_depthは正の整数である、項目N1に記載の方法。
【0366】
N3.bit_depthは、サンプルを処理するために使用される精度である、項目
N2に記載の方法。
【0367】
N4.前記方法は、
1つのバッファ内の1つのサンプルセットを、この1つのサンプルセットが利用不可能
であることを示す所定の値に初期化することさらに含む、条項N1に記載の方法。
【0368】
N5.前記所定の値は-1である、項目N4に記載の方法。
【0369】
N6.前記サンプルのセットの位置および/または前記サンプルのセットを所定の値に
初期化するかどうかは、現在の映像ブロックの位置、現在の映像ブロックのサイズ、現在
の映像ブロックを含むVPDUのサイズ、および/または現在の映像ブロックを含む符号
化ツリーユニットのサイズに基づく、項目N4~N5のいずれか1つ以上に記載の方法。
【0370】
N7.(xCb%vSize)が0に等しく、(yCb%vSize)が0である場合
、このサンプルのセットは利用不可能であるとマークされ、xCb、yCbは、前記サン
プルに対する前記現在の映像ブロックの位置を表し、vSize=min(ctbSiz
e,64)であり、ctbSizeは、前記符号化ツリーユニットの幅または高さを示す
、項目N6に記載の方法。
【0371】
N8.現在の映像ブロックのサイズがmin(ctbSize,64)未満である場合
、バッファ内のサンプルのセットに利用不可能とマークが付けられ、ctbSizeは、
前記符号化ツリーユニットの幅または高さを表す、項目N1に記載の方法。
【0372】
N9.前記複数のサンプルの位置は、VPDUのサイズに関連する、項目N8に記載の
方法。
【0373】
N10.前記サンプルのセットの位置は、現在の映像ブロックを含む前記符号化ツリー
ユニットのサイズに関連する、項目N8に記載の方法。
【0374】
N11.前記バッファにおけるサンプルのセットは、位置が(x%wIbcBuf,y
%hIbcBuf)で表され、x=xV,・・・,xV+ctbSize-1およびy=
yV,・・・,yV+ctbSize-1,であり、xV,yVは、ピクチャの左上の位
置に対するVPDUの左上の位置を表し、ctbSizeは、現在の映像ブロックを含む
符号化ツリーユニットのサイズを表し、wIbcBufおよびhIbcBufは、バッフ
ァの幅およびバッファの高さを表す、項目N4の方法。
【0375】
N12.バッファ内のサンプルのセットが-1に初期化される、項目N11に記載の方
法。
【0376】
N13.前記サンプルのセットは、映像ユニットの復号化の開始時に初期化される、項
目N4に記載の方法。
【0377】
N14.前記変換は、イントラブロックコピーモードで実行される、項目N1~N13
のいずれか1つ以上に記載の方法。
【0378】
O1.視覚メディア処理方法であって、
現在の映像ブロックの予測ブロックを導出するために、現在のピクチャからの参照サン
プルを含むバッファを使用して、視覚メディアデータの現在のピクチャの映像ブロックと
視覚メディアデータのビットストリーム表現との変換を行うことを含み、
前記変換は、ビットストリーム表現が規則に準拠するために、バッファにおける参照サ
ンプルがビットストリーム適合性の制約を満たすものであることを規定する規則に基づく
、方法。
【0379】
O2.ビットストリーム適合性の制約は、(1)バッファにおける参照サンプルの値お
よび/または(2)バッファにおけるサンプルの可用性情報のうちの少なくとも1つに基
づく、項目O1に記載の方法。
【0380】
O3.ビットストリーム適合性の制約は、バッファ内のサンプルが1つの画素範囲外の
値を有する場合、ビットストリーム表現が不適合であることを指定する、項目O1~O2
のいずれか1つ以上に記載の方法。
【0381】
O4.範囲が[K0,K1]であり、K0が0に設定され、K1が(1<<BitDe
pth-1)に設定され、ここで、BitDepthが予測サンプルの精度を表す、項目
O3に記載の方法。
【0382】
O5.前記ビットストリーム適合性の制約は、前記バッファにおける前記サンプルの可
用性情報が、前記サンプルが現在の映像ブロックに使用可能でないことを示す場合、前記
ビットストリーム表現が不適合であることを規定する、項目O1~O2のいずれか1つ以
上に記載の方法。
【0383】
O6.前記サンプルが輝度サンプルであり、バッファ内のサンプルの可用性情報が、こ
のサンプルが現在の映像ブロックに利用不可能であり、現在の映像ブロックに単一のツリ
ー分割が使用されていることを示す場合、前記ビットストリーム適合性の制約は、ビット
ストリーム表現が不適合であることを規定する、項目O1~O2のいずれか1つ以上に記
載の方法。
【0384】
O7.項目O1からO6のいずれか1つに記載の方法であって、
バッファ内のサンプルの値に従って、サンプルの可用性情報に印を付けることをさらに
含む、方法。
【0385】
O8.サンプルの値が[K0,K1]として表される区間内にある場合、サンプルの可
用性情報に、利用可能としてマークを付ける、項目O7に記載の方法。
【0386】
O9.K0が0に設定され、K1が(1<<BitDepth-1)に設定される、項
目O8に記載の方法であって、BitDepthは、予測サンプルの精度を表す。
【0387】
O10.ビットストリーム適合性の制約は、現在の映像ブロックに関連付けられた符号
化ユニットの分割タイプおよびツリータイプにさらに基づく、項目O1~O8のいずれか
1つ以上に記載の方法。
【0388】
O11.パーティショニングタイプがデュアルツリーであり、ツリータイプがシングル
ツリーである場合、ビットストリーム適合性の制約は、サンプルのすべての色成分が利用
不可能であるとマークされているかどうかをチェックすることを規定する、項目O10に
記載の方法。
【0389】
O12.パーティショニングタイプがデュアルツリーであり、ツリータイプがデュアル
ツリーである場合、ビットストリーム適合性の制約は、サンプルの彩度成分が利用不可能
であるとマークされているかどうかをチェックすることを規定しない、項目O10に記載
の方法。
【0390】
O13.前記変換は、イントラブロックコピーモードで行われる、項目O1~O12の
いずれか1つ以上に記載の方法。
【0391】
XX.前記変換は、前記現在の映像ブロックから前記ビットストリーム表現を生成する
ことを含む、項目L1~XXのいずれかに記載の方法。
【0392】
XX.前記変換は、前記ビットストリーム表現から前記現在の映像ブロックの画素値を
生成することを含む、項目L1~XX項のいずれかに記載の方法。
【0393】
XX.項目L1~XXの1項以上に記載の方法を実装するように構成された処理装置を
備える映像エンコーダ装置。
【0394】
XX.項目L1~XXの1項以上に記載の方法を実装するように構成された処理装置を
備える、映像デコーダ装置。
【0395】
XX.コードが記憶されたコンピュータ可読媒体であって、前記コードは項目L1~X
Xのいずれか又は複数項に記載の方法を実装するための処理装置が実行可能な命令を実施
する、コンピュータ可読媒体。
【0396】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、また
は映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から
対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現
在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、
ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよ
い。例えば、1つのマクロブロックは、変換および符号化された誤り残差値の観点から、
且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符
号化されてもよい。
【0397】
以上、説明の目的で本開示の技術の特定の実施形態を説明したが、本発明の範囲から逸
脱することなく様々な修正が可能であることは、理解されるであろう。従って、本開示の
技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0398】
本特許明細書に記載された主題および機能操作の実装形態は、本明細書に開示された構
造およびその構造的等価物を含め、様々なシステム、デジタル電子回路、またはコンピュ
ータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、または
それらの1つ以上の組み合わせで実施してもよい。本明細書に記載された主題の実装形態
は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実行さ
れるため、又はデータ処理装置の操作を制御するために、有形で非可搬性のコンピュータ
可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実
装することができる。このコンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基
板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、又はこれらの1つ以上
の組み合わせであってもよい。「データ処理ユニット」又は「データ処理装置」という用
語は、例えば、プログラマブル処理装置、コンピュータ、又は複数の処理装置若しくはコ
ンピュータを含め、データを処理するためのすべての装置、デバイス、および機械を含む
。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコー
ド、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム
、オペレーティングシステム、又はこれらの1つ以上の組み合わせを構成するコードを含
むことができる。
【0399】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション
、スクリプト、又はコードとも呼ばれる)は、コンパイルされた言語又は解釈された言語
を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンド
アロンプログラムとして、又はコンピューティング環境で使用するのに適したモジュール
、コンポーネント、サブルーチン、又は他のユニットとして含む任意の形式で展開するこ
とができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに
対応するとは限らない。プログラムは、他のプログラム又はデータを保持するファイルの
一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されて
いてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の
調整ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部を格
納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサ
イトに位置する1つのコンピュータ、又は複数のサイトに分散され通信ネットワークによ
って相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0400】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生
成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する
1つ以上のプログラマブル処理装置によって行うことができる。処理及びロジックフロー
はまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲート
アレイ)又はASIC(特定用途向け集積回路)によって行うことができ、装置はまた、
特別目的のロジック回路として実装することができる。
【0401】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用及び専用マイクロ処
理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を
含む。一般的に、処理装置は、読み出し専用メモリ又はランダムアクセスメモリ又はその
両方から命令及びデータを受信する。コンピュータの本質的な要素は、命令を実行するた
めのプロセッサと、命令およびデータを記憶するための1つ以上の記憶装置とである。一
般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例え
ば、磁気、光磁気ディスク、又は光ディスクを含んでもよく、又はこれらの大容量記憶デ
バイスからデータを受信するか、又はこれらにデータを転送するように動作可能に結合さ
れてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は
、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPR
OM、EEPROM、フラッシュメモリデバイス等の半導体メモリデバイスを含む。処理
装置及びメモリは、特定用途のロジック回路によって補完されてもよく、又は特定用途の
ロジック回路に組み込まれてもよい。
【0402】
本明細書は、図面とともに、例示のみを目的とするものであり、例示的とは例を意味す
ることが意図される。本明細書において、「または」の使用は、文脈からそうでないこと
が明確に示されていない限り、「および/または」を含むことが意図される。
【0403】
本特許明細書は多くの詳細を含むが、これらは、任意の発明の範囲又は特許請求の範囲
を限定するものと解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有
であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態の文
脈で説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に
、1つの例の文脈で説明された様々な特徴は、複数の実施形態において別個に又は任意の
適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作
用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張され
た組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されること
ができ、主張された組み合わせは、サブ組み合わせまたはサブ組み合わせのバリエーショ
ンに向けられてもよい。
【0404】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成
するために、このような動作が示された特定の順番で又は連続した順番で実行されること
、又は示された全ての操作が実行されることを必要とするものと理解されるべきではない
。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、
全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0405】
いくつかの実装形態及び例のみが記載されており、この特許文献に記載され図示されて
いる内容に基づいて、他の実施形態、拡張及び変形が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
【手続補正書】
【提出日】2023-10-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
映像の現在のピクチャの現在の映像ブロックと前記映像のビットストリームとの間の変換のために、予測モードが前記現在の映像ブロックに適用されることを決定することと、
前記現在の映像ブロックについて、前記現在のピクチャにおける前記現在の映像ブロックの同じ映像領域のサンプル値のブロックから導出される参照サンプルを含むバッファを維持することと、
前記現在の映像ブロックについて、前記決定に基づいて予測サンプルを生成することと、
前記現在の映像ブロックと前記ビットストリームとの間の前記変換を行うことと、を含み、
前記予測モードにおいて、前記バッファ内のブロックベクトルによって決定される前記参照サンプルは、前記現在の映像ブロックの予測サンプルの導出に使用され、
前記導出に利用不可とマークされている前記バッファにおける特定の参照ブロックが、画素値範囲外の値を有する、
映像データを処理する方法。
【請求項2】
利用不可とマークされた前記特定の参照ブロックにおける参照サンプルの値が、前記参照サンプルの利用不可を示す所定の値に設定される、
請求項1に記載の方法。
【請求項3】
前記所定の値は-1である、請求項2に記載の方法。
【請求項4】
利用不可とマークされた前記特定の参照ブロックの位置およびサイズは、前記現在の映像ブロックのサイズ、仮想ユニットのサイズ、または前記現在の映像ブロックを含むコーディングツリーブロックのサイズのうちの1つ以上に基づいて決定される、
請求項2または3に記載の方法。
【請求項5】
前記利用不可とマークされた前記特定の参照ブロックの前記位置は、座標(x0,y0)に基づいて決定され、
(x0%Vsize)は0であり、(y0%Vsize)は0であり、
%は余り演算を表し、
Vsizeは前記仮想ユニットの前記サイズを表し、Vsize=min(ctbSize,64)とし、
ctbSizeは、前記コーディングツリーブロックの幅または高さを表す、
請求項4に記載の方法。
【請求項6】
前記現在の映像ブロックの前記サイズが前記仮想ユニットの前記サイズより小さい場合、利用不可とマークされた前記特定の参照ブロックの前記サイズは、前記仮想ユニットの前記サイズに基づいて決定される、
請求項4または5に記載の方法。
【請求項7】
前記現在の映像ブロックの前記サイズが前記仮想ユニットの前記サイズより大きい場合、利用不可とマークされた前記特定の参照ブロックの前記サイズは、前記現在の映像ブロックの前記サイズに基づいて決定される、請求項4または5に記載の方法。
【請求項8】
前記バッファは、ピクチャまたはスライスをコーディングする前にリセットされる、
請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記ビットストリームによって満たされるビットストリーム適合性の制約は、前記バッファにおける前記ブロックベクトルによって決定された前記参照サンプルが、前記参照サンプルの利用不可を示す所定の値に等しい値を有していないことを含む、
請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記画素値の範囲は、[0,1<<(bit_depth)-1]として表され、bit_depthは正の整数である、
請求項1~9のいずれか1項に記載の方法。
【請求項11】
bit_depthは、前記参照サンプルを処理するために使用される精度である、
請求項10に記載の方法。
【請求項12】
前記変換は、前記現在の映像ブロックを前記ビットストリームに符号化することを含む、
請求項1~11のいずれか1項に記載の方法。
【請求項13】
前記変換は、前記ビットストリームから前記現在の映像ブロックを復号することを含む、
請求項1~11のいずれか1項に記載の方法。
【請求項14】
プロセッサと命令を備える非一時的メモリとを含む、映像データを処理するための装置であって、前記プロセッサによる実行時に前記命令は前記プロセッサに、
映像の現在のピクチャの現在の映像ブロックと前記映像のビットストリームとの間の変換のために、予測モードが前記現在の映像ブロックに適用されることを決定することと、
前記現在の映像ブロックについて、前記現在のピクチャにおける前記現在の映像ブロックの同じ映像領域のサンプル値のブロックから導出される参照サンプルを含むバッファを維持することと、
前記現在の映像ブロックについて、前記決定に基づいて予測サンプルを生成することと、
前記現在の映像ブロックと前記ビットストリームとの間の前記変換を行うことと、を行わせ、
前記予測モードにおいて、前記バッファ内のブロックベクトルによって決定される前記参照サンプルは、前記現在の映像ブロックの予測サンプルの導出に使用され、
前記導出に利用不可とマークされている前記バッファにおける特定の参照ブロックが、画素値範囲外の値を有する、装置。
【請求項15】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令はプロセッサに、
映像の現在のピクチャの現在の映像ブロックと前記映像のビットストリームとの間の変換のために、予測モードが前記現在の映像ブロックに適用されることを決定することと、
前記現在の映像ブロックについて、前記現在のピクチャにおける前記現在の映像ブロックの同じ映像領域のサンプル値のブロックから導出される参照サンプルを含むバッファを維持することと、
前記現在の映像ブロックについて、前記決定に基づいて予測サンプルを生成することと、
前記現在の映像ブロックと前記ビットストリームとの間の前記変換を行うことと、を行わせ、
前記予測モードにおいて、前記バッファ内のブロックベクトルによって決定される前記参照サンプルは、前記現在の映像ブロックの予測サンプルの導出に使用され、
前記導出に利用不可とマークされている前記バッファにおける特定の参照ブロックが、画素値範囲外の値を有する、
非一時的なコンピュータ可読記憶媒体。
【請求項16】
映像処理装置によって実行される方法によって生成される映像のビットストリームを記憶する、非一時的なコンピュータ可読記録媒体であって、前記方法が、
予測モードが映像の現在のピクチャの現在の映像ブロックに適用されることを決定することと、
前記現在の映像ブロックについて、前記現在のピクチャにおける前記現在の映像ブロックの同じ映像領域のサンプル値のブロックから導出される参照サンプルを含むバッファを維持することと、
前記現在の映像ブロックについて、前記決定に基づいて予測サンプルを生成することと、
前記予測サンプルに基づいて前記ビットストリームを生成することと、を含み、
前記予測モードにおいて、前記バッファ内のブロックベクトルによって決定される前記参照サンプルは、前記現在の映像ブロックの予測サンプルの導出に使用され、
前記導出に利用不可とマークされている前記バッファにおける特定の参照ブロックが、画素値範囲外の値を有する、
非一時的なコンピュータ可読記録媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正の内容】
【0001】
関連出願の相互参照
本出願は、日本国特願2022-501042号の分割出願であり、これは2020年7月9日出願の国際特許出願PCT/CN2020/100992号の国内段階であり、2019年7月10日出願の国際特許出願PCT/CN2019/095504号の優先権及び利益を主張する。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【外国語明細書】