JP2024001181A - 映像信号の符号化/復号方法およびその装置 - Google Patents

映像信号の符号化/復号方法およびその装置 Download PDF

Info

Publication number
JP2024001181A
JP2024001181A JP2023173807A JP2023173807A JP2024001181A JP 2024001181 A JP2024001181 A JP 2024001181A JP 2023173807 A JP2023173807 A JP 2023173807A JP 2023173807 A JP2023173807 A JP 2023173807A JP 2024001181 A JP2024001181 A JP 2024001181A
Authority
JP
Japan
Prior art keywords
tile
slice
block
motion information
current block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023173807A
Other languages
English (en)
Inventor
ベ ケウン リー,
Bae Keun Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2024001181A publication Critical patent/JP2024001181A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】ピクチャをタイルインデックスやスライスとの差分情報に基づいて複数のタイル又はスライスに分割することで、符号化/復号効率を向上させる映像信号の符号化/復号方法及びその装置を提供する。【解決手段】映像信号の復号方法は、現在ピクチャを複数のタイルに分割することと、スライスタイプを示し、矩形状スライスを適用するか否かを示す分割情報を復号することと、現在ピクチャ内のスライスの個数を決定することと、タイルを用いて、スライスを画定することと、を含む。【選択図】図33

Description

本発明は、映像信号の符号化/復号方法およびその装置に関する。
ディスプレイパネルが次第に大型化する傾向に伴い、次第により高い画質のビデオサービスが求められている。高画質ビデオサービスの最大の問題は、データ量が大きく増加することであり、このような問題を解決するために、ビデオ圧縮率を向上させるための研究が活発に行われている。代表的な例として、2009年に、MPEG(Motion Picture Experts Group)とITU-T(International Telecommunication Union-Telecommunication)傘下のVCEG(Video Coding Experts Group)では、JCT-VC(Joint Collaborative Team on Video Coding)を結成した。JCT-VCは、H.264/AVCに比べて約2倍の圧縮性能を有するビデオ圧縮標準であるHEVC(High Efficiency Video Coding)を提案し、2013年1月25日付で標準として承認された。高画質ビデオサービスの急激な発展に伴い、HEVCの性能も次第にその限界を示している。
本発明は、ビデオ信号を符号化/復号するのに際し、ピクチャを複数のタイルまたは複数のスライスに分割する方法および方法を行うための装置を提供することを目的とする。
本発明は、ピクチャを複数のタイルに分割するにの際し、タイルインデックスに基づいてスライスを区切る方法および方法を行うための装置を提供することを目的とする。
本発明は、ピクチャを複数のスライスに分割するのに際し、前のスライスとの差分情報に基づいてスライスを区切る方法および方法を行うための装置を提供することを目的とする。
本発明が解決しようとする技術的課題は、以上で言及した技術的課題に制限されず、言及していない他の技術的課題は、以下の記載から、本発明が属する技術分野において通常の知識を有する者が明確に理解することができる。
本発明によるビデオ信号の復号方法は、現在ピクチャを複数のタイルに分割することと、スライスタイプを示す分割情報を復号することであって、分割情報は矩形状スライスを適用するか否かを示す、復号することと、現在ピクチャ内のスライスの個数を決定することと、タイルを用いて、スライスを画定することと、を含む場合がある。この場合、スライスを画定することは、タイルインデックス差分情報が符号化されているか否かを示す差分情報存在フラグに基づいて行われ、現在ピクチャが含むスライスの個数に基づいて、差分情報存在フラグをパーシングするか否かが判定される場合がある。
本発明によるビデオ信号の符号化方法は、現在ピクチャを複数のタイルに分割することと、矩形状スライスを適用するか否かを判定することと、現在ピクチャ内のスライスの個数を決定することと、タイルを用いて、スライスを画定することとを含む場合がある。この場合、スライスを画定することは、タイルインデックス差分情報が符号化されているか否かを示す差分情報存在フラグを符号化するか否かを判定することを含み、現在ピクチャが含むスライスの個数に基づいて、差分情報存在フラグを符号化するか否かが判定される場合がある。
本発明によるビデオ信号の復号方法において、差分情報存在フラグは、ビットストリームに第1スライスが含む第1タイルと、第2スライスが含む第2タイルとのインデックス差分値を示す差分情報が存在するか否かを示す場合がある。
本発明によるビデオ信号の復号方法において、スライスの個数が2個である場合、差分情報存在フラグのパーシングが省略され、その値を0と見なす場合がある。
本発明によるビデオ信号の復号方法において、スライスの個数が2個である場合、第1スライスに対しては幅情報または高さ情報がパーシングされ、第2スライスに対しては幅情報または高さ情報がパーシングされない場合がある。
本発明によるビデオ信号の復号方法において、現在ピクチャが2個以上のスライスを含み、スライス内の左上端タイルが現在ピクチャ内の最右側タイル列に含まれる場合、幅情報のパーシングが省略される場合がある。
本発明によるビデオ信号の復号方法において、現在ピクチャが2個以上のスライスを含み、スライス内の左上端タイルが現在ピクチャ内の最下端タイル行に含まれる場合、高さ情報のパーシングが省略される場合がある。
本発明について上記で簡単にまとめた特徴は、後述する本発明の詳細な説明の例示的な態様であって、本発明の範囲を制限するものではない。
本発明によると、ピクチャを複数のタイルまたはスライスに分割することで、符号化/復号効率を向上させる場合がある。
本発明によると、タイルインデックスに基づいてスライスを区切ることで、符号化/復号効率を向上させる場合がある。
本発明によると、前のスライスとの差分情報に基づいてスライスを区切ることで、符号化/復号効率を向上させる場合がある。
本発明で得られる効果は、以上で言及した効果に制限されず、言及していない他の効果は、以下の記載から、本発明が属する技術分野において通常の知識を有する者が明確に理解する場合がある。
本発明の一実施形態による映像符号化器(エンコーダ)のブロック図である。
本発明の一実施形態による映像復号器(デコーダ)のブロック図である。
本発明の一実施形態による基本コーディングツリーユニットを図示した図である。
コーディングブロックの様々な分割形状を示す図である。
コーディングツリーユニットの分割態様を例示した図である。
本発明の一実施形態によるインタ予測方法のフローチャートである。
オブジェクトの非線形動きを例示した図である。
本発明の一実施形態によるアフィンモーションに基づくインタ予測方法のフローチャートである。
アフィンモーションモデル別のアフィンシードベクトルを例示した図である。
4パラメータモーションモデル下で、サブブロックのアフィンベクトルを例示した図である。
マージモード下で、現在ブロックの動き情報を導出する過程のフローチャートである。
マージ候補を導出するために使用される候補ブロックを例示した図である。
モーション情報テーブルのアップデート態様を説明するための図である。
モーション情報テーブルのアップデート態様を示す図である。
予め格納されたモーション情報候補のインデックスが更新される例を示す図である。
マージ候補のうち一部に対してのみ重複性検査が行われる例を図示した図である。
特定のマージ候補との重複性検査が省略される例を示す図である。
現在ブロックと同一のマージ処理領域に含まれた候補ブロックがマージ候補として利用不可能なものに設定される例を示す図である。
現在ブロックがマージ処理領域に含まれている場合、現在ブロックに対するマージ候補を導出する例を示す図である。
臨時モーション情報テーブルを示す図である。
モーション情報テーブルと臨時モーション情報テーブルを併合する例を示す図である。
本発明の一実施形態によるイントラ予測方法のフローチャートである。
イントラ予測モードを示す図である。
参照サンプルを一列に配列する一次元配列の例示を示す図である。 参照サンプルを一列に配列する一次元配列の例示を示す図である。
方向性イントラ予測モードがx軸と平行な直線と形成する角度を例示した図である。
現在ブロックが非正方形状である場合、予測サンプルが得られる態様を示す図である。
ワイドアングルイントラ予測モードを示す図である。
サブブロック別に変換スキップが実行されるか否かが判定される例を示す図である。
サブブロックが同一の変換タイプを使用する例を示す図である。
ブロック強度を決定する過程を示すフローチャートである。
予め定義されたフィルタ候補を示す。
本発明の一実施形態によるピクチャ分割方法を示す図である。
ピクチャが複数のタイルに分割された例を示す。
ブリックの生成態様を説明するための図である。
ラスター順序に基づいてスライスを画定した例を示す図である。 ラスター順序に基づいてスライスを画定した例を示す図である。
矩形状のスライスのみが許容される例を示す図である。
ピクチャが2個のスライスで構成された場合の例を示す図である。
以下、図面を参照して、本発明の実施形態について詳細に説明する。
映像の符号化および復号は、ブロック単位で行われる。一例として、コーディングブロック、変換ブロック、または予測ブロックに対して、変換、量子化、予測、インループフィルタリング、または復元などの符号化/復号処理が行われる場合がある。
以下、符号化/復号の対象であるブロックを「現在ブロック」と称する。一例として、現在ブロックは、現在の符号化/復号処理ステップに応じて、コーディングブロック、変換ブロック、または予測ブロックを示す場合がある。
なお、本明細書で使用される用語「ユニット」は、特定の符号化/復号プロセスを行うための基本単位を示し、「ブロック」は、所定サイズのサンプルアレイを示すものと理解し得る。他に断らない限り、「ブロック」と「ユニット」は、同等な意味で使用される場合がある。一例として、後述する実施形態において、コーディングブロックとコーディングユニットは、互いに同等な意味を有するものと理解し得る。
図1は、本発明の一実施形態による映像符号化器(エンコーダ)のブロック図である。
図1を参照すると、映像符号化装置100は、ピクチャ分割部110と、予測部120、125と、変換部130と、量子化部135と、再整列部160と、エントロピー符号化部165と、逆量子化部140と、逆変換部145と、フィルタ部150と、メモリ155とを含む場合がある。
図1に示れている各構成要素は、映像符号化装置で互いに異なる特徴的な機能を示すために独立的に図示したものであり、各構成要素が分離されたハードウェアもしくは一つのソフトウェア構成単位からなることを意味しない。すなわち、各構成要素は、説明の便宜上、それぞれの構成要素として並べて含むものであって、各構成要素のうち少なくとも二つの構成要素が組み合わされて一つの構成要素になるか、一つの構成要素が複数個の構成要素に分けられて機能を果たす場合があり、このような各構成要素の統合された実施形態および分離された実施形態も本発明の本質から逸脱しない限り、本発明の権利範囲に含まれる。
また、一部の構成要素は、本発明で本質的な機能を果たす必須な構成要素ではなく、単に性能を向上させるための選択的構成要素であり得る。本発明は、単に性能向上のために使用される構成要素以外の本発明の本質を実現するために必須な構成要素のみを含んで実現される場合があり、単に性能向上のために使用される選択的構成要素以外の必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
ピクチャ分割部110は、入力されたピクチャを少なくとも一つの処理単位に分割する場合がある。この場合、処理単位は、予測単位(Prediction Unit:PU)であってもよく、変換単位(Transform Unit:TU)であってもよく、符号化単位(Coding Unit:CU)であってもよい。ピクチャ分割部110では、一つのピクチャに対して複数の符号化単位、予測単位および変換単位の組み合わせに分割し、所定の基準(例えば、費用関数)に基づいて、一つの符号化単位、予測単位および変換単位の組み合わせを選択し、ピクチャを符号化する場合がある。
例えば、一つのピクチャは、複数個の符号化単位に分割される場合がある。ピクチャで符号化単位を分割するためには、四分木構造(Quad Tree Structure)などの再帰的なツリー構造を使用する場合があり、一つの映像または最大サイズの符号化単位(largest coding unit)をルートとして他の符号化単位に分割される符号化ユニットは、分割された符号化単位の個数だけの子ノードを有して分割される場合がある。所定の制限によってこれ以上分割されない符号化単位は、リーフノードになる。すなわち、一つのコーディングユニットに対して正方形分割のみが可能であると仮定する場合、一つの符号化単位は、最大4個の異なる符号化単位に分割される場合がある。
以下、本発明の実施形態では、符号化単位は、符号化を行う単位の意味で使用することもでき、復号を行う単位の意味で使用することもできる。
予測単位は、一つの符号化単位内で同じサイズの少なくとも一つの正方形または長方形などの形状を有して分割されたものであってもよく、一つの符号化単位内で分割された予測単位のいずれか一つの予測単位が、他の一つの予測単位と相違する形状および/またはサイズを有するように分割されたものであってもよい。
符号化単位に基づいてイントラ予測を行う予測単位を生成する時に、最小符号化単位ではない場合、複数の予測単位N×Nに分割せず、イントラ予測を行う場合がある。
予測部120、125は、インタ予測を行うインタ予測部120と、イントラ予測を行うイントラ予測部125とを含む場合がある。予測単位に対してインタ予測を使用するかまたはイントラ予測を行うかを判定し、各予測方法による具体的な情報(例えば、イントラ予測モード、モーションベクトル、参照ピクチャなど)を決定する場合がある。この場合、予測が行われる処理単位と予測方法および具体的な内容が定められる処理単位は、異なる場合がある。例えば、予測の方法と予測モードなどは予測単位で決定され、予測の実行は、変換単位で行われることもできる。生成された予測ブロックと原本ブロックとの残差値(残差ブロック)は、変換部130に入力される場合がある。また、予測のために使用した予測モード情報、モーションベクトル情報などは、残差値とともにエントロピー符号化部165で符号化されて復号器に伝達される場合がある。特定の符号化モードを使用する場合、予測部120、125を介して予測ブロックを生成せず、原本ブロックをそのまま符号化して復号部に送信することも可能である。
インタ予測部120は、現在ピクチャの前のピクチャまたは後のピクチャのうち少なくとも一つのピクチャの情報に基づいて予測単位を予測することもでき、場合によっては、現在ピクチャ内の符号化が完了した一部領域の情報に基づいて予測単位を予測することもできる。インタ予測部120は、参照ピクチャ補間部と、モーション予測部と、動き補償部とを含む場合がある。
参照ピクチャ補間部では、メモリ155から参照ピクチャ情報の提供を受け、参照ピクチャで整数画素以下の画素情報を生成する場合がある。輝度画素の場合、1/4画素単位で整数画素以下の画素情報を生成するために、異なるフィルタ係数を有するDCTベースの8タップ補間フィルタ(DCT-based Interpolation Filter)が使用される場合がある。色差信号の場合、1/8画素単位で整数画素以下の画素情報を生成するために、異なるフィルタ係数を有するDCTベースの4タップ補間フィルタ(DCT-based Interpolation Filter)が使用される場合がある。
モーション予測部は、参照ピクチャ補間部によって補間された参照ピクチャに基づいてモーション予測を行う場合がある。モーションベクトルを算出するための方法として、FBMA(Full search-based Block Matching Algorithm)、TSS(Three Step Search)、NTS(New Three-Step Search Algorithm)などの様々な方法が使用される場合がある。モーションベクトルは、補間された画素に基づいて、1/2または1/4画素単位のモーションベクトル値を有する場合がある。モーション予測部では、異なるモーション予測方法により現在予測単位を予測する場合がある。モーション予測方法として、スキップ(Skip)方法、マージ(Merge)方法、AMVP(Advanced Motion Vector Prediction)方法、イントラブロックコピー(Intra Block Copy)方法などの様々な方法が使用される場合がある。
イントラ予測部125は、現在ピクチャ内の画素情報である現在ブロック周辺の参照ピクセル情報に基づいて予測単位を生成する場合がある。現在予測単位の周辺ブロックがインタ予測を行ったブロックであるため、参照ピクセルがインタ予測を行ったピクセルである場合、インタ予測を行ったブロックに含まれる参照ピクセルを周辺のイントラ予測を行ったブロックの参照ピクセル情報の代わりに使用する場合がある。すなわち、参照ピクセルが可用でない場合、可用でない参照ピクセル情報を可用な参照ピクセルのうち少なくとも一つの参照ピクセルの代わりに使用する場合がある。
イントラ予測で予測モードは、参照ピクセル情報を予測方向に応じて使用する方向性予測モードと、予測を行う時に方向性情報を使用しない非方向性モードを有する場合がある。輝度情報を予測するためのモードと色差情報を予測するためのモードが相違する場合があり、色差情報を予測するために、輝度情報を予測するために使用されたイントラ予測モード情報または予測された輝度信号情報を活用する場合がある。
イントラ予測を行う時に、予測単位のサイズと変換単位のサイズが同一である場合、予測単位の左側に存在するピクセル、左側上端に存在するピクセル、上端に存在するピクセルに基づいて、予測単位に対するイントラ予測を行う場合がある。しかし、イントラ予測を行う時に、予測単位のサイズと変換単位のサイズが相違する場合、変換単位に基づく参照ピクセルを用いてイントラ予測を行う場合がある。また、最小符号化単位に対してのみN×N分割を使用するイントラ予測を使用する場合がある。
イントラ予測方法は、予測モードによって、参照画素にAIS(Adaptive Intra Smoothing)フィルタを適用した後、予測ブロックを生成する場合がある。参照画素に適用されるAISフィルタの種類は、相違する場合がある。イントラ予測方法を行うために、現在予測単位のイントラ予測モードは、現在予測単位の周辺に存在する予測単位のイントラ予測モードから予測する場合がある。周辺予測単位から予測されたモード情報を用いて現在予測単位の予測モードを予測する場合、現在予測単位と周辺予測単位のイントラ予測モードが同一であると、所定のフラグ情報を用いて、現在予測単位と周辺予測単位の予測モードが同一であるという情報を送信する場合があり、仮に、現在予測単位と周辺予測単位の予測モードが相違すると、エントロピー符号化を行って現在ブロックの予測モード情報を符号化する場合がある。
また、予測部120、125で生成された予測単位に基づいて予測を行った予測単位と予測単位の原本ブロックとの差値である残差値(Residual)情報を含む残差ブロックが生成される場合がある。生成された残差ブロックは、変換部130に入力される場合がある。
変換部130では、原本ブロックと予測部120、125を介して生成された予測単位の残差値(residual)情報を含む残差ブロックをDCT(Discrete Cosine Transform)またはDST(Discrete Sine Transform)などの変換方法を使用して変換させる場合がある。ここで、DCT変換コアは、DCT2またはDCT8のうち少なくとも一つを含み、DST変換コアは、DST7を含む。残差ブロックを変換するためにDCTを適用するかまたはDSTを適用するかは、残差ブロックを生成するために使用された予測単位のイントラ予測モード情報に基づいて判定する場合がある。残差ブロックに対する変換をスキップすることもできる。残差ブロックに対する変換をスキップするか否かを示すフラグを符号化する場合がある。変換スキップは、サイズが閾値以下である残差ブロック、ルーマ成分または4:4:4のフォーマット下でのクロマ成分に対して許容される場合がある。
量子化部135は、変換部130で周波数領域に変換された値を量子化する場合がある。ブロックによってまたは映像の重要度によって量子化係数は変わる場合がある。量子化部135で算出された値は、逆量子化部140と再整列部160に提供される場合がある。
再整列部160は、量子化した残差値に対して係数値の再整列を行う場合がある。
再整列部160は、係数スキャニング(Coefficient Scanning)方法により、二次元のブロック形状係数を一次元のベクトル形状に変更する場合がある。例えば、再整列部160では、ジグザグスキャン(Zig-Zag Scan)方法を用いて、DC係数から高周波数領域の係数までスキャンし、一次元ベクトル形状に変更させる場合がある。変換単位のサイズおよびイントラ予測モードによってジグザグスキャンの代わりに、二次元のブロック形状係数を列方向にスキャンする垂直スキャン、二次元のブロック形状係数を行方向にスキャンする水平スキャンが使用されることもできる。すなわち、変換単位のサイズおよびイントラ予測モードに応じて、ジグザグスキャン、垂直方向スキャンおよび水平方向スキャンのいずれかのスキャン方法が使用されるかを判定する場合がある。
エントロピー符号化部165は、再整列部160によって算出された値に基づいてエントロピー符号化を行う場合がある。エントロピー符号化は、例えば、指数ゴロム(Exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの様々な符号化方法を使用する場合がある。
エントロピー符号化部165は、再整列部160および予測部120、125から符号化単位の残差値係数情報およびブロックタイプ情報、予測モード情報、分割単位情報、予測単位情報および伝送単位情報、モーションベクトル情報、参照フレーム情報、ブロックの補間情報、フィルタリング情報など様々な情報を符号化する場合がある。
エントロピー符号化部165では、再整列部160から入力された符号化単位の係数値をエントロピー符号化する場合がある。
逆量子化部140および逆変換部145では、量子化部135で量子化された値を逆量子化し、変換部130で変換された値を逆変換する。逆量子化部140および逆変換部145で生成された残差値(Residual)は、予測部120、125に含まれた動き推定部、動き補償部およびイントラ予測部により予測された予測単位と合算されて復元ブロック(Reconstructed Block)を生成する場合がある。
フィルタ部150は、デブロッキングフィルタ、オフセット補正部、ALF(Adaptive Loop Filter)のうち少なくとも一つを含む場合がある。
デブロッキングフィルタは、復元されたピクチャでブロック間の境界によって生じたブロック歪みを除去する場合がある。デブロッキングを行うか否かを判断するために、ブロックに含まれたいくつかの列または行に含まれたピクセルに基づいて、現在ブロックにデブロッキングフィルタを適用するか否かを判断する場合がある。ブロックにデブロッキングフィルタを適用する場合、必要なデブロッキングフィルタリング強度に応じて、強いフィルタ(Strong Filter)または弱いフィルタ(Weak Filter)を適用する場合がある。また、デブロッキングフィルタを適用するのに際し、垂直フィルタリングおよび水平フィルタリングを行う時に、水平方向フィルタリングおよび垂直方向フィルタリングが並列処理されるようにする場合がある。
オフセット補正部は、デブロッキングを行った映像に対して、ピクセル単位で原本映像とのオフセットを補正する場合がある。特定のピクチャに対するオフセット補正を行うために、映像に含まれたピクセルを所定の数の領域に区分した後、オフセットを行う領域を決定し、当該領域にオフセットを適用する方法または各ピクセルのエッジ情報を考慮してオフセットを適用する方法を使用する場合がある。
ALF(Adaptive Loop Filtering)は、フィルタリングした復元映像と最初の映像を比較した値に基づいて行われる場合がある。映像に含まれたピクセルを所定のグループに分けた後、当該グループに適用される一つのフィルタを決定し、グループごとに差別的にフィルタリングを行う場合がある。ALFを適用するか否かに関する情報は、輝度信号は符号化単位(Coding Unit、CU)別に送信される場合があり、それぞれのブロックによって適用されるALFフィルタの形状およびフィルタ係数は、異なる場合がある。また、適用対象ブロックの特性に関係なく、同一の形状(固定された形状)のALFフィルタが適用されることもできる。
メモリ155は、フィルタ部150を介して算出された復元ブロックまたはピクチャを格納する場合があり、格納された復元ブロックまたはピクチャは、インタ予測を行う時に、予測部120、125に提供される場合がある。
図2は、本発明の一実施形態による映像復号器(デコーダ)のブロック図である。
図2を参照すると、映像復号器200には、エントロピー復号部210、再整列部215、逆量子化部220、逆変換部225、予測部230、235、フィルタ部240、メモリ245が含まれる場合がある。
映像符号化器から映像ビットストリームが入力された場合、入力されたビットストリームは、映像符号化器とは逆の処理で復号される場合がある。
エントロピー復号部210は、映像符号化器のエントロピー符号化部でエントロピー符号化を行ったこととは逆の処理でエントロピー復号を行う場合がある。例えば、映像符号化器で行われた方法に対応して、指数ゴロム(Exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの様々な方法が適用される場合がある。
エントロピー復号部210では、符号化器で行われたイントラ予測およびインタ予測に関する情報を復号する場合がある。
再整列部215は、エントロピー復号部210でエントロピー復号されたビットストリームを符号化部で再整列した方法に基づいて再整列を行う場合がある。一次元ベクトル形状で表現された係数をまた二次元のブロック形状の係数に復元して再整列する場合がある。再整列部215では、符号化部で行われた係数スキャニングに関する情報の提供を受け、当該符号化部で行われたスキャニング順序に基づいて、逆にスキャニングする方法により再整列を行う場合がある。
逆量子化部220は、符号化器から提供された量子化パラメータと再整列されたブロックの係数値に基づいて逆量子化を行う場合がある。
逆変換部225は、映像符号化器で行った量子化結果に対して変換部で行った変換、すなわち、DCTまたはDSTに対する逆変換、すなわち、逆DCTまたは逆DSTを行う場合がある。ここで、DCT変換コアは、DCT2またはDCT8のうち少なくとも一つを含み、DST変換コアは、DST7を含む場合がある。または、映像符号化器で変換がスキップされた場合、逆変換部225でも逆変換を行わない場合がある。逆変換は、映像符号化器で決定された伝送単位に基づいて行われる場合がある。映像復号器の逆変換部225では、予測方法、現在ブロックのサイズおよび予測方向など複数の情報に応じて、変換技法(例えば、DCTまたはDST)が選択的に行われる場合がある。
予測部230、235は、エントロピー復号部210から提供された予測ブロック生成関連情報と、メモリ245から提供された前に復号されたブロックまたはピクチャ情報に基づいて予測ブロックを生成する場合がある。
上述のように、映像符号化器での動作と同様にイントラ予測を行う時に、予測単位のサイズと変換単位のサイズが同一である場合、予測単位の左側に存在するピクセル、左側上端に存在するピクセル、上端に存在するピクセルに基づいて予測単位に対するイントラ予測を行うが、イントラ予測を行う時に、予測単位のサイズと変換単位のサイズが相違する場合、変換単位に基づく参照ピクセルを用いてイントラ予測を行う場合がある。また、最小符号化単位に対してのみN×N分割を使用するイントラ予測を使用することもできる。
予測部230、235は、予測単位判別部、インタ予測部およびイントラ予測部を含む場合がある。予測単位判別部は、エントロピー復号部210から入力される予測単位情報、イントラ予測方法の予測モード情報、インタ予測方法のモーション予測関連情報など、様々な情報の入力を受けて現在の符号化単位から予測単位を区分し、予測単位がインタ予測を行うか、それともイントラ予測を行うかを判別する場合がある。インタ予測部230は、映像符号化器から提供された現在予測単位のインタ予測に必要な情報を用いて、現在予測単位が含まれた現在ピクチャの前のピクチャまたは後のピクチャのうち少なくとも一つのピクチャに含まれた情報に基づいて、現在予測単位に対するインタ予測を行う場合がある。または、現在予測単位が含まれた現在ピクチャ内で予め復元された一部領域の情報に基づいてインタ予測を行うこともできる。
インタ予測を行うために、符号化単位を基準に当該符号化単位に含まれた予測単位のモーション予測方法が、スキップモード(Skip Mode)、マージモード(Mergeモード)、モーションベクトル予測モード(AMVP Mode)、イントラブロックコピーモードのいずれかの方法であるかを判断する場合がある。
イントラ予測部235は、現在ピクチャ内の画素情報に基づいて予測ブロックを生成する場合がある。予測単位がイントラ予測を行った予測単位である場合、映像符号化器から提供された予測単位のイントラ予測モード情報に基づいてイントラ予測を行う場合がある。イントラ予測部235は、AIS(Adaptive Intra Smoothing)フィルタ、参照画素補間部、DCフィルタを含む場合がある。AISフィルタは、現在ブロックの参照画素にフィルタリングを行う部分として、現在予測単位の予測モードによってフィルタを適用するか否かを判定し、適用する場合がある。映像符号化器から提供された予測単位の予測モードおよびAISフィルタ情報を用いて、現在ブロックの参照画素に対してAISフィルタリングを行う場合がある。現在ブロックの予測モードがAISフィルタリングを行わないモードである場合、AISフィルタは適用されない場合がある。
参照画素補間部は、予測単位の予測モードが参照画素を補間した画素値に基づいてイントラ予測を行う予測単位である場合、参照画素を補間して整数値以下の画素単位の参照画素を生成する場合がある。現在予測単位の予測モードが参照画素を補間せず予測ブロックを生成する予測モードである場合、参照画素は、補間されない場合がある。DCフィルタは、現在ブロックの予測モードがDCモードである場合、フィルタリングにより予測ブロックを生成する場合がある。
復元されたブロックまたはピクチャは、フィルタ部240に提供される場合がある。フィルタ部240は、デブロッキングフィルタと、オフセット補正部と、ALFとを含む場合がある。
映像符号化器から当該ブロックまたはピクチャにデブロッキングフィルタを適用したか否かに関する情報およびデブロッキングフィルタを適用した場合、強いフィルタを適用したかまたは弱いフィルタを適用したかに関する情報の提供を受ける場合がある。映像復号器のデブロッキングフィルタでは、映像符号化器から提供されたデブロッキングフィルタ関連情報の提供を受け、映像復号器で当該ブロックに対するデブロッキングフィルタリングを行う場合がある。
オフセット補正部は、符号化時に映像に適用されたオフセット補正の種類およびオフセット値の情報などに基づいて復元された映像にオフセット補正を行う場合がある。
ALFは、符号化器から受信した、ALFを適用すべきか否かに関する情報、ALF係数に関する情報などに基づいて、符号化単位に適用される場合がある。このようなALF情報は、特定のパラメータセットに含まれて提供される場合がある。
メモリ245は、復元されたピクチャまたはブロックを格納して、参照ピクチャまたは参照ブロックとして使用可能にする場合があり、また、復元されたピクチャを出力部に提供する場合がある。
図3は、本発明の一実施形態による基本コーディングツリーユニットを図示した図である。
最大サイズのコーディングブロックをコーディングツリーブロックと定義する場合がある。一つのピクチャは、複数個のコーディングツリーユニット(Coding Tree Unit、CTU)に分割される。コーディングツリーユニットは、最大サイズのコーディングユニットであり、LCU(Largest Coding Unit)と称することもできる。図3は、一つのピクチャが複数個のコーディングツリーユニットに分割された例を示す図である。
コーディングツリーユニットのサイズは、ピクチャレベルまたはシーケンスレベルで定義される場合がある。このために、コーディングツリーユニットのサイズを示す情報が、ピクチャパラメータセットまたはシーケンスパラメータセットを介してシグナリングされる場合がある。
一例として、シーケンス内の全体ピクチャに対するコーディングツリーユニットのサイズが128×128に設定される場合がある。または、ピクチャレベルで、128×128または256×256のいずれか一つをコーディングツリーユニットのサイズに決定する場合がある。一例として、第1ピクチャでは、コーディングツリーユニットのサイズが128×128に設定され、第2ピクチャでは、コーディングツリーユニットのサイズが256×256に設定される場合がある。
コーディングツリーユニットを分割して、コーディングブロックを生成する場合がある。コーディングブロックは、符号化/復号処理のための基本単位を示す。一例として、コーディングブロック別に予測または変換が行われるか、コーディングブロック別に予測符号化モードが判定される場合がある。ここで、予測符号化モードは、予測映像を生成する方法を示す。一例として、予測符号化モードは、画面内予測(Intra Prediction、イントラ予測)、画面間予測(Inter Prediction、インタ予測)、現在ピクチャ参照(Current Picture Referencing、CPR、またはイントラブロックコピー(Intra Block Copy、IBC))または複合予測(Combined Prediction)を含む場合がある。コーディングブロックに対して、イントラ予測、インタ予測、現在ピクチャ参照または複合予測のうち少なくとも一つの予測符号化モードを用いて、コーディングブロックに対する予測ブロックを生成する場合がある。
現在ブロックの予測符号化モードを示す情報がビットストリームを介してシグナリングされる場合がある。一例として、情報は、予測符号化モードがイントラモードであるかまたはインタモードであるかを示す1ビットフラグである場合がある。現在ブロックの予測符号化モードがインタモードに判定された場合に限って、現在ピクチャ参照または複合予測が利用可能である。
現在ピクチャ参照は、現在ピクチャを参照ピクチャに設定し、現在ピクチャ内の既に符号化/復号が完了した領域から現在ブロックの予測ブロックを得るためのものである。ここで、現在ピクチャは、現在ブロックを含むピクチャを意味する。現在ブロックに現在ピクチャ参照が適用されるか否かを示す情報がビットストリームを介してシグナリングされる場合がある。一例として、情報は、1ビットのフラグである場合がある。フラグが真の場合、現在ブロックの予測符号化モードは現在ピクチャ参照として判定され、フラグが偽の場合、現在ブロックの予測モードはインタ予測として判定される場合がある。
または、参照ピクチャインデックスに基づいて、現在ブロックの予測符号化モードが判定される場合がある。一例として、参照ピクチャインデックスが現在ピクチャを示す場合、現在ブロックの予測符号化モードは、現在ピクチャ参照として判定される場合がある。参照ピクチャインデックスが現在ピクチャではない他のピクチャを示す場合、現在ブロックの予測符号化モードは、インタ予測として判定される場合がある。すなわち、現在ピクチャ参照は、現在ピクチャ内の符号化/復号が完了した領域の情報を用いた予測方法であり、インタ予測は、符号化/復号が完了した他のピクチャの情報を用いた予測方法である。
複合予測は、イントラ予測、インタ予測および現在ピクチャ参照のうち二つ以上を組み合わせた符号化モードを示す。一例として、複合予測が適用される場合、イントラ予測、インタ予測または現在ピクチャ参照のいずれか一つに基づいて第1予測ブロックが生成され、他の一つに基づいて第2予測ブロックが生成される場合がある。第1予測ブロックおよび第2予測ブロックが生成されると、第1予測ブロックおよび第2予測ブロックの平均演算または加重和演算により最終予測ブロックが生成される場合がある。複合予測が適用されるか否かを示す情報がビットストリームを介してシグナリングされる場合がある。情報は、1ビットのフラグである場合がある。
図4は、コーディングブロックの様々な分割形状を示す図である。
コーディングブロックは、四分木分割、バイナリツリー分割またはトリプルツリー分割に基づいて複数のコーディングブロックに分割される場合がある。分割されたコーディングブロックもまた四分木分割、バイナリツリー分割またはトリプルツリー分割に基づいて、また複数のコーディングブロックに分割される場合がある。
四分木分割は、現在ブロックを4個のブロックに分割する分割技法を示す。四分木分割の結果、現在ブロックは、4個の正方形状パーティションに分割される場合がある(図4の(a)「SPLIT_QT」参照)。
バイナリツリー分割は、現在ブロックを2個のブロックに分割する分割技法を示す。垂直方向に沿って(すなわち、現在ブロックを横切る垂直線を利用)現在ブロックを二つのブロックに分割することを垂直方向バイナリツリー分割と称する場合があり、水平方向に沿って(すなわち、現在ブロックを横切る水平線を利用)現在ブロックを二つのブロックに分割することを水平方向バイナリツリー分割と称する場合がある。バイナリツリー分割の結果、現在ブロックは、2個の非正方形状パーティションに分割される場合がある。図4の(b)「SPLIT_BT_VER」は、垂直方向バイナリツリー分割結果を示すものでり、図4の(c)「SPLIT_BT_HOR」は、水平方向バイナリツリー分割結果を示すものである。
トリプルツリー分割は、現在ブロックを3個のブロックに分割する分割技法を示す。垂直方向に沿って(すなわち、現在ブロックを横切る二つの垂直線を利用)現在ブロックを三つのブロックに分割することを垂直方向トリプルツリー分割と称する場合があり、水平方向に沿って(すなわち、現在ブロックを横切る二つの水平線を利用)現在ブロックを三つのブロックに分割することを水平方向トリプルツリー分割と称する場合がある。トリプルツリー分割の結果、現在ブロックは、3個の非正方形状パーティションに分割される場合がある。この場合、現在ブロックの中央に位置するパーティションの幅/高さは、他のパーティションの幅/高さに対して2倍である場合がある。図4の(d)「SPLIT_TT_VER」は、垂直方向トリプルツリー分割結果を示すものであり、図4の(e)「SPLIT_TT_HOR」は、水平方向トリプルツリー分割結果を示すものである。
コーディングツリーユニットの分割回数を分割深さ(Partitioning Depth)と定義する場合がある。シーケンスまたはピクチャレベルでコーディングツリーユニットの最大分割深さが決定される場合がある。これにより、シーケンスまたはピクチャ別にコーディングツリーユニットの最大分割深さが相違する場合がある。
または、分割技法それぞれに対する最大分割深さを個別に決定する場合がある。一例として、四分木分割が許容される最大分割深さは、バイナリツリー分割および/またはトリプルツリー分割が許容される最大分割深さと相違する場合がある。
符号化器は、現在ブロックの分割形状または分割深さのうち少なくとも一つを示す情報をビットストリームを介してシグナリングする場合がある。復号器は、ビットストリームからパーシングされる情報に基づいて、コーディングツリーユニットの分割形状および分割深さを決定する場合がある。
図5は、コーディングツリーユニットの分割態様を例示した図である。
四分木分割、バイナリツリー分割および/またはトリプルツリー分割などの分割技法を用いてコーディングブロックを分割することをマルチツリー分割(Multi Tree Partitioning)と称する場合がある。
コーディングブロックにマルチツリー分割を適用して生成されるコーディングブロックを下位コーディングブロックと称する場合がある。コーディングブロックの分割深さがkである場合、下位コーディングブロックの分割深さは、k+1に設定される。
逆に、分割深さがk+1であるコーディングブロックに対して、分割深さがkであるコーディングブロックを上位コーディングブロックと称する場合がある。
現在コーディングブロックの分割タイプは、上位コーディングブロックの分割形状または近隣コーディングブロックの分割タイプのうち少なくとも一つに基づいて決定される場合がある。ここで、近隣コーディングブロックは、現在コーディングブロックに隣接するものであり、現在コーディングブロックの上端近隣ブロック、左側近隣ブロック、または左側上端コーナに隣接する近隣ブロックのうち少なくとも一つを含む場合がある。ここで、分割タイプは、四分木分割を適用すべきか否か、バイナリツリー分割を適用すべきか否か、バイナリツリー分割方向、トリプルツリー分割を適用すべきか否か、またはトリプルツリー分割方向のうち少なくとも一つを含む場合がある。
コーディングブロックの分割形状を決定するために、コーディングブロックが分割されるか否かを示す情報がビットストリームを介してシグナリングされる場合がある。情報は、1ビットのフラグ「split_cu_flag」であり、フラグが真であることは、マージツリー分割技法によってコーディングブロックが分割されることを示す。
split_cu_flagが真の場合、コーディングブロックが四分木分割されるか否かを示す情報がビットストリームを介してシグナリングされる場合がある。情報は、1ビットのフラグsplit_qt_flagであり、フラグが真の場合、コーディングブロックは、4個のブロックに分割される場合がある。
一例として、図5に図示されている例では、コーディングツリーユニットが四分木分割されることで、分割深さが1である4個のコーディングブロックが生成されるものと図示されている。また、四分木分割結果として生成された4個のコーディングブロックのうち最初のコーディングブロックおよび四番目のコーディングブロックにまた四分木分割が適用されたものと図示されている。その結果、分割深さが2である4個のコーディングブロックが生成される場合がある。
また、分割深さが2であるコーディングブロックにまた四分木分割を適用することで、分割深さが3であるコーディングブロックを生成する場合がある。
コーディングブロックに四分木分割が適用されない場合、コーディングブロックのサイズ、コーディングブロックがピクチャ境界に位置するか否か、最大分割深さまたは近隣ブロックの分割形状のうち少なくとも一つを考慮して、コーディングブロックにバイナリツリー分割またはトリプルツリー分割を行うか否かを判定する場合がある。コーディングブロックにバイナリツリー分割またはトリプルツリー分割が行われるものと判定された場合、分割方向を示す情報がビットストリームを介してシグナリングされる場合がある。情報は、1ビットのフラグmtt_split_cu_vertical_flagである場合がある。フラグに基づいて、分割方向が垂直方向であるかまたは水平方向であるかが判定される場合がある。さらに、バイナリツリー分割またはトリプルツリー分割のいずれのものがコーディングブロックに適用されるかを示す情報がビットストリームを介してシグナリングされる場合がある。情報は、1ビットのフラグmtt_split_cu_binary_flagである場合がある。フラグに基づいて、コーディングブロックにバイナリツリー分割が適用されるかまたはトリプルツリー分割が適用されるかが判定される場合がある。
一例として、図5に図示されている例では、分割深さ1のコーディングブロックに垂直方向バイナリツリー分割が適用され、分割結果として生成されたコーディングブロックのうち左側コーディングブロックには、垂直方向トリプルツリー分割が適用され、右側コーディングブロックには、垂直方向バイナリツリー分割が適用されたものと図示されている。
インタ予測は、前のピクチャの情報を用いて、現在ブロックを予測する予測符号化モードである。一例として、前のピクチャ内の現在ブロックと同一の位置のブロック(以下、コロケーテッドブロック、Collocated block)を現在ブロックの予測ブロックに設定する場合がある。以下、現在ブロックと同一の位置のブロックに基づいて生成された予測ブロックをコロケーテッド予測ブロック(Collocated Prediction Block)と称する。
一方、前のピクチャに存在したオブジェクトが現在ピクチャでは他の位置に移動したとすると、オブジェクトの動きを用いて、効果的に現在ブロックを予測する場合がある。例えば、前のピクチャと現在ピクチャを比較することでオブジェクトの移動方向およびサイズを知ることができれば、オブジェクトの動き情報を考慮して、現在ブロックの予測ブロック(または、予測映像)を生成する場合がある。以下、動き情報を用いて生成された予測ブロックを動き予測ブロックと称する場合がある。
現在ブロックから予測ブロックを差分して、残差ブロック(residual block)を生成する場合がある。この場合、オブジェクトの動きが存在する場合であれば、コロケーテッド予測ブロックの代わりに動き予測ブロックを用いることで、残差ブロックのエネルギーを低減し、これにより、残差ブロックの圧縮性能を向上させる場合がある。
上記のように、動き情報を用いて予測ブロックを生成することを動き補償予測と称する場合がある。ほとんどのインタ予測では、動き補償予測に基づいて予測ブロックを生成する場合がある。
動き情報は、モーションベクトル、参照ピクチャインデックス、予測方向または双方向加重値インデックスのうち少なくとも一つを含む場合がある。モーションベクトルは、オブジェクトの移動方向およびサイズを示す。参照ピクチャインデックスは、参照ピクチャリストに含まれた参照ピクチャのうち、現在ブロックの参照ピクチャを特定する。予測方向は、単方向L0予測、単方向L1予測または双方向予測(L0予測およびL1予測)のいずれか一つを示す。現在ブロックの予測方向に応じて、L0方向の動き情報またはL1方向の動き情報のうち少なくとも一つが用いられる場合がある。双方向加重値インデックスは、L0予測ブロックに適用される加重値およびL1予測ブロックに適用される加重値を特定する。
図6は、本発明の一実施形態によるインタ予測方法のフローチャートである。
図6を参照すると、インタ予測方法は、現在ブロックのインタ予測モードを決定するステップ(S601)と、決定されたインタ予測モードによって現在ブロックの動き情報を得るステップ(S602)と、得られた動き情報に基づいて、現在ブロックに対する動き補償予測を行うステップ(S603)とを含む。
ここで、インタ予測モードは、現在ブロックの動き情報を決定するための様々な技法を示すものであり、並進(Translation)動き情報を用いるインタ予測モードと、アフィン(Affine)動き情報を用いるインタ予測モードとを含む場合がある。一例として、並進動き情報を用いるインタ予測モードは、マージモードおよびモーションベクトル予測モードを含み、アフィン動き情報を用いるインタ予測モードは、アフィンマージモードおよびアフィンモーションベクトル予測モードを含む場合がある。現在ブロックの動き情報は、インタ予測モードによって、現在ブロックに隣り合う近隣ブロックまたはビットストリームからパーシングされる情報に基づいて決定される場合がある。
以下、アフィン動き情報を用いるインタ予測方法について詳細に説明する。
図7は、オブジェクトの非線形動きを例示した図である。
映像内のオブジェクトの動きが線形的ではない動きが発生する場合がある。一例として、図7に図示されている例のように、カメラズームイン(Zoom-in)、ズームアウト(Zoom-out)、回転(Rotation)またはアフィン変換など、オブジェクトの非線形動きが発生する場合がある。オブジェクトの非線形動きが発生した場合、並進動きベクトルでは、オブジェクトの動きを効果的に表現することができない。そのため、オブジェクトの非線形動きが発生する部分では、並進動きの代わりにアフィン動きを用いて符号化効率を向上させる場合がある。
図8は、本発明の一実施形態によるアフィンモーションに基づくインタ予測方法のフローチャートである。
現在ブロックにアフィンモーションに基づくインタ予測技法が適用されるか否かは、ビットストリームからパーシングされる情報に基づいて判定される場合がある。具体的には、現在ブロックにアフィンマージモードが適用されるか否かを示すフラグまたは現在ブロックにアフィンモーションベクトル予測モードが適用されるか否かを示すフラグのうち少なくとも一つに基づいて、現在ブロックにアフィンモーションに基づくインタ予測技法が適用されるか否かを判定する場合がある。
現在ブロックにアフィンモーションに基づくインタ予測技法が適用される場合、現在ブロックのアフィンモーションモデルを判定する場合がある(S801)。アフィンモーションモデルは、6パラメータアフィンモーションモデルまたは4パラメータアフィンモーションモデルのうち少なくとも一つに判定される場合がある。6パラメータアフィンモーションモデルは、6個のパラメータを用いてアフィンモーションを表現したものであり、4パラメータアフィンモーションモデルは、4個のパラメータを用いてアフィンモーションを表現したものである。
数式1は、6パラメータを用いてアフィンモーションを表現したものである。アフィンモーションは、アフィンシードベクトルによって決定される所定の領域に対する並進動きを示す。
Figure 2024001181000002
6個のパラメータを用いてアフィンモーションを表現する場合、複雑な動きを表現する場合があるが、各パラメータを符号化するために必要なビット数が多くなって符号化効率が低下し得る。そのため、4個のパラメータを用いてアフィンモーションを表現することもできる。数式2は、4個のパラメータを用いてアフィンモーションを表現したものである。
Figure 2024001181000003
現在ブロックのアフィンモーションモデルを判定するための情報が符号化され、ビットストリームを介してシグナリングされる場合がある。一例として、情報は、1ビットのフラグ「affine_type_flag」である場合がある。フラグの値が0であることは、4パラメータアフィンモーションモデルが適用されることを示し、フラグの値が1であることは、6パラメータアフィンモーションモデルが適用されることを示す場合がある。フラグは、スライス、タイルまたはブロック(例えば、コーディングブロックまたはコーディングツリーユニット)単位で符号化される場合がある。スライスレベルでフラグがシグナリングされる場合、スライスレベルで判定されたアフィンモーションモデルがスライスに属するブロックのすべてに適用される場合がある。
または、現在ブロックのアフィンインタ予測モードに基づいて、現在ブロックのアフィンモーションモデルを判定する場合がある。一例として、アフィンマージモードが適用される場合、現在ブロックのアフィンモーションモデルを4パラメータモーションモデルに判定する場合がある。一方、アフィンモーションベクトル予測モードが適用される場合、現在ブロックのアフィンモーションモデルを判定するための情報を符号化し、ビットストリームを介してシグナリングする場合がある。一例として、現在ブロックにアフィンモーションベクトル予測モードが適用される場合、1ビットのフラグ「affine_type_flag」に基づいて、現在ブロックのアフィンモーションモデルを判定する場合がある。
次に、現在ブロックのアフィンシードベクトルを導出する場合がある(S802)。4パラメータアフィンモーションモデルが選択された場合、現在ブロックの二つのコントロールポイントでのモーションベクトルを導出する場合がある。一方、6パラメータアフィンモーションモデルが選択された場合、現在ブロックの三つのコントロールポイントでのモーションベクトルが導出される場合がある。コントロールポイントでのモーションベクトルをアフィンシードベクトルと称する場合がある。コントロールポイントは、現在ブロックの左上端コーナ、右上端コーナまたは左下端コーナのうち少なくとも一つを含む場合がある。
図9は、アフィンモーションモデル別のアフィンシードベクトルを例示した図である。
4パラメータアフィンモーションモデルでは、左上端コーナ、右上端コーナまたは左下端コーナのうち二つに対するアフィンシードベクトルを導出する場合がある。一例として、図9の(a)に図示されている例のように、4パラメータアフィンモーションモデルが選択された場合、現在ブロックの左上端コーナ(例えば、左上端サンプル(x1,y1))に対するアフィンシードベクトルsv0と現在ブロックの右上端コーナ(例えば、右上端サンプル(x1,y1))に対するアフィンシードベクトルsv1を用いてアフィンベクトルを導出する場合がある。左上端コーナに対するアフィンシードベクトルの代わりに左下端コーナに対するアフィンシードベクトルを使用するか、右上端コーナに対するアフィンシードベクトルの代わりに左下端コーナに対するアフィンシードベクトルを使用することも可能である。
6パラメータアフィンモーションモデルでは、左上端コーナ、右上端コーナおよび左下端コーナに対するアフィンシードベクトルを導出する場合がある。一例として、図9の(b)に図示されている例のように、6パラメータアフィンモーションモデルが選択された場合、現在ブロックの左上端コーナ(例えば、左上端サンプル(x1,y1))に対するアフィンシードベクトルsv0、現在ブロックの右上端コーナ(例えば、右上端サンプル(x1,y1))に対するアフィンシードベクトルsv1および現在ブロックの左上端コーナ(例えば、左上端サンプル(x2,y2))に対するアフィンシードベクトルsv2を用いてアフィンベクトルを導出する場合がある。
後述する実施形態では、4パラメータアフィンモーションモデル下で、左上端コントロールポイントおよび右上端コントロールポイントのアフィンシードベクトルを、それぞれ、第1アフィンシードベクトルおよび第2アフィンシードベクトルと称する。後述する第1アフィンシードベクトルおよび第2アフィンシードベクトルを用いる実施形態において、第1アフィンシードベクトルおよび第2アフィンシードベクトルのうち少なくとも一つの代わりに、左下端コントロールポイントのアフィンシードベクトル(第3アフィンシードベクトル)または右下端コントロールポイントのアフィンシードベクトル(第4アフィンシードベクトル)を使用する場合がある。
また、6パラメータアフィンモーションモデル下で、左上端コントロールポイント、右上端コントロールポイントおよび左下端コントロールポイントのアフィンシードベクトルを、それぞれ、第1アフィンシードベクトル、第2アフィンシードベクトルおよび第3アフィンシードベクトルと称する。後述する第1アフィンシードベクトル、第2アフィンシードベクトルおよび第3アフィンシードベクトルを用いる実施形態において、第1アフィンシードベクトル、第2アフィンシードベクトルおよび第3アフィンシードベクトルのうち少なくとも一つの代わりに、右下端コントロールポイントのアフィンシードベクトル(第4アフィンシードベクトル)を使用する場合がある。
アフィンシードベクトルを用いてサブブロック別にアフィンベクトルを導出する場合がある(S803)。ここで、アフィンベクトルは、アフィンシードベクトルに基づいて導出される並進モーションベクトルを示す。サブブロックのアフィンベクトルをアフィンサブブロックモーションベクトルまたはサブブロックモーションベクトルと称する場合がある。
図10は、4パラメータモーションモデル下で、サブブロックのアフィンベクトルを例示した図である。
サブブロックのアフィンベクトルは、コントロールポイントの位置、サブブロックの位置およびアフィンシードベクトルに基づいて導出される場合がある。一例として、数式3は、アフィンサブブロックモーションベクトルを導出する例を示す。
Figure 2024001181000004
数式3において、(x,y)は、サブブロックの位置を示す。ここで、サブブロックの位置は、サブブロックに含まれた基準サンプルの位置を示す。基準サンプルは、サブブロックの左上端コーナに位置するサンプル、またはx軸またはy軸座標のうち少なくとも一つが中央位置であるサンプルである場合がある。(x0,y0)は、第1コントロールポイントの位置を示し、(sv0x,sv0y)は、第1アフィンシードベクトルを示す。また、(x1,y1)は、第2コントロールポイントの位置を示し、(sv1x,sv1y)は、第2アフィンシードベクトルを示す。
第1コントロールポイントおよび第2コントロールポイントが、それぞれ、現在ブロックの左上端コーナおよび右上端コーナに対応する場合、x1-x0は、現在ブロックの幅と同一の値に設定される場合がある。
次に、各サブブロックのアフィンベクトルを用いて、各サブブロックに対する動き補償予測を行う場合がある(S804)。動き補償予測を行った結果、各サブブロックに対する予測ブロックが生成される場合がある。サブブロックの予測ブロックが、現在ブロックの予測ブロックに設定される場合がある。
現在ブロックのアフィンシードベクトルは、現在ブロックに隣り合う近隣ブロックのアフィンシードベクトルに基づいて導出される場合がある。現在ブロックのインタ予測モードがアフィンマージモードである場合、マージ候補リストに含まれたマージ候補のアフィンシードベクトルを現在ブロックのアフィンシードベクトルに決定する場合がある。また、現在ブロックのインタ予測モードがアフィンマージモードである場合、現在ブロックの参照ピクチャインデックス、特定方向予測フラグまたは双方向加重値のうち少なくとも一つを含む動き情報もマージ候補と同様に設定される場合がある。
次に、並進動き情報を用いるインタ予測方法について詳細に説明する。
現在ブロックの動き情報は、現在ブロックと他のブロックの動き情報から導出される場合がある。ここで、他のブロックは、現在ブロックよりも先にインタ予測で符号化/復号されたブロックである場合がある。現在ブロックの動き情報を他のブロックの動き情報と同様に設定することをマージモードと定義する場合がある。また、他のブロックの動きベクトルを現在ブロックの動きベクトルの予測値に設定することをモーションベクトル予測モードと定義する場合がある。
図11は、マージモード下で、現在ブロックの動き情報を導出する過程のフローチャートである。
現在ブロックのマージ候補を導出する場合がある(S1101)。現在ブロックのマージ候補は、現在ブロックよりも先にインタ予測で符号化/復号されたブロックから導出される場合がある。
図12は、マージ候補を導出するために使用される候補ブロックを例示した図である。
候補ブロックは、現在ブロックに隣接するサンプルを含む近隣ブロックまたは現在ブロックに隣接しないサンプルを含む非近隣ブロックのうち少なくとも一つを含む場合がある。以下、候補ブロックを決定するサンプルを基準サンプルと定義する。また、現在ブロックに隣接する基準サンプルを近隣基準サンプルと称し、現在ブロックに隣接しない基準サンプルを非近隣基準サンプルと称する。
近隣基準サンプルは、現在ブロックの最左側列の近隣列または現在ブロックの最上端行の近隣行に含まれる場合がある。一例として、現在ブロックの左側上端サンプルの座標を(0,0)とした時に、(-1,H-1)位置の基準サンプルを含むブロック、(W-1,-1)位置の基準サンプルを含むブロック、(W,-1)位置の基準サンプルを含むブロック、(-1,H)位置の基準サンプルを含むブロックまたは(-1,-1)位置の基準サンプルを含むブロックのうち少なくとも一つが候補ブロックとして用いられる場合がある。図面を参照すると、インデックス0~インデックス4の近隣ブロックが候補ブロックとして用いられる場合がある。
非近隣基準サンプルは、現在ブロックに隣接する基準サンプルとのx軸距離またはy軸距離のうち少なくとも一つが予め定義された値を有するサンプルを示す。一例として、左側基準サンプルとのx軸距離が予め定義された値である基準サンプルを含むブロック、上端基準サンプルとのy軸距離が予め定義された値である非近隣サンプルを含むブロックまたは左側上端基準サンプルとのx軸距離およびy軸距離が予め定義された値である非近隣サンプルを含むブロックのうち少なくとも一つが候補ブロックとして用いられる場合がある。予め定義された値は、4、8、12、16などの自然数である場合がある。図面を参照すると、インデックス5~26のブロックのうち少なくとも一つが候補ブロックとして用いられる場合がある。
近隣基準サンプルと同一の垂直線、水平線または対角線上に位置しないサンプルを非近隣基準サンプルに設定することもできる。
マージ候補の動き情報は、候補ブロックの動き情報と同様に設定される場合がある。一例として、候補ブロックのモーションベクトル、参照ピクチャインデックス、予測方向または双方向加重値インデックスのうち少なくとも一つをマージ候補の動き情報に設定する場合がある。
マージ候補を含むマージ候補リストを生成する場合がある(S1102)。
マージ候補リスト内のマージ候補のインデックスは、所定の順序にしたがって割り当てられる場合がある。一例として、左側近隣ブロックから導出されたマージ候補、上端近隣ブロックから導出されたマージ候補、右側上端近隣ブロックから導出されたマージ候補、左側下端近隣ブロックから導出されたマージ候補、左側上端近隣ブロックから導出されたマージ候補および時間的近隣ブロックから導出されたマージ候補の順にインデックスを付与する場合がある。
マージ候補に複数のマージ候補が含まれた場合、複数のマージ候補のうち少なくとも一つを選択する場合がある(S1103)。具体的には、複数のマージ候補のいずれか一つを特定するための情報がビットストリームを介してシグナリングされる場合がある。一例として、マージ候補リストに含まれたマージ候補のいずれか一つのインデックスを示す情報merge_idxがビットストリームを介してシグナリングされる場合がある。
マージ候補リストに含まれたマージ候補の個数が閾値より小さい場合、モーション情報テーブルに含まれたモーション情報候補をマージ候補としてマージ候補リストに追加する場合がある。ここで、閾値は、マージ候補リストが含む場合がある最大マージ候補の個数または最大マージ候補の個数からオフセットを減算した値である場合がある。オフセットは、1または2などの自然数である場合がある。
モーション情報テーブルは、現在ピクチャ内のインタ予測に基づいて符号化/復号されたブロックから導出されるモーション情報候補を含む。一例として、モーション情報テーブルに含まれたモーション情報候補の動き情報は、インタ予測に基づいて符号化/復号されたブロックの動き情報と同様に設定される場合がある。ここで、動き情報は、モーションベクトル、参照ピクチャインデックス、予測方向または双方向加重値インデックスのうち少なくとも一つを含む場合がある。
モーション情報テーブルに含まれたモーション情報候補をインタ領域マージ候補または予測領域マージ候補と称することもできる。
モーション情報テーブルが含む場合があるモーション情報候補の最大個数は、符号化器および復号器で予め定義されていてもよい。一例として、モーション情報テーブルが含む場合がある最大モーション情報候補の個数は、1、2、3、4、5、6、7、8またはそれ以上(例えば、16)である場合がある。
または、モーション情報テーブルが含む場合があるモーション情報候補の最大個数を示す情報がビットストリームを介してシグナリングされる場合がある。情報は、シーケンス、ピクチャ、またはスライスレベルでシグナリングされる場合がある。情報は、モーション情報テーブルが含む場合があるモーション情報候補の最大個数を示す場合がある。または、情報は、モーション情報テーブルが含む場合があるモーション情報候補の最大個数とマージ候補リストが含む場合があるマージ候補の最大個数との差分を示す場合がある。
または、ピクチャのサイズ、スライスのサイズまたはコーディングツリーユニットのサイズに応じて、モーション情報テーブルが含む場合があるモーション情報候補の最大個数が決定される場合がある。
モーション情報テーブルは、ピクチャ、スライス、タイル、ブリック、コーディングツリーユニット、またはコーディングツリーユニットライン(行または列)単位で初期化される場合がある。一例として、スライスが初期化される場合、モーション情報テーブルも初期化され、モーション情報テーブルは、如何なるモーション情報候補も含まない場合がある。
または、モーション情報テーブルを初期化するか否かを示す情報がビットストリームを介してシグナリングされる場合がある。情報は、スライス、タイル、ブリックまたはブロックレベルでシグナリングされる場合がある。情報がモーション情報テーブルを初期化することを指示するまで、予め構成されたモーション情報テーブルが用いられる場合がある。
または、ピクチャパラメータセットまたはスライスヘッダーを介して初期モーション情報候補に関する情報がシグナリングされる場合がある。スライスが初期化されても、モーション情報テーブルは、初期モーション情報候補を含む場合がある。これにより、スライス内の最初の符号化/復号対象であるブロックに対しても、初期モーション情報候補を用いる場合がある。
または、前のコーディングツリーユニットのモーション情報テーブルに含まれたモーション情報候補を初期モーション情報候補に設定する場合がある。一例として、前のコーディングツリーユニットのモーション情報テーブルに含まれたモーション情報候補のうちインデックスが最も小さいモーション情報候補またはインデックスが最も大きいモーション情報候補が初期モーション情報候補に設定される場合がある。
符号化/復号順序にしたがってブロックを符号化/復号し、この場合、インタ予測に基づいて符号化/復号されたブロックを符号化/復号順序にしたがって、順にモーション情報候補に設定する場合がある。
図13は、モーション情報テーブルのアップデート態様を説明するための図である。
現在ブロックに対して、インタ予測が行われた場合(S1301)、現在ブロックに基づいてモーション情報候補を導出する場合がある(S1302)。モーション情報候補の動き情報は、現在ブロックの動き情報と同様に設定される場合がある。
モーション情報テーブルが空の状態である場合(S1303)、現在ブロックに基づいて導出されたモーション情報候補をモーション情報テーブルに追加する場合がある(S1304)。
モーション情報テーブルが既にモーション情報候補を含んでいる場合(S1303)、現在ブロックの動き情報(または、これに基づいて導出されたモーション情報候補)に対する重複性検査を実施する場合がある(S1305)。重複性検査は、モーション情報テーブルに予め格納されたモーション情報候補の動き情報と現在ブロックの動き情報が同一であるか否かを判定するためのものである。重複性検査は、モーション情報テーブルに予め格納されたすべてのモーション情報候補を対象に行われる場合がある。または、モーション情報テーブルに予め格納されたモーション情報候補のうち、インデックスが閾値以上または閾値以下であるモーション情報候補を対象に重複性検査を行う場合がある。または、予め定義された個数のモーション情報候補を対象に重複性検査が行われる場合がある。一例として、インデックスが小さい2個のモーション情報候補またはインデックスが大きい2個のモーション情報候補が重複性検査対象に決定される場合がある。
現在ブロックの動き情報と同一の動き情報を有するモーション情報候補が含まれていない場合、現在ブロックに基づいて導出されたモーション情報候補をモーション情報テーブルに追加する場合がある(S1308)。モーション情報候補が同一であるか否かは、モーション情報候補の動き情報(例えば、モーションベクトルおよび/または参照ピクチャインデックスなど)が同一であるか否かに基づいて判定される場合がある。
この場合、モーション情報テーブルに既に最大個数のモーション情報候補が格納されている場合(S1306)、最も古いモーション情報候補を削除し(S1307)、現在ブロックに基づいて導出されたモーション情報候補をモーション情報テーブルに追加する場合がある(S1308)。ここで、最も古いモーション情報候補は、インデックスが最も大きいモーション情報候補またはインデックスが最も小さいモーション情報候補である場合がある。
モーション情報候補は、それぞれ、インデックスによって識別される場合がある。現在ブロックから導出されたモーション情報候補がモーション情報テーブルに追加される場合、モーション情報候補に最も低いインデックス(例えば、0)を割り当て、予め格納されたモーション情報候補のインデックスを1ずつ増加させる場合がある。この場合、モーション情報テーブルに既に最大個数のモーション情報候補が格納されている場合、インデックスが最も大きいモーション情報候補が除去される。
または、現在ブロックから導出されたモーション情報候補がモーション情報テーブルに追加される場合、モーション情報候補に最も大きいインデックスを割り当てる場合がある。一例として、モーション情報テーブルに予め格納されたモーション情報候補の個数が最大値より小さい場合、モーション情報候補には、予め格納されたモーション情報候補の個数と同一の値のインデックスが割り当てられる場合がある。または、モーション情報テーブルに予め格納されたモーション情報候補の個数が最大値と同一である場合、モーション情報候補には、最大値から1を減算したインデックスが割り当てられる場合がある。また、インデックスが最も小さいモーション情報候補が除去され、残りの予め格納されたモーション情報候補のインデックスが1ずつ減少する。
図14は、モーション情報テーブルのアップデート態様を示す図である。
現在ブロックから導出されたモーション情報候補がモーション情報テーブルに追加されて、モーション情報候補に最も大きいインデックスが割り当てられるものと仮定する。また、モーション情報テーブルには、既に最大個数のモーション情報候補が格納されたものと仮定する。
現在ブロックから導出されたモーション情報候補HmvpCand[n+1]をモーション情報テーブルHmvpCandListに追加する場合、予め格納されたモーション情報候補のうちインデックスが最も小さいモーション情報候補HmvpCand[0]を削除し、残りのモーション情報候補のインデックスを1ずつ減少させる場合がある。また、現在ブロックから導出されたモーション情報候補HmvpCand[n+1]のインデックスを最大値(図14に図示されている例ではn)に設定する場合がある。
現在ブロックに基づいて導出されたモーション情報候補と同一のモーション情報候補が予め格納されている場合(S1305)、現在ブロックに基づいて導出されたモーション情報候補をモーション情報テーブルに追加しない場合がある(S1309)。
または、現在ブロックに基づいて導出されたモーション情報候補をモーション情報テーブルに追加し、且つモーション情報候補と同一の予め格納されたモーション情報候補を除去することもできる。この場合、予め格納されたモーション情報候補のインデックスが新たに更新されることと同じ効果を引き起こす。
図15は、予め格納されたモーション情報候補のインデックスが更新される例を示す図である。
現在ブロックに基づいて導出されたモーション情報候補mvCandと同一の予め格納されたモーション情報候補のインデックスがhIdxである場合、予め格納されたモーション情報候補を削除し、インデックスがhIdxより大きいモーション情報候補のインデックスを1だけ減少させる場合がある。一例として、図15に図示されている例では、mvCandと同一のHmvpCand[2]がモーション情報テーブルHvmpCandListから削除され、HmvpCand[3]からHmvpCand[n]までのインデックスが1ずつ減少するものと図示されている。
また、現在ブロックに基づいて導出されたモーション情報候補mvCandをモーション情報テーブルの最後に追加する場合がある。
または、現在ブロックに基づいて導出されたモーション情報候補と同一の予め格納されたモーション情報候補に割り当てられたインデックスを更新する場合がある。例えば、予め格納されたモーション情報候補のインデックスを最小値または最大値に変更する場合がある。
所定の領域に含まれたブロックの動き情報は、モーション情報テーブルに追加されないように設定される場合がある。一例として、マージ処理領域に含まれたブロックの動き情報に基づいて導出されるモーション情報候補は、モーション情報テーブルに追加しない場合がある。マージ処理領域に含まれたブロックに対しては、符号化/復号順序が定義されていないため、これらのいずれか一つの動き情報を他のブロックのインタ予測時に用いることは不適切である。そのため、マージ処理領域に含まれたブロックに基づいて導出されたモーション情報候補は、モーション情報テーブルに追加しない場合がある。
または、予め設定されたサイズより小さいブロックの動き情報は、モーション情報テーブルに追加されないように設定される場合がある。一例として、幅または高さが4または8より小さいコーディングブロックの動き情報、または4×4サイズのコーディングブロックの動き情報に基づいて導出されるモーション情報候補は、モーション情報テーブルに追加しない場合がある。
現在ブロックのインタ予測モードに基づいて、現在ブロックをモーション情報候補として用いるか否かを判定することもできる。一例として、アフィンモーションモデルに基づいて符号化/復号されたブロックは、モーション情報候補として利用不可能なものに設定される場合がある。これにより、現在ブロックがインタ予測で符号化/復号されたとしても、現在ブロックのインタ予測モードがアフィン予測モードである場合には、現在ブロックに基づいてモーション情報テーブルをアップデートしない場合がある。
モーション情報候補が動き情報以外に追加情報を含むように設定する場合がある。一例として、モーション情報候補に対して、ブロックのサイズ、形状またはブロックのパーティション情報のうち少なくとも一つを追加格納する場合がある。現在ブロックのマージ候補リストの構成時に、モーション情報候補のうち、現在ブロックとサイズ、形状またはパーティション情報が同一または類似するモーション情報候補のみを使用するか、現在ブロックとサイズ、形状またはパーティション情報が同一または類似するモーション情報候補を先にマージ候補リストに追加する場合がある。
現在ブロックのマージ候補リストに含まれたマージ候補の個数が閾値より小さい場合、モーション情報テーブルに含まれたモーション情報候補をマージ候補としてマージ候補リストに追加する場合がある。追加過程は、モーション情報候補のインデックスを昇順または降順に整列した時の順序にしたがって行われる。一例として、インデックスが最も大きいモーション情報候補から現在ブロックのマージ候補リストに追加する場合がある。
モーション情報テーブルに含まれたモーション情報候補をマージ候補リストに追加しようとする場合、モーション情報候補とマージ候補リストに予め格納されたマージ候補との重複性検査が行われる場合がある。重複性検査を行った結果、予め格納されたマージ候補と同一の動き情報を有するモーション情報候補は、マージ候補リストに追加されない場合がある。
重複性検査は、モーション情報テーブルに含まれたモーション情報候補のうち一部に対してのみ行われることもできる。一例として、インデックスが閾値以上または閾値以下であるモーション情報候補に対してのみ重複性検査が行われる場合がある。または、インデックスが最も大きいN個のモーション情報候補またはインデックスが最も小さいN個のモーション情報候補に対してのみ重複性検査が行われる場合がある。
または、マージ候補リストに予め格納されたマージ候補のうち一部に対してのみ重複性検査を行う場合がある。一例として、インデックスが閾値以上または閾値以下であるマージ候補または特定の位置のブロックから導出されたマージ候補に対してのみ重複性検査が行われる場合がある。ここで、特定の位置は、現在ブロックの左側近隣ブロック、上端近隣ブロック、右側上端近隣ブロックまたは左側下端近隣ブロックのうち少なくとも一つを含む場合がある。
図16は、マージ候補のうち一部に対してのみ重複性検査が行われる例を図示した図である。
モーション情報候補HmvpCand[j]をマージ候補リストに追加しようとする場合、モーション情報候補に対してインデックスが最も大きい2個のマージ候補mergeCandList[NumMerge-2]およびmergeCandList[NumMerge-1]との重複性検査を行う場合がある。ここで、NumMergeは、可用な空間的マージ候補および時間的マージ候補の個数を示す場合がある。
図示されている例とは異なり、モーション情報候補HmvpCand[j]をマージ候補リストに追加しようとする場合、モーション情報候補に対してインデックスが最も小さい最大2個のマージ候補との重複性検査を行うこともできる。例えば、mergeCandList[0]およびmergeCandList[1]に対して、HmvpCand[j]と同一であるか否かを確認する場合がある。
または、特定の位置から導出されたマージ候補に対してのみ重複性検査を行う場合がある。一例として、現在ブロックの左側に位置する周辺ブロックから導出されたマージ候補または現在ブロックの上端に位置する周辺ブロックから導出されたマージ候補のうち少なくとも一つに対して重複性検査を行う場合がある。マージ候補リストに特定の位置から導出されたマージ候補が存在しない場合、重複性検査なしにモーション情報候補をマージ候補リストに追加する場合がある。
モーション情報候補HmvpCand[j]をマージ候補リストに追加しようとする場合、モーション情報候補に対して、インデックスが最も大きい2個のマージ候補mergeCandList[NumMerge-2]およびmergeCandList[NumMerge-1]との重複性検査を行う場合がある。ここで、NumMergeは、可用な空間的マージ候補および時間的マージ候補の個数を示す場合がある。
モーション情報候補のうち一部に対してのみマージ候補との重複性検査を行うこともできる。一例として、モーション情報テーブルに含まれたモーション情報候補のうちインデックスが大きいN個またはインデックスが小さいN個のモーション情報候補に対してのみ重複性検査が行われる場合がある。一例として、モーション情報テーブルに含まれたモーション情報候補の個数と差分が閾値以下であるインデックスを有するモーション情報候補に対してのみ重複性検査が行われる場合がある。閾値が2である場合、モーション情報テーブルに含まれたモーション情報候補のうちインデックス値が最も大きい3個のモーション情報候補に対してのみ重複性検査が行われる場合がある。3個のモーション情報候補以外のモーション情報候補に対しては、重複性検査が省略される場合がある。重複性検査が省略される場合、マージ候補と同一の動き情報を有するか否かに関係なく、モーション情報候補をマージ候補リストに追加する場合がある。
これとは逆に、モーション情報テーブルに含まれたモーション情報候補の個数と差分が閾値以上であるインデックスを有するモーション情報候補に対してのみ重複性検査が行われるように設定することもできる。
重複性検査が行われるモーション情報候補の個数は、符号化器および復号器で予め定義されていてもよい。例えば、閾値は、0、1または2などの整数である場合がある。
または、マージ候補リストに含まれたマージ候補の個数またはモーション情報テーブルに含まれたモーション情報候補の個数のうち少なくとも一つに基づいて閾値を決定する場合がある。
第1モーション情報候補と同一のマージ候補が発見された場合、第2モーション情報候補に対する重複性検査の時に、第1モーション情報候補と同一のマージ候補との重複性検査を省略する場合がある。
図17は、特定のマージ候補との重複性検査が省略される例を示す図である。
インデックスがiであるモーション情報候補HmvpCand[i]をマージ候補リストに追加しようとする場合、モーション情報候補とマージ候補リストに予め格納されたマージ候補との重複性検査が行われる。この場合、モーション情報候補HmvpCand[i]と同一のマージ候補mergeCandList[j]が発見された場合、モーション情報候補HmvpCand[i]をマージ候補リストに追加せず、インデックスがi-1であるモーション情報候補HmvpCand[i-1]とマージ候補との重複性検査を行う場合がある。この場合、モーション情報候補HmvpCand[i-1]とマージ候補mergeCandList[j]との重複性検査は省略する場合がある。
一例として、図17に図示されている例では、HmvpCand[i]とmergeCandList[2]が同一のものに決定された。これにより、HmvpCand[i]は、マージ候補リストに追加されず、HmvpCand[i-1]に対する重複性検査が行われる場合がある。この場合、HvmpCand[i-1]とmergeCandList[2]との重複性検査は省略される場合がある。
現在ブロックのマージ候補リストに含まれたマージ候補の個数が閾値より小さい場合、モーション情報候補以外にも、ペアワイズマージ候補またはゼロマージ候補のうち少なくとも一つがさらに含まれることもできる。ペアワイズマージ候補は、二つ以上のマージ候補の動きベクトルを平均した値を動きベクトルとして有するマージ候補を意味し、ゼロマージ候補は、モーションベクトルが0であるマージ候補を意味する。
現在ブロックのマージ候補リストは、以下の順序にしたがって、マージ候補が追加される場合がある。
空間的マージ候補-時間的マージ候補-モーション情報候補-(アフィンモーション情報候補)-ペアワイズマージ候補-ゼロマージ候補
空間的マージ候補は、近隣ブロックまたは非近隣ブロックのうち少なくとも一つから導出されるマージ候補を意味し、時間的マージ候補は、前の参照ピクチャから導出されるマージ候補を意味する。アフィンモーション情報候補は、アフィンモーションモデルとして符号化/復号されたブロックから導出されたモーション情報候補を示す。
モーションベクトル予測モードでもモーション情報テーブルが用いられる場合がある。一例として、現在ブロックの動きベクトル予測候補リストに含まれた動きベクトル予測候補の個数が閾値より小さい場合、モーション情報テーブルに含まれたモーション情報候補を現在ブロックに対する動きベクトル予測候補に設定する場合がある。具体的には、モーション情報候補の動きベクトルを動きベクトル予測候補に設定する場合がある。
現在ブロックの動きベクトル予測候補リストに含まれた動きベクトル予測候補のいずれか一つが選択されると、選択された候補を現在ブロックの動きベクトル予測子に設定する場合がある。次に、現在ブロックの動きベクトル残差値を復号した後、動きベクトル予測子と動きベクトル残差値を合算して、現在ブロックの動きベクトルを得る場合がある。
現在ブロックの動きベクトル予測候補リストは、以下の順序にしたがって構成される場合がある。
空間的モーションベクトル予測候補-時間的モーションベクトル予測候補-モーション情報候補-(アフィンモーション情報候補)-ゼロモーションベクトル予測候補
空間的モーションベクトル予測候補は、近隣ブロックまたは非近隣ブロックのうち少なくとも一つから導出されるモーションベクトル予測候補を意味し、時間的モーションベクトル予測候補は、前の参照ピクチャから導出されるモーションベクトル予測候補を意味する。アフィンモーション情報候補は、アフィンモーションモデルとして符号化/復号されたブロックから導出されたモーション情報候補を示す。ゼロモーションベクトル予測候補は、動きベクトルの値が0である候補を示す。
コーディングブロックよりもさらに大きいサイズのマージ処理領域が画定される場合がある。マージ処理領域に含まれたコーディングブロックは、順に符号化/復号されず、並列処理される場合がある。ここで、順に符号化/復号されないということは、符号化/復号順序が定義されていないことを意味する。これにより、マージ処理領域に含まれたブロックの符号化/復号過程は、独立的に処理される場合がある。または、マージ処理領域に含まれたブロックは、マージ候補を共有する場合がある。ここで、マージ候補は、マージ処理領域を基準に導出される場合がある。
上述の特徴によって、マージ処理領域を、並列処理領域、マージ共有領域(Shared Merge Region、SMR)またはMER(Merge Estimation Region)と称することもできる。
現在ブロックのマージ候補は、コーディングブロックを基準に導出される場合がある。ただし、現在ブロックが現在ブロックよりもさらに大きいサイズのマージ処理領域に含まれた場合、現在ブロックと同一のマージ処理領域に含まれた候補ブロックは、マージ候補として利用不可能なものに設定される場合がある。
図18は、現在ブロックと同一のマージ処理領域に含まれた候補ブロックがマージ候補として利用不可能なものに設定される例を示す図である。
図18の左側に図示されている例において、CU5の符号化/復号の時に、CU5に隣接した基準サンプルを含むブロックが候補ブロックに設定される場合がある。この場合、CU5と同一のマージ処理領域に含まれた候補ブロックX3およびX4は、CU5のマージ候補として利用不可能なものに設定される場合がある。一方、CU5と同一のマージ処理領域に含まれていない候補ブロックX0、X1およびX2は、マージ候補として利用可能なものに設定される場合がある。
図18の右側に図示されている例において、CU8の符号化/復号の時に、CU8に隣接した基準サンプルを含むブロックが候補ブロックに設定される場合がある。この場合、CU8と同一のマージ処理領域に含まれた候補ブロックX6、X7およびX8は、マージ候補として非可用なものに設定される場合がある。一方、CU8と同一のマージ領域に含まれていない候補ブロックX5およびX9は、マージ候補として利用可能なものに設定される場合がある。
または、現在ブロックがマージ処理領域に含まれた場合、現在ブロックに隣接する近隣ブロックおよびマージ処理領域に隣接する近隣ブロックが候補ブロックに設定される場合がある。
図19は、現在ブロックがマージ処理領域に含まれている場合、現在ブロックに対するマージ候補を導出する例を示す図である。
図19の(a)に図示されている例のように、現在ブロックが隣接する近隣ブロックが現在ブロックのマージ候補を導出するための候補ブロックに設定される場合がある。この場合、現在ブロックと同一のマージ処理領域に含まれた候補ブロックは、マージ候補として非可用なものに設定される場合がある。一例として、コーディングブロックCU3に対するマージ候補の導出時に、コーディングブロックCU3と同一のマージ処理領域に含まれた上端近隣ブロックy3および右側上端近隣ブロックy4は、コーディングブロックCU3のマージ候補として利用不可能なものに設定される場合がある。
現在ブロックに隣接する近隣ブロックを予め定義された順序にしたがってスキャンし、マージ候補を導出する場合がある。一例として、予め定義された順序は、y1、y3、y4、y0およびy2の順である場合がある。
現在ブロックに隣接する近隣ブロックから導出する場合があるマージ候補の個数がマージ候補の最大個数または最大個数からオフセットを減算した値より小さい場合、図19の(b)に図示されている例のように、マージ処理領域に隣接する近隣ブロックを用いて現在ブロックに対するマージ候補を導出する場合がある。一例として、コーディングブロックCU3を含むマージ処理領域に隣接する近隣ブロックを、コーディングブロックCU3に対する候補ブロックに設定する場合がある。ここで、マージ処理領域に隣接する近隣ブロックは、左側近隣ブロックx1、上端近隣ブロックx3、左側下端近隣ブロックx0、右側上端近隣ブロックx4または左側上端近隣ブロックx2のうち少なくとも一つを含む場合がある。
マージ処理領域に隣接する近隣ブロックを予め定義された順序にしたがってスキャンし、マージ候補を導出する場合がある。一例として、予め定義された順序は、x1、x3、x4、x0およびx2の順である場合がある。
まとめると、マージ処理領域に含まれたコーディングブロックCU3に対するマージ候補は、以下のスキャン順序にしたがって候補ブロックをスキャンして導出される場合がある。
(y1,y3,y4,y0,y2,x1,x3,x4,x0,x2)
ただし、上記に例示されている候補ブロックのスキャン順序は、本発明の一例示を示すものに過ぎず、上記の例示と相違する順序にしたがって候補ブロックをスキャンすることも可能である。または、現在ブロックまたはマージ処理領域のサイズまたは形状のうち少なくとも一つに基づいて、スキャン順序を適応的に決定することもできる。
マージ処理領域は、正方形または非正方形である場合がある。マージ処理領域を決定するための情報がビットストリームを介してシグナリングされる場合がある。情報は、マージ処理領域の形状を示す情報またはマージ処理領域のサイズを示す情報のうち少なくとも一つを含む場合がある。マージ処理領域が非正方形状である場合、マージ処理領域のサイズを示す情報、マージ処理領域の幅および/または高さを示す情報またはマージ処理領域の幅と高さの比率を示す情報のうち少なくとも一つがビットストリームを介してシグナリングされる場合がある。
マージ処理領域のサイズは、ビットストリームを介してシグナリングされる情報、ピクチャ解像度、スライスのサイズまたはタイルサイズのうち少なくとも一つに基づいて決定される場合がある。
マージ処理領域に含まれたブロックに対して動き補償予測が行われると、動き補償予測が行われたブロックの動き情報に基づいて導出されたモーション情報候補をモーション情報テーブルに追加する場合がある。
ただし、マージ処理領域に含まれたブロックから導出されたモーション情報候補をモーション情報テーブルに追加する場合、ブロックよりも実際に符号化/復号が遅れたマージ処理領域内の他のブロックの符号化/復号の時に、ブロックから導出されたモーション情報候補を使用する場合が発生し得る。すなわち、マージ処理領域に含まれたブロックの符号化/復号の時に、ブロック間の依存性を排除する必要があるにもかかわらず、マージ処理領域に含まれた他のブロックの動き情報を用いて動き予測補償が行われる場合が発生し得る。このような問題を解消するために、マージ処理領域に含まれたブロックの符号化/復号が完了しても、符号化/復号が完了したブロックの動き情報をモーション情報テーブルに追加しない場合がある。
または、マージ処理領域内の予め画定された位置のブロックのみを用いて、モーション情報テーブルをアップデートする場合がある。予め画定された位置は、マージ処理領域内の左側上端に位置するブロック、右側上端に位置するブロック、左側下端に位置するブロック、右側下端に位置するブロック、中央に位置するブロック、右側境界に隣接するブロックまたは下端境界に隣接するブロックのうち少なくとも一つを含む場合がある。一例として、マージ処理領域内の右側下端コーナに隣接するブロックの動き情報のみをモーション情報テーブルにアップデートして、他のブロックの動き情報は、モーション情報テーブルにアップデートしない場合がある。
または、マージ処理領域に含まれたすべてのブロックの復号が完了した後、ブロックから導出されたモーション情報候補をモーション情報テーブルに追加する場合がある。すなわち、マージ処理領域に含まれたブロックが符号化/復号される間には、モーション情報テーブルがアップデートされない場合がある。
一例として、マージ処理領域に含まれたブロックに対して動き補償予測が行われると、ブロックから導出されたモーション情報候補を予め定義された順序でモーション情報テーブルに追加する場合がある。ここで、予め定義された順序は、マージ処理領域またはコーディングツリーユニット内のコーディングブロックのスキャン順序にしたがって決定される場合がある。スキャン順序は、ラスタースキャン、水平スキャン、垂直スキャンまたはジグザグスキャンのうち少なくとも一つである場合がある。または、予め定義された順序は、各ブロックの動き情報または同一の動き情報を有するブロックの個数に基づいて決定される場合がある。
または、単方向モーション情報を含むモーション情報候補を双方向モーション情報を含むモーション情報候補よりも先にモーション情報テーブルに追加する場合がある。これとは逆に、双方向モーション情報を含むモーション情報候補を単方向モーション情報を含むモーション情報候補よりも先にモーション情報テーブルに追加することもできる。
または、マージ処理領域またはコーディングツリーユニット内の使用頻度が高い順序または使用頻度が低い順序にしたがって、モーション情報候補をモーション情報テーブルに追加する場合がある。
現在ブロックがマージ処理領域に含まれており、現在ブロックのマージ候補リストに含まれたマージ候補の個数が最大個数より少ない場合、モーション情報テーブルに含まれたモーション情報候補をマージ候補リストに追加する場合がある。この場合、現在ブロックと同一のマージ処理領域に含まれたブロックから導出されたモーション情報候補は、現在ブロックのマージ候補リストに追加されないように設定される場合がある。
または、現在ブロックがマージ処理領域に含まれた場合、モーション情報テーブルに含まれたモーション情報候補を使用しないように設定する場合がある。すなわち、現在ブロックのマージ候補リストに含まれたマージ候補の個数が最大個数より少ない場合であっても、モーション情報テーブルに含まれたモーション情報候補をマージ候補リストに追加しない場合がある。
他の例として、マージ処理領域またはコーディングツリーユニットに対するモーション情報テーブルを構成する場合がある。このモーション情報テーブルは、マージ処理領域に含まれたブロックのモーション情報を臨時に格納する役割を果たす。一般的なモーション情報テーブルとマージ処理領域またはコーディングツリーユニットのためのモーション情報テーブルを区別するために、マージ処理領域またはコーディングツリーユニットのためのモーション情報テーブルを臨時モーション情報テーブルと称する。なお、臨時モーション情報テーブルに格納されているモーション情報候補を臨時モーション情報候補と称する。
図20は、臨時モーション情報テーブルを示す図である。
コーディングツリーユニットまたはマージ処理領域のための臨時モーション情報テーブルを構成する場合がある。コーディングツリーユニットまたはマージ処理領域に含まれた現在ブロックに対して動き補償予測が行われた場合、ブロックの動き情報は、モーション情報テーブルHmvpCandListに追加しない場合がある。その代わりに、ブロックから導出された臨時モーション情報候補を臨時モーション情報テーブルHmvpMERCandListに追加する場合がある。すなわち、臨時モーション情報テーブルに追加された臨時モーション情報候補は、モーション情報テーブルに追加されない場合がある。これにより、モーション情報テーブルは、現在ブロックを含むコーディングツリーユニットまたはマージ処理領域に含まれたブロックのモーション情報に基づいて導出されたモーション情報候補を含まない場合がある。
または、マージ処理領域に含まれたブロックの一部ブロックの動き情報のみを臨時モーション情報テーブルに追加する場合がある。一例として、マージ処理領域内の予め画定された位置のブロックのみをモーション情報テーブルをアップデートするために用いる場合がある。予め画定された位置は、マージ処理領域内の左側上端に位置するブロック、右側上端に位置するブロック、左側下端に位置するブロック、右側下端に位置するブロック、中央に位置するブロック、右側境界に隣接するブロックまたは下端境界に隣接するブロックのうち少なくとも一つを含む場合がある。一例として、マージ処理領域内の右側下端コーナに隣接するブロックの動き情報のみを臨時モーション情報テーブルに追加し、他のブロックの動き情報は、臨時モーション情報テーブルに追加しない場合がある。
臨時モーション情報テーブルが含む場合がある臨時モーション情報候補の最大個数は、モーション情報テーブルが含む場合があるモーション情報候補の最大個数と同様に設定される場合がある。または、臨時モーション情報テーブルが含む場合がある臨時モーション情報候補の最大個数は、コーディングツリーユニットまたはマージ処理領域のサイズによって決定される場合がある。または、臨時モーション情報テーブルが含む場合がある臨時モーション情報候補の最大個数をモーション情報テーブルが含む場合があるモーション情報候補の最大個数より少なく設定する場合がある。
コーディングツリーユニットまたはマージ処理領域に含まれた現在ブロックは、当該コーディングツリーユニットまたは当該マージ処理領域に対する臨時モーション情報テーブルを用いないように設定する場合がある。すなわち、現在ブロックのマージ候補リストに含まれたマージ候補の個数が閾値より小さい場合、モーション情報テーブルに含まれたモーション情報候補をマージ候補リストに追加し、臨時モーション情報テーブルに含まれた臨時モーション情報候補は、マージ候補リストに追加しない場合がある。これにより、現在ブロックと同一のコーディングツリーユニットまたは同一のマージ処理領域に含まれた他のブロックの動き情報を現在ブロックの動き補償予測に用いない場合がある。
コーディングツリーユニットまたはマージ処理領域に含まれたすべてのブロックの符号化/復号が完了すると、モーション情報テーブルと臨時モーション情報テーブルを併合する場合がある。
図21は、モーション情報テーブルと臨時モーション情報テーブルを併合する例を示す図である。
コーディングツリーユニットまたはマージ処理領域に含まれたすべてのブロックの符号化/復号が完了すると、図21に図示されている例のように、臨時モーション情報テーブルに含まれた臨時モーション情報候補をモーション情報テーブルにアップデートする場合がある。
この場合、臨時モーション情報テーブルに含まれた臨時モーション情報候補は、臨時モーション情報テーブルに挿入された順(すなわち、インデックス値の昇順または降順)にモーション情報テーブルに追加される場合がある。
他の例として、予め定義された順序にしたがって、臨時モーション情報テーブルに含まれた臨時モーション情報候補をモーション情報テーブルに追加する場合がある。ここで、予め定義された順序は、マージ処理領域またはコーディングツリーユニット内のコーディングブロックのスキャン順序にしたがって決定される場合がある。スキャン順序は、ラスタースキャン、水平スキャン、垂直スキャンまたはジグザグスキャンのうち少なくとも一つである場合がある。または、予め定義された順序は、各ブロックの動き情報または同一の動き情報を有するブロックの個数に基づいて判定される場合がある。
または、単方向モーション情報を含む臨時モーション情報候補を双方向モーション情報を含む臨時モーション情報候補よりも先にモーション情報テーブルに追加する場合がある。これとは逆に、双方向モーション情報を含む臨時モーション情報候補を単方向モーション情報を含む臨時モーション情報候補よりも先にモーション情報テーブルに追加することもできる。
または、マージ処理領域またはコーディングツリーユニット内の使用頻度が高い順序または使用頻度が低い順序にしたがって、臨時モーション情報候補をモーション情報テーブルに追加する場合がある。
臨時モーション情報テーブルに含まれた臨時モーション情報候補をモーション情報テーブルに追加する場合において、臨時モーション情報候補に対する重複性検査を行う場合がある。一例として、臨時モーション情報テーブルに含まれた臨時モーション情報候補と同一のモーション情報候補がモーション情報テーブルに予め格納されている場合、臨時モーション情報候補をモーション情報テーブルに追加しない場合がある。この場合、重複性検査は、モーション情報テーブルに含まれたモーション情報候補のうち一部を対象に行われる場合がある。一例として、インデックスが閾値以上または閾値以下であるモーション情報候補を対象に重複性検査が行われる場合がある。一例として、臨時モーション情報候補が予め定義された値以上のインデックスを有するモーション情報候補と同一である場合には、臨時モーション情報候補をモーション情報テーブルに追加しない場合がある。
現在ブロックと同一のコーディングツリーユニットまたは同一のマージ処理領域に含まれたブロックから導出されたモーション情報候補が現在ブロックのマージ候補として用いられることを制限する場合がある。このために、モーション情報候補に対してブロックのアドレス情報を追加格納する場合がある。ブロックのアドレス情報は、ブロックの位置、ブロックのアドレス、ブロックのインデックス、ブロックが含まれたマージ処理領域の位置、ブロックが含まれたマージ処理領域のアドレス、ブロックが含まれたマージ処理領域のインデックス、ブロックが含まれたコーディングツリー領域の位置、ブロックが含まれたコーディングツリー領域のアドレスまたはブロックが含まれたコーディングツリー領域のインデックスのうち少なくとも一つを含む場合がある。
イントラ予測は、現在ブロックの周辺に符号化/復号が完了した復元サンプルを用いて、現在ブロックを予測するものである。この場合、現在ブロックのイントラ予測には、インループフィルタが適用される前の復元サンプルが用いられる場合がある。
イントラ予測技法は、マトリックス(Matrix)に基づくイントラ予測および周辺復元サンプルとの方向性を考慮した一般イントラ予測を含む。現在ブロックのイントラ予測技法を指示する情報がビットストリームを介してシグナリングされる場合がある。情報は、1ビットのフラグである場合がある。または、現在ブロックの位置、サイズ、形状または近隣ブロックのイントラ予測技法のうち少なくとも一つに基づいて、現在ブロックのイントラ予測技法を決定する場合がある。一例として、現在ブロックがピクチャバウンダリにわたり存在する場合、現在ブロックには、メトリックスに基づくイントラ予測が適用されないように設定される場合がある。
マトリックスに基づくイントラ予測は、符号化器および復号器で予め格納されたマトリックスと、現在ブロック周辺の復元サンプルとの行列乗算に基づいて、現在ブロックの予測ブロックを得る方法である。予め格納された複数個のマトリックスのいずれか一つを特定するための情報がビットストリームを介してシグナリングされる場合がある。復号器は、情報および現在ブロックのサイズに基づいて、現在ブロックのイントラ予測のためのマトリックスを決定する場合がある。
一般イントラ予測は、非方向性イントラ予測モードまたは方向性イントラ予測モードに基づいて、現在ブロックに対する予測ブロックを得る方法である。以下、図面を参照して、一般イントラ予測に基づくイントラ予測実行過程についてより詳細に説明する。
図22は、本発明の一実施形態によるイントラ予測方法のフローチャートである。
現在ブロックの参照サンプルラインを決定する場合がある(S2201)。参照サンプルラインは、現在ブロックの上端および/または左側からk番目離れたラインに含まれた参照サンプルの集合を意味する。参照サンプルは、現在ブロック周辺符号化/復号が完了した復元サンプルから導出される場合がある。
複数の参照サンプルラインのうち現在ブロックの参照サンプルラインを識別するインデックス情報がビットストリームを介してシグナリングされる場合がある。一例として、現在ブロックの参照サンプルラインを特定するためのインデックス情報intra_luma_ref_idxがビットストリームを介してシグナリングされる場合がある。インデックス情報は、コーディングブロック単位でシグナリングされる場合がある。
複数の参照サンプルラインは、現在ブロックに上端および/または左側1番目のライン、2番目のライン、3番目のラインのうち少なくとも一つを含む場合がある。複数個の参照サンプルラインのうち現在ブロックの上端に隣接する行および現在ブロックの左側に隣接する列で構成された参照サンプルラインを隣接参照サンプルラインと称し、それ以外の参照サンプルラインを非隣接参照サンプルラインと称することもできる。
表1は、候補参照サンプルラインそれぞれに割り当てられるインデックスを示すものである。
Figure 2024001181000005
現在ブロックの位置、サイズ、形状または近隣ブロックの予測符号化モードのうち少なくとも一つに基づいて、現在ブロックの参照サンプルラインを決定することもできる。一例として、現在ブロックが、ピクチャ、タイル、スライスまたはコーディングツリーユニットの境界に接する場合、隣接参照サンプルラインを現在ブロックの参照サンプルラインに決定する場合がある。
参照サンプルラインは、現在ブロックの上端に位置する上端参照サンプルおよび現在ブロックの左側に位置する左側参照サンプルを含む場合がある。上端参照サンプルおよび左側参照サンプルは、現在ブロック周辺の復元サンプルから導出される場合がある。復元サンプルは、インループフィルタが適用される前の状態である場合がある。
次に、現在ブロックのイントラ予測モードを決定する場合がある(S2202)。現在ブロックのイントラ予測モードは、非方向性イントラ予測モードまたは方向性イントラ予測モードのうち少なくとも一つが現在ブロックのイントラ予測モードに判定される場合がある。非方向性イントラ予測モードは、プランナーおよびDCを含み、方向性イントラ予測モードは、左下端対角方向から右上端対角方向まで33個または65個のモードを含む。
図23は、イントラ予測モードを示す図である。
図23の(a)は、35個のイントラ予測モードを示すものであり、図23の(b)は、67個のイントラ予測モードを示すものである。
図23に図示されているよりもさらに多い数あるいはさらに少ない数のイントラ予測モードが定義されることもできる。
現在ブロックに隣接する近隣ブロックのイントラ予測モードに基づいて、MPM(Most Probable Mode)を設定する場合がある。ここで、近隣ブロックは、現在ブロックの左側に隣接する左側近隣ブロックおよび現在ブロックの上端に隣り合う上端近隣ブロックを含む場合がある。
MPMリストに含まれるMPMの個数は、符号化器および復号器で予め設定される場合がある。一例として、MPMの個数は、3個、4個、5個あるいは6個である場合がある。または、MPMの個数を示す情報がビットストリームを介してシグナリングされる場合がある。または、近隣ブロックの予測符号化モード、現在ブロックのサイズ、形状または参照サンプルラインインデックスのうち少なくとも一つに基づいてMPMの個数が決定される場合がある。一例として、隣接参照サンプルラインが現在ブロックの参照サンプルラインに決定された場合には、N個のMPMが用いられる一方、非隣接参照サンプルラインが現在ブロックの参照サンプルラインに決定された場合には、M個のMPMが用いられる場合がある。Mは、Nより小さい自然数であり、一例として、Nは6であり、Mは5、4または3である場合がある。これにより、現在ブロックの参照サンプルラインのインデックスが0であり、MPMフラグが真の場合、現在ブロックのイントラ予測モードは、6個の候補イントラ予測モードのいずれか一つに判定される一方、現在ブロックの参照サンプルラインのインデックスが0より大きく、MPMフラグが真の場合、現在ブロックのイントラ予測モードは、5個の候補イントラ予測モードのいずれか一つに判定される場合がある。
または、現在ブロックの参照サンプルラインのインデックスとは無関係に固定された個数(例えば、6個または5個)のMPM候補を使用することもできる。
複数のMPMを含むMPMリストを生成し、現在ブロックのイントラ予測モードと同一のMPMがMPMリストに含まれているか否かを示す情報をビットストリームを介してシグナリングする場合がある。情報は、1ビットのフラグであり、MPMフラグと称する場合がある。MPMフラグが現在ブロックと同一のMPMがMPMリストに含まれていることを示す場合、MPMのうち一つを識別するインデックス情報がビットストリームを介してシグナリングされる場合がある。一例として、複数のMPMのいずれか一つを特定するインデックス情報mpm_idxがビットストリームを介してシグナリングされる場合がある。インデックス情報によって特定されたMPMが現在ブロックのイントラ予測モードに設定される場合がある。MPMフラグが現在ブロックと同一のMPMがMPMリストに含まれていないことを示す場合、MPM以外の残りのイントラ予測モードのいずれか一つを指示する残りのモード情報がビットストリームを介してシグナリングされる場合がある。残りのモード情報は、MPM以外の残りのイントラ予測モードにインデックスを再度割り当てた時に、現在ブロックのイントラ予測モードに対応するインデックス値を示す。復号器では、MPMを昇順に整列し、残りのモード情報をMPMと比較して現在ブロックのイントラ予測モードを決定する場合がある。一例として、残りのモード情報がMPMと同一であるか小さい場合、残りのモード情報に1を加算して、現在ブロックのイントラ予測モードを導出する場合がある。
現在ブロックのイントラ予測モードの導出時に、MPMのうち一部と残りのモード情報に対する比較は省略される場合がある。一例として、MPMのうち非方向性イントラ予測モードであるMPMは、比較対象から除外される場合がある。非方向性イントラ予測モードがMPMに設定された場合、残りのモード情報は、方向性イントラ予測モードを示すことが明確であるため、非方向性イントラ予測モード以外の残りのMPMと残りのモード情報との比較により、現在ブロックのイントラ予測モードを導出する場合がある。非方向性イントラ予測モードを比較対象として除外する代わりに、残りのモード情報に非方向性イントラ予測モードの個数を加算した後、その結果値を残りのMPMと比較する場合がある。
デフォルトモードをMPMに設定する代わりに、現在ブロックのイントラ予測モードがデフォルトモードであるか否かを示す情報をビットストリームを介してシグナリングする場合がある。情報は、1ビットのフラグであり、フラグをデフォルトモードフラグと称する場合がある。デフォルトモードフラグは、MPMフラグが現在ブロックと同一のMPMがMPMリストに含まれていることを示す場合に限ってシグナリングされる場合がある。上述のように、デフォルトモードは、プランナー、DC、垂直方向モードまたは水平方向モードのうち少なくとも一つを含む場合がある。一例として、プランナーがデフォルトモードに設定された場合、デフォルトモードフラグは、現在ブロックのイントラ予測モードがプランナーであるか否かを指示する場合がある。デフォルトモードフラグが現在ブロックのイントラ予測モードがデフォルトモードではないことを示す場合、インデックス情報によって指示されるMPMのうち一つを現在ブロックのイントラ予測モードに設定する場合がある。
デフォルトモードフラグが用いられる場合、デフォルトモードと同一のイントラ予測モードは、MPMに設定されないように設定される場合がある。一例として、デフォルトモードフラグが現在ブロックのイントラ予測モードがプランナーであるか否かを指示する場合、プランナーに該当するMPM以外の5個のMPMを用いて、現在ブロックのイントラ予測モードを導出する場合がある。
複数個のイントラ予測モードがデフォルトモードに設定された場合、デフォルトモードのいずれか一つを指示するインデックス情報がさらにシグナリングされる場合がある。現在ブロックのイントラ予測モードは、インデックス情報が示すデフォルトモードに設定される場合がある。
現在ブロックの参照サンプルラインのインデックスが0ではない場合には、デフォルトモードを用いることができないように設定する場合がある。一例として、非隣接参照サンプルラインが現在ブロックの参照サンプルラインに決定された場合、DCモードまたはプランナーモードなどの非方向性イントラ予測モードを使用しないように設定する場合がある。これにより、参照サンプルラインのインデックスが0ではない場合には、デフォルトモードフラグをシグナリングせず、デフォルトモードフラグの値を予め定義された値(すなわち、偽)に設定する場合がある。
現在ブロックのイントラ予測モードが判定されると、判定されたイントラ予測モードに基づいて、現在ブロックに対する予測サンプルを得る場合がある(S2203)。
DCモードが選択された場合、参照サンプルの平均値に基づいて、現在ブロックに対する予測サンプルが生成される。具体的には、予測ブロック内の全体サンプルの値は、参照サンプルの平均値に基づいて生成される場合がある。平均値は、現在ブロックの上端に位置する上端参照サンプルおよび現在ブロックの左側に位置する左側参照サンプルのうち少なくとも一つを用いて導出される場合がある。
現在ブロックの形状に応じて、平均値を導出するために用いられる参照サンプルの個数または範囲が異なり得る。一例として、現在ブロックが、幅が高さより大きい非正方形ブロックである場合、上端参照サンプルのみを用いて平均値を計算する場合がある。一方、現在ブロックが、幅が高さより小さい非正方形ブロックである場合、左側参照サンプルのみを用いて平均値を計算する場合がある。すなわち、現在ブロックの幅および高さが相違する場合、長さがより長い側に隣接する参照サンプルのみを用いて平均値を計算する場合がある。または、現在ブロックの幅と高さの比率に基づいて、上端参照サンプルのみを用いて平均値を計算するか否かまたは左側参照サンプルのみを用いて平均値を計算するか否かを判定する場合がある。
プランナーモードが選択された場合、水平方向予測サンプルと垂直方向予測サンプルを用いて、予測サンプルを得る場合がある。ここで、水平方向予測サンプルは、予測サンプルと同一の水平線上に位置する左側参照サンプルおよび右側参照サンプルに基づいて得られ、垂直方向予測サンプルは、予測サンプルと同一の垂直線上に位置する上端参照サンプルおよび下端参照サンプルに基づいて得られる。ここで、右側参照サンプルは、現在ブロックの右側上端コーナに隣接する参照サンプルをコピーして生成され、下端参照サンプルは、現在ブロックの左側下端コーナに隣接する参照サンプルをコピーして生成される場合がある。水平方向予測サンプルは、左側参照サンプルおよび右側参照サンプルの加重和演算に基づいて得られ、垂直方向予測サンプルは、上端参照サンプルおよび下端参照サンプルの加重和演算に基づいて得られる場合がある。この場合、各参照サンプルに付与される加重値は、予測サンプルの位置によって決定される場合がある。予測サンプルは、水平方向予測サンプルおよび垂直方向予測サンプルの平均演算または加重和演算に基づいて得られる場合がある。加重和演算が行われる場合、予測サンプルの位置に基づいて、水平方向予測サンプルおよび垂直方向予測サンプルに付与される加重値を決定する場合がある。
方向性予測モードが選択される場合、選択された方向性予測モードの予測方向(または予測角度)を示すパラメータを決定する場合がある。下記表2は、イントラ予測モード別のイントラ方向パラメータintraPredAngを示すものである。
Figure 2024001181000006
表2は、35個のイントラ予測モードが定義されている時に、インデックスが2~34のいずれか一つであるイントラ予測モードそれぞれのイントラ方向パラメータを示す。33個よりもさらに多い方向性イントラ予測モードが定義されている場合、表2をより細分化し、方向性イントラ予測モードそれぞれのイントラ方向パラメータを設定する場合がある。
現在ブロックの上端参照サンプルおよび左側参照サンプルを一列に配列した後、イントラ方向パラメータの値に基づいて、予測サンプルを得る場合がある。この場合、イントラ方向パラメータの値が負数である場合、左側参照サンプルと上端参照サンプルを一列に配列する場合がある。
図24および図25は、参照サンプルを一列に配列する一次元配列の例示を示す図である。
図24は、参照サンプルを垂直方向に配列する垂直方向一次元配列の例示を示すものであり、図25は、参照サンプルを水平方向に配列する水平方向一次元配列の例示を示すものである。35個のイントラ予測モードが定義された場合を仮定して、図24および図25の実施形態を説明する。
イントラ予測モードインデックスが11~18のいずれか一つである場合、上端参照サンプルを反時計方向に回転した水平方向一次元配列を適用し、イントラ予測モードインデックスが19~25のいずれか一つである場合、左側参照サンプルを時計方向に回転した垂直方向一次元配列を適用する場合がある。参照サンプルを一列に配列するのに際し、イントラ予測モード角度を考慮する場合がある。
イントラ方向パラメータに基づいて、参照サンプル決定パラメータを決定する場合がある。参照サンプル決定パラメータは、参照サンプルを特定するための参照サンプルインデックスおよび参照サンプルに適用される加重値を決定するための加重値パラメータを含む場合がある。
参照サンプルインデックスiIdxおよび加重値パラメータifactは、それぞれ、以下の数式4および数式5により得られる場合がある。
Figure 2024001181000007
Figure 2024001181000008
数式4および数式5において、Pangは、イントラ方向パラメータを示す。参照サンプルインデックスiIdxによって特定される参照サンプルは、整数ペル(Integer pel)に該当する。
予測サンプルを導出するために、少なくとも一つ以上の参照サンプルを特定する場合がある。具体的には、予測モードの勾配を考慮して、予測サンプルを導出するために用いられる参照サンプルの位置を特定する場合がある。一例として、参照サンプルインデックスiIdxを用いて、予測サンプルを導出するために用いられる参照サンプルを特定する場合がある。
この場合、イントラ予測モードの勾配が一つの参照サンプルでは表現されない場合、複数の参照サンプルを補間して予測サンプルを生成する場合がある。一例として、イントラ予測モードの勾配が予測サンプルと第1参照サンプルとの間の勾配と、予測サンプルと第2参照サンプルとの間の勾配との間の値である場合、第1参照サンプルおよび第2参照サンプルを補間して予測サンプルを得る場合がある。すなわち、イントラ予測角度に沿うアンギュラライン(Angular Line)が整数ペルに位置した参照サンプルを通過しない場合、アンギュララインが通過する位置の左右または上下に隣接位置する参照サンプルを補間して予測サンプルを得る場合がある。
下記数式6は、参照サンプルに基づいて、予測サンプルを得る例を示すものである。
Figure 2024001181000009
数式6において、Pは、予測サンプルを示し、Ref_1Dは、一次元配列された参照サンプルのいずれか一つを示す。この場合、参照サンプルの位置は、予測サンプルの位置(x,y)および参照サンプルインデックスiIdxによって決定される場合がある。
イントラ予測モードの勾配が一つの参照サンプルで表現可能な場合、加重値パラメータifactは0に設定される。これにより、数式6は、以下の数式7のように簡素化される場合がある。
Figure 2024001181000010
複数のイントラ予測モードに基づいて現在ブロックに対するイントラ予測を行うこともできる。一例として、予測サンプル別にイントラ予測モードを導出し、それぞれの予測サンプルに割り当てられたイントラ予測モードに基づいて予測サンプルを導出する場合がある。
または、領域別にイントラ予測モードを導出し、それぞれの領域に割り当てられたイントラ予測モードに基づいて、各領域に対するイントラ予測を行う場合がある。ここで、領域は、少なくとも一つのサンプルを含む場合がある。領域のサイズまたは形状のうち少なくとも一つは、現在ブロックのサイズ、形状またはイントラ予測モードのうち少なくとも一つに基づいて適応的に決定される場合がある。または、符号化器および復号器で、現在ブロックのサイズまたは形状とは独立的に、領域のサイズまたは形状のうち少なくとも一つが予め画定されていてもよい。
図26は、方向性イントラ予測モードがx軸と平行な直線と形成する角度を例示した図である。
図26に示れている例のように、方向性予測モードは、左側下端対角方向から右側上端対角方向の間に存在する場合がある。x軸と方向性予測モードが形成する角度から説明すると、方向性予測モードは、45度(左側下端対角方向)から-135度(右側上端対角方向)の間に存在する場合がある。
現在ブロックが非正方形状である場合、現在ブロックのイントラ予測モードによって、イントラ予測角度に沿うアンギュラライン上に位置する参照サンプルのうち予測サンプルにより近い参照サンプルの代わりに、予測サンプルからより離れた参照サンプルを用いて予測サンプルを導出する場合があり得る。
図27は、現在ブロックが非正方形状である場合、予測サンプルが得られる態様を示す図である。
一例として、図27の(a)に図示されている例のように、現在ブロックが幅が高さより大きい非正方形であり、現在ブロックのイントラ予測モードが0度から45度の間の角度を有する方向性イントラ予測モードであるものと仮定する。上記の場合、現在ブロックの右側列付近の予測サンプルAを導出する時に、角度に沿うアンギュラモード上に位置する参照サンプルのうち予測サンプルと近い上端参照サンプルTの代わりに予測サンプルから離れた左側参照サンプルLを用いる場合があり得る。
他の例として、図27の(b)に図示されている例のように、現在ブロックが高さが幅より大きい非正方形であり、現在ブロックのイントラ予測モードが-90度から-135度の間である方向性イントラ予測モードであるものと仮定する。上記の場合、現在ブロックの下端行付近の予測サンプルAを導出する時に、角度に沿うアンギュラモード上に位置する参照サンプルのうち予測サンプルと近い左側参照サンプルLの代わりに予測サンプルから離れた上端参照サンプルTを用いる場合があり得る。
上記のような問題を解消するために、現在ブロックが非正方形である場合、現在ブロックのイントラ予測モードを逆方向のイントラ予測モードに置換する場合がある。これにより、非正方形ブロックに対しては、図23に図示されている方向性予測モードよりもさらに大きいあるいはさらに小さい角度を有する方向性予測モードを使用する場合がある。このような方向性イントラ予測モードをワイドアングルイントラ予測モードと定義する場合がある。ワイドアングルイントラ予測モードは、45度~-135度の範囲に属しない方向性イントラ予測モードを示す。
図28は、ワイドアングルイントラ予測モードを示す図である。
図28に図示されている例において、インデックスが-1から-14であるイントラ予測モードおよびインデックスが67から80の間であるイントラ予測モードがワイドアングルイントラ予測モードを示す。
図28では、角度が45度より大きい14個のワイドアングルイントラ予測モード(-1から-14)および角度が-135度より小さい14個のワイドアングルイントラ予測モード(67から80)を例示しているが、これよりもさらに多い数またはさらに少ない数のワイドアングルイントラ予測モードが定義される場合がある。
ワイドアングルイントラ予測モードが使用される場合、上端参照サンプルの長さは2W+1に設定され、左側参照サンプルの長さは2H+1に設定される場合がある。
ワイドアングルイントラ予測モードを使用するに伴い、図28の(a)に図示されているサンプルAは、参照サンプルTを用いて予測され、図28の(b)に図示されているサンプルAは、参照サンプルLを用いて予測される場合がある。
既存のイントラ予測モードとN個のワイドアングルイントラ予測モードを加算して、総67+N個のイントラ予測モードを使用する場合がある。一例として、表3は、20個のワイドアングルイントラ予測モードが定義された場合、イントラ予測モードのイントラ方向のパラメータを示すものである。
Figure 2024001181000011
現在ブロックが非正方形であり、S2502ステップで得られた現在ブロックのイントラ予測モードが変換範囲に属する場合、現在ブロックのイントラ予測モードをワイドアングルイントラ予測モードに変換する場合がある。変換範囲は、現在ブロックのサイズ、形状または比率のうち少なくとも一つに基づいて決定される場合がある。ここで、の比率は、現在ブロックの幅と高さとの比率を示す場合がある。
現在ブロックが幅が高さより大きい非正方形である場合、変換範囲は、右側上端対角方向のイントラ予測モードインデックス(例えば、66)から(右側上端対角方向であるイントラ予測モードのインデックス-N)に設定される場合がある。ここで、Nは、現在ブロックの比率に基づいて決定される場合がある。現在ブロックのイントラ予測モードが変換範囲に属する場合、イントラ予測モードをワイドアングルイントラ予測モードに変換する場合がある。変換は、イントラ予測モードから予め定義された値を減算するものである場合があり、予め定義された値は、ワイドアングルイントラ予測モード以外のイントラ予測モードの総個数(例えば、67)である場合がある。
実施形態によって、番号66から番号53の間のイントラ予測モードは、それぞれ、番号-1から番号-14の間のワイドアングルイントラ予測モードに変換される場合がある。
現在ブロックが高さが幅より大きい非正方形である場合、変換範囲は、左側下端対角方向のイントラ予測モードインデックス(例えば、2)から(左側下端対角方向のイントラ予測モードのインデックス+M)に設定される場合がある。ここで、Mは、現在ブロックの比率に基づいて決定される場合がある。現在ブロックのイントラ予測モードが変換範囲に属する場合、イントラ予測モードをワイドアングルイントラ予測モードに変換する場合がある。変換は、イントラ予測モードに予め定義された値を加算するものである場合があり、予め定義された値は、ワイドアングルイントラ予測モード以外の方向性イントラ予測モードの総個数(例えば、65)である場合がある。
実施形態によって、番号2から番号15の間のイントラ予測モードのそれぞれは、番号67から番号80の間のワイドアングルイントラ予測モードに変換される場合がある。
以下、変換範囲に属するイントラ予測モードをワイドアングルイントラ代替予測モードと称する。
変換範囲は、現在ブロックの比率に基づいて決定される場合がある。一例として、表4および表5は、それぞれ、ワイドアングルイントラ予測モード以外の35個のイントラ予測モードが定義された場合と、67個のイントラ予測モードが定義された場合、変換範囲を示す。
Figure 2024001181000012
Figure 2024001181000013
表4および表5に示れている例のように、現在ブロックの比率に応じて、変換範囲に含まれるワイドアングルイントラ代替予測モードの個数が相違する場合がある。
現在ブロックの比率をより細分化して、以下の表6のように変換範囲を設定することもできる。
Figure 2024001181000014
非隣接参照サンプルラインが現在ブロックの参照サンプルラインに決定された場合、または、複数の参照サンプルラインのいずれか一つを選択するマルチラインイントラ予測符号化方法が使用された場合において、ワイドアングルイントラ予測モードが使用されないように設定される場合がある。すなわち、現在ブロックが非正方形であり、現在ブロックのイントラ予測モードが変換範囲に属する場合であっても、現在ブロックのイントラ予測モードをワイドアングルイントラ予測モードに変換しない場合がある。
または、現在ブロックのイントラ予測モードがワイドアングルイントラ予測モードに判定された場合、非隣接参照サンプルラインを現在ブロックの参照サンプルラインとして利用可能ではないものに設定するか、複数の参照サンプルラインのいずれか一つを選択するマルチラインイントラ予測符号化方法が使用されないように設定する場合がある。マルチラインイントラ予測符号化方法が使用されない場合、隣接参照サンプルラインが現在ブロックの参照サンプルラインに決定される場合がある。
ワイドアングルイントラ予測モードが使用されない場合、refWおよびrefHをnTbWとnTbHの和に設定する場合がある。これにより、左側上端参照サンプル以外、現在ブロックとの距離がiである非隣接レファレンスサンプルは、(nTbW+nTbH+offsetX[i])個の上端参照サンプルと(nTbW+nTbH+offsetY[i])個の左側参照サンプルを含む場合がある。すなわち、現在ブロックとの距離がiである非隣接レファレンスサンプルは、(2nTbW+2nTbH+offsetX[i]+offsetY[i]+1)個の参照サンプルを含む場合がある。例えば、whRatioの値が1より大きい場合には、offsetXの値をoffsetYの値より大きく設定する場合がある。一例として、offsetXの値は1に設定され、offsetYの値は0に設定される場合がある。一方、whRatioの値が1より小さい場合には、offsetXの値よりoffsetYの値をより大きく設定する場合がある。一例として、offsetXの値は0に設定され、offsetYの値は1に設定される場合がある。
既存のイントラ予測モードにさらにワイドアングルイントラ予測モードが使用されることによって、ワイドアングルイントラ予測モードを符号化するために必要なリソースが増加し、符号化効率が低下し得る。そのため、ワイドアングルイントラ予測モードをそのまま符号化する代わりに、ワイドアングルイントラ予測モードに対する代替イントラ予測モードを符号化し、符号化効率を向上させる場合がある。
一例として、現在ブロックが番号67のワイドアングルイントラ予測モードを用いて符号化された場合、番号67のワイドアングル代替イントラ予測モードである番号2を現在ブロックのイントラ予測モードに符号化する場合がある。また、現在ブロックが番号-1のワイドアングルイントラ予測モードに符号化された場合、番号-1のワイドアングル代替イントラ予測モードである番号66を現在ブロックのイントラ予測モードに符号化する場合がある。
復号器では、現在ブロックのイントラ予測モードを復号し、復号されたイントラ予測モードが変換範囲に含まれるか否かを判断する場合がある。復号されたイントラ予測モードがワイドアングル代替イントラ予測モードである場合、イントラ予測モードをワイドアングルイントラ予測モードに変換する場合がある。
または、現在ブロックがワイドアングルイントラ予測モードに符号化された場合、ワイドアングルイントラ予測モードをそのまま符号化することもできる。
イントラ予測モードの符号化は、上述のMPMリストに基づいて行われる場合がある。具体的には、近隣ブロックがワイドアングルイントラ予測モードに符号化された場合、ワイドアングルイントラ予測モードに対応するワイドアングル代替イントラ予測モードに基づいて、MPMを設定する場合がある。
原本映像から予測映像を差分して残差映像を導出する場合がある。この場合、残差映像を周波数ドメインに変更した時に、周波数成分のうち高周波成分を除去しても、映像の主観的画質は大きく劣らない。これにより、高周波成分の値を小さく変換するか、高周波成分の値を0に設定すると、視覚的歪みが大きく発生しないとともに、圧縮効率を増加させる場合がある効果がある。上記の特性を反映して、残差映像を二次元周波数成分に分解するために現在ブロックを変換する場合がある。変換は、DCT(Discrete Cosine Transform)またはDST(Discrete Sine Tranform)などの変換技法を用いて行われる場合がある。
DCTは、コサイン変換を用いて、残差映像を二次元周波数成分に分解(または変換)するものであり、DSTは、サイン変換を用いて、残差映像を二次元周波数成分に分解(または変換)するものである。残差映像の変換結果、周波数成分は、基底映像で表現される場合がある。一例として、N×Nサイズのブロックに対してDCT変換を行う場合、N2個の基本パターン成分が得られる場合がある。変換によりN×Nサイズのブロックに含まれた基本パターン成分それぞれのサイズが得られる場合がある。用いられた変換技法によって、基本パターン成分のサイズをDCT係数またはDST係数と称する場合がある。
変換技法DCTは、0ではない低周波成分が多く分布する映像を変換するために主に用いられる。変換技法DSTは、高周波成分が多く分布する映像に主に用いられる。
DCTまたはDST以外の変換技法を使用して残差映像を変換することもできる。
以下、残差映像を二次元周波数成分に変換することを二次元映像変換と称する。なお、変換結果得られた基本パターン成分のサイズを変換係数と称する。一例として、変換係数は、DCT係数またはDST係数を意味し得る。後述する第1変換および第2変換がいずれも適用された場合、変換係数は、第2変換の結果として生成された基本パターン成分のサイズを意味し得る。また、変換スキップが適用された残差サンプルも変換係数と称する。
変換技法は、ブロック単位で決定される場合がある。変換技法は、現在ブロックの予測符号化モード、現在ブロックのサイズまたは現在ブロックの形状のうち少なくとも一つに基づいて決定される場合がある。一例として、現在ブロックがイントラ予測モードに符号化され、現在ブロックのサイズがN×Nより小さい場合には、変換技法DSTを使用して変換が行われる場合がある。一方、条件を満たしていない場合、変換技法DCTを使用して変換が行われる場合がある。
残差映像の一部ブロックに対しては、二次元映像変換が行われない場合がある。二次元映像変換を行わないことを変換スキップ(Transform Skip)と称する場合がある。変換スキップは、現在ブロックに第1変換および第2変換が適用されないことを示す。変換スキップが適用された場合、変換が行われない残差値を対象に量子化が適用される場合がある。
現在ブロックに変換スキップを許容するか否かは、現在ブロックのサイズまたは形状のうち少なくとも一つに基づいて決定される場合がある。一例として、現在ブロックのサイズが閾値より小さい場合に限って、変換スキップが適用される場合がある。閾値は、現在ブロックの幅、高さまたはサンプル個数のうち少なくとも一つに関するものであり、32×32などと定義される場合がある。または、正方形ブロックに対してのみ変換スキップを許容する場合がある。一例として、32×32、16×16、8×8または4×4サイズの正方形ブロックに対して変換スキップが許容される場合がある。または、サブパーティションイントラ符号化方法が使用されない場合にのみ、変換スキップを許容する場合がある。
または、現在ブロックにサブパーティションイントラ符号化方法が適用された場合、サブパーティション別に変換スキップが適用されるか否かを判定する場合がある。
図29は、サブブロックごとに変換スキップを実行するか否かが決定される例を示す図である。
複数のサブブロックのうち一部に対してのみ変換スキップを適用する場合がある。一例として、図29に図示されている例のように、現在ブロックの上端に位置するサブブロックには変換スキップを適用し、下端に位置するサブブロックには変換スキップが許容されないように設定される場合がある。
変換スキップが許容されないサブブロックの変換タイプは、ビットストリームからシグナリングされる情報に基づいて決定される場合がある。一例として、後述するtu_mts_idxに基づいて、変換タイプが判定される場合がある。
または、サブブロックのサイズに基づいて、サブブロックの変換タイプを判定する場合がある。一例として、サブブロックの幅が閾値以上であるかおよび/または閾値以下であるかに基づいて、水平方向変換タイプを判定し、サブブロックの高さが閾値以上であるかおよび/または閾値以下であるかに基づいて、垂直方向変換タイプを判定する場合がある。
DCTまたはDSTを用いて現在ブロックを変換した後、変換された現在ブロックをまた変換する場合がある。この場合、DCTまたはDSTに基づく変換を第1変換と定義し、第1変換が適用されたブロックをまた変換することを第2変換と定義する場合がある。
第1変換は、複数個の変換コア候補のいずれか一つを用いて行われる場合がある。一例として、DCT2、DCT8またはDST7のいずれか一つを用いて第1変換が行われる場合がある。
水平方向および垂直方向に対して相違する変換コアが使用されることもできる。水平方向の変換コアおよび垂直方向の変換コアの組み合わせを示す情報がビットストリームを介してシグナリングされることもできる。
第1変換および第2変換の実行単位が相違する場合がある。一例として、8×8ブロックに対して第1変換を行い、変換された8×8ブロックのうち4×4サイズのサブブロックに対して第2変換を行う場合がある。または、4×4サイズのサブブロック3個に属する変換係数に対して第2変換を行う場合がある。3個のサブブロックは、現在ブロックの左上端に位置するサブブロックと、サブブロックの右側に隣り合うサブブロックと、サブブロックの下端に隣り合うサブブロックとを含む場合がある。または、8×8サイズのブロックに対して第2変換を行うこともできる。
第2変換が行われない残りの領域の変換係数は、0に設定されることもできる。
または、4×4ブロックに対して第1変換を行い、変換された4×4ブロックを含む8×8サイズの領域に対して第2変換を行うこともできる。
第2変換を行うか否かを示す情報がビットストリームを介してシグナリングされる場合がある。一例として、第2変換を行うか否かを示すフラグまたは第2変換を行うか否かおよび第2変換に用いられる変換カーネルを特定するインデックス情報がシグナリングされる場合がある。一例として、インデックス情報が0であることは、現在ブロックに第2変換が行われないことを示す。一方、インデックス情報が0より大きい場合、インデックス情報によって、第2変換を行うための変換カーネルが決定される場合がある。
または、水平方向変換コアと垂直方向変換コアが同一であるか否かに基づいて、第2変換を行うか否かが判定される場合がある。一例として、水平方向変換コアと垂直方向変換コアが同一である場合にのみ、第2変換が行われる場合がある。または、水平方向変換コアと垂直方向変換コアが相違する場合にのみ、第2変換が行われる場合がある。
または、水平方向の変換および垂直方向の変換が予め定義された変換コアを用いた場合に限って、第2変換が許容される場合がある。一例として、水平方向の変換および垂直方向の変換にDCT2変換コアが使用された場合に、第2変換が許容される場合がある。または、現在ブロックにサブパーティションイントラ符号化方法が適用された場合には、水平方向の変換および垂直方向の変換にDCT2変換コアが使用された場合に限って第2変換が許容される場合がある。
または、現在ブロックのノンゼロ変換係数の個数に基づいて第2変換を行うか否かを判定する場合がある。一例として、現在ブロックのノンゼロ変換係数が閾値より小さいか同一である場合、第2変換を使用しないように設定し、現在ブロックのノンゼロ変換係数が閾値より大きい場合、第2変換を使用するように設定される場合がある。現在ブロックがイントラ予測で符号化された場合に限って、第2変換を使用するように設定されることもできる。
または、現在ブロックの最後のノンゼロ変換係数の位置に基づいて第2変換を行うか否かを判定する場合がある。一例として、現在ブロックの最後のノンゼロ変換係数のx軸座標またはy軸座標のうち少なくとも一つが閾値より大きい場合、または現在ブロックの最後のノンゼロ変換係数が属するサブブロックのx軸座標またはy軸座標のうち少なくとも一つが閾値より大きい場合、第2変換を行わない場合がある。ここで、閾値は、符号化器および復号器で予め定義されている場合がある。または、現在ブロックのサイズまたは形状に基づいて閾値が決定される場合がある。
または、現在ブロックにDC成分の変換係数のみが存在する場合、第2変換を行わないように設定する場合がある。ここで、DC成分は、現在ブロック内の左上端位置の変換係数を示す。
または、現在ブロックにマトリックス基盤のイントラ予測が適用された場合、第2変換が行われないように設定される場合がある。
現在ブロックの変換タイプを示す情報がビットストリームを介してシグナリングされる場合がある。情報は、水平方向に対する変換タイプおよび垂直方向に対する変換タイプの組み合わせのうち一つを示すインデックス情報tu_mts_idxである場合がある。
インデックス情報tu_mts_idxによって特定される変換タイプ候補に基づいて、垂直方向に対する変換コアおよび水平方向に対する変換コアが決定される場合がある。表7は、tu_mts_idxによる変換タイプ組み合わせを示すものである。
Figure 2024001181000015
変換タイプは、DCT2、DST7またはDCT8のいずれか一つに判定される場合がある。または、変換スキップを変換タイプ候補に挿入することもできる。
表7が用いられる場合、tu_mts_idxが0であると、水平方向と垂直方向にDCT2が適用される場合がある。tu_mts_idxが2であると、水平方向にDCT8を適用し、垂直方向にDCT7を適用する場合がある。
サブパーティションイントラ符号化方法が適用された場合、サブブロックの変換コアが独立的に決定される場合がある。一例として、サブブロック毎に変換タイプ組み合わせ候補を特定するための情報が符号化されてシグナリングされる場合がある。これにより、サブブロック間の変換コアが相違する場合がある。
または、サブブロックが同一の変換タイプを使用することもできる。この場合、変換タイプ組み合わせ候補を特定するtu_mts_idxは、最初のサブブロックに対してのみシグナリングされる場合がある。または、コーディングブロックレベルでtu_mts_idxをシグナリングし、サブブロックの変換タイプは、コーディングブロックレベルでシグナリングされるtu_mts_idxを参照して決定される場合がある。または、サブブロックのうち一つのサイズ、形状またはイントラ予測モードのうち少なくとも一つに基づいて、変換タイプを判定し、判定された変換タイプがすべてのサブブロックのために使用されるように設定することもできる。
図30は、サブブロックが同一の変換タイプを使用する例を示す図である。
コーディングブロックが水平方向に分割された場合、コーディングブロックの上端に位置するサブブロック(Sub-CU0)および下端に位置するサブブロック(Sub-CU1)の変換タイプを同様に設定する場合がある。一例として、図30の(a)に図示されている例のように、上端サブブロックに対してシグナリングされるtu_mts_idxに基づいて、水平方向タイプおよび垂直変換タイプが判定されると、判定された変換タイプを下端サブブロックにも適用する場合がある。
コーディングブロックが垂直方向に分割された場合、コーディングブロックの左側に位置するサブブロック(Sub-CU0)および右側に位置するサブブロック(Sub-CU1)の変換タイプを同様に設定する場合がある。一例として、図30の(b)に図示されている例のように、左側サブブロックに対してシグナリングされるtu_mts_idxに基づいて、水平方向タイプおよび垂直変換タイプが判定されると、判定された変換タイプを右側サブブロックにも適用する場合がある。
現在ブロックのサイズ、形状、ノンゼロ係数の個数、二次変換を行うか否かまたはサブパーティションイントラ符号化方法を適用するか否かのうち少なくとも一つに基づいてインデックス情報を符号化するかどうかを判定する場合がある。一例として、現在ブロックにサブパーティションイントラ符号化方法が適用された場合、またはノンゼロ係数の数が閾値と同一であるか小さい場合、インデックス情報のシグナリングが省略される場合がある。インデックス情報のシグナリングが省略された場合、現在ブロックには、デフォルト変換タイプが適用される場合がある。
デフォルト変換タイプは、DCT2またはDST7のうち少なくとも一つを含む場合がある。デフォルト変換タイプが複数である場合、現在ブロックのサイズ、形状、イントラ予測モード、二次変換を行うか否かまたはサブパーティションイントラ符号化方法を適用するか否かのうち少なくとも一つを考慮して、複数のデフォルト変換タイプのうち一つを選択する場合がある。一例として、現在ブロックの幅が予め設定された範囲に属するか否かに基づいて、複数の変換タイプのうち一つを水平方向変換タイプに決定し、現在ブロックの高さが予め設定された範囲に属するか否かに基づいて、複数の変換タイプのうち一つを垂直方向変換タイプに決定する場合がある。または、現在ブロックのサイズ、形状、イントラ予測モードまたは二次変換が行われたか否かに応じてデフォルトモードが相違するように決定される場合がある。
または、現在ブロックにDC成分の変換係数のみが存在する場合、水平方向変換タイプおよび垂直方向変換タイプをデフォルト変換タイプに設定する場合がある。一例として、現在ブロックにDC成分の変換係数のみが存在する場合、水平方向変換タイプおよび垂直方向変換タイプは、DCT2に設定される場合がある。
閾値は、現在ブロックのサイズまたは形状に基づいて決定される場合がある。一例として、現在ブロックのサイズが32×32より小さいか同一である場合には閾値を2に設定し、現在ブロックが32×32より大きい場合には(例えば、現在ブロックが、32×64または64×32サイズのコーディングブロックである場合)、閾値を4に設定する場合がある。
複数個のルックアップテーブルが符号化器/復号器に予め格納される場合がある。複数個のルックアップテーブルは、変換タイプ組み合わせ候補に割り当てられるインデックス値、変換タイプ組み合わせ候補の種類または変換タイプ組み合わせ候補の個数のうち少なくとも一つが相違する場合がある。
現在ブロックのサイズ、形状、予測符号化モード、イントラ予測モード、二次変換を適用するか否かまたは近隣ブロックに変換スキップが適用されたか否かのうち少なくとも一つに基づいて、現在ブロックに対するルックアップテーブルを選択する場合がある。
一例として、現在ブロックのサイズが4×4以下である場合または現在ブロックがインタ予測で符号化された場合には、第1ルックアップテーブルを用い、現在ブロックのサイズが4×4より大きい場合または現在ブロックがイントラ予測で符号化された場合には、第2ルックアップテーブルを用いる場合がある。
または、複数のルックアップテーブルのいずれか一つを示す情報がビットストリームを介してシグナリングされる場合がある。復号器は、情報に基づいて現在ブロックに対するルックアップテーブルを選択する場合がある。
他の例として、現在ブロックのサイズ、形状、予測符号化モード、イントラ予測モード、二次変換を適用するか否かまたは近隣ブロックに変換スキップが適用されたか否かのうち少なくとも一つに基づいて、変換タイプ組み合わせ候補に割り当てられるインデックスが適応的に決定される場合がある。一例として、現在ブロックのサイズが4×4である場合、変換スキップに割り当てられるインデックスが現在ブロックのサイズが4×4より大きい場合、変換スキップに割り当てられるインデックスよりもさらに小さい値を有する場合がある。具体的には、現在ブロックのサイズが4×4である場合、変換スキップにインデックス0を割り当て、現在ブロックが4×4より大きく、16×16以下である場合、変換スキップに0より大きいインデックス(例えば、インデックス1)を割り当てる場合がある。現在ブロックが16×16より大きい場合、変換スキップのインデックスに最大値(例えば、5)を割り当てる場合がある。
または、現在ブロックがインタ予測で符号化された場合、変換スキップにインデックス0を割り当てる場合がある。現在ブロックがイントラ予測で符号化された場合、変換スキップに0より大きいインデックス(例えば、インデックス1)を割り当てる場合がある。
または、現在ブロックがインタ予測で符号化された4×4サイズのブロックである場合、変換スキップにインデックス0を割り当てる場合がある。一方、現在ブロックがインタ予測で符号化されていないか、現在ブロックが4×4より大きい場合、変換スキップに0より大きい値のインデックス(例えば、インデックス1)を割り当てる場合がある。
表7に挙げられた変換タイプ組み合わせ候補と相違する変換タイプ組み合わせ候補が定義されて使用されることもできる。一例として、水平方向変換または垂直方向変換のいずれか一つに変換スキップを適用し、他の一つにはDCT2、DCT8またはDST7などの変換コアが適用される変換タイプ組み合わせ候補が用いられる場合がある。この場合、現在ブロックのサイズ(例えば、幅および/または高さ)、形状、予測符号化モードまたはイントラ予測モードのうち少なくとも一つに基づいて、水平方向または垂直方向に対する変換タイプ候補として変換スキップを使用するか否かが判定される場合がある。
現在ブロックの変換タイプを決定するためのインデックス情報が明示的にシグナリングされるか否かを示す情報がビットストリームを介してシグナリングされる場合がある。一例として、シーケンスレベルで、イントラ予測で符号化されたブロックに対して明示的な変換タイプ決定が許容されるか否かを示す情報sps_explicit_intra_mts_flagおよび/またはインタ予測で符号化されたブロックに対して明示的な変換タイプ決定が許容されるか否かを示す情報sps_explicit_inter_mts_flagがシグナリングされる場合がある。
明示的な変換タイプ決定が許容される場合、ビットストリームからシグナリングされるインデックス情報tu_mts_idxに基づいて現在ブロックの変換タイプを決定する場合がある。一方、明示的な変換タイプ決定が許容されない場合、現在ブロックのサイズ、形状、サブブロック単位の変換が許容されるか否か、0ではない変換係数を含むサブブロックの位置、第2変換が行われるか否かまたはサブパーティションイントラ符号化方法を適用するか否かのうち少なくとも一つに基づいて変換タイプが判定される場合がある。一例として、現在ブロックの水平方向変換タイプは、現在ブロックの幅に基づいて決定され、現在ブロックの垂直方向変換タイプは、現在ブロックの高さに基づいて決定される場合がある。例えば、現在ブロックの幅が4より小さいか16より大きい場合、水平方向の変換タイプは、DCT2に決定される場合がある。そうではない場合、水平方向の変換タイプは、DST7に決定される場合がある。現在ブロックの高さが4より小さいか16より大きい場合、垂直方向の変換タイプは、DCT2に決定される場合がある。そうではない場合、垂直方向の変換タイプは、DST7に決定される場合がある。ここで、水平方向の変換タイプおよび垂直方向の変換タイプを判定するために、幅および高さと比較される閾値は、現在ブロックのサイズ、形状またはイントラ予測モードのうち少なくとも一つに基づいて決定される場合がある。
または、現在ブロックが高さと幅が同一である正方形である場合、水平方向変換タイプおよび垂直方向変換タイプを同様に設定する一方、現在ブロックが高さと幅が相違する非正方形の場合、水平方向変換タイプおよび垂直方向変換タイプを相違するように設定する場合がある。一例として、現在ブロックの幅が高さより大きい場合には、水平方向の変換タイプをDST7に決定し、垂直方向の変換タイプをDCT2に決定する場合がある。現在ブロックの高さが幅より大きい場合には、垂直方向の変換タイプをDST7に決定し、水平方向の変換タイプをDCT2に決定する場合がある。
変換タイプ候補の個数および/または種類または変換タイプ組み合わせ候補の個数および/または種類は、明示的な変換タイプ決定が許容されるか否かによって相違する場合がある。一例として、明示的な変換タイプ決定が許容される場合、DCT2、DST7およびDCT8が変換タイプ候補として用いられる場合がある。これにより、水平方向変換タイプおよび垂直方向変換タイプのそれぞれは、DCT2、DST8またはDCT8に設定される場合がある。明示的な変換タイプ決定が許容されない場合、DCT2およびDST7のみ変換タイプ候補として用いられる場合がある。これにより、水平方向変換タイプおよび垂直方向変換タイプのそれぞれは、DCT2またはDST7に決定される場合がある。
復号器では、第2変換の逆変換(第2逆変換)を行い、その実行結果に対して第1変換の逆変換(第1逆変換)を行う場合がある。第2逆変換および第1逆変換を行った結果、現在ブロックに対する残差信号が得られる場合がある。
符号化器で変換および量子化を行うと、復号器は、逆量子化および逆変換により残差ブロックを得る場合がある。復号器では、予測ブロックと残差ブロックを加算して、現在ブロックに対する復元ブロックを得る場合がある。
現在ブロックの復元ブロックが得られると、インループフィルタリング(In-loop filtering)により量子化および符号化過程で発生する情報の損失を減少させる場合がある。インループフィルタは、デブロッキングフィルタ(Deblocking filter)、サンプル適応的オフセットフィルタ(Sample Adaptive Offset filter、SAO)または適応的ループフィルタ(Adaptive Loop Filter、ALF)のうち少なくとも一つを含む場合がある。以下、インループフィルタが適用される前の復元ブロックを第1復元ブロックと称し、インループフィルタが適用された後の復元ブロックを第2復元ブロックと称する。
第1復元ブロックにデブロッキングフィルタ、SAOまたはALFのうち少なくとも一つを適用して、第2復元ブロックを得る場合がある。この場合、SAOまたはALFは、デブロッキングフィルタが適用された後に適用される場合がある。
デブロッキングフィルタは、ブロック単位で量子化を行うことによって発生するブロックの境界での画質劣化(Blocking Artifact)を緩和するためのものである。デブロッキングフィルタを適用するために、第1復元ブロックと近隣復元ブロックとの間のブロック強度(Blocking Strength、BS)を決定する場合がある。
図31は、ブロック強度を決定する過程を示すフローチャートである。
図31に図示されている例において、Pは、第1復元ブロックを示し、Qは、近隣復元ブロックを示す。ここで、近隣復元ブロックは、現在ブロックの左側または上端に隣り合うものである場合がある。
図31に図示されている例では、PおよびQの予測符号化モード、0ではない変換係数が含まれているか否か、同一の参照ピクチャを用いてインタ予測されたか否かまたは動きベクトルの差分値が閾値以上であるか否かを考慮してブロック強度が決定されるものと図示されている。
ブロック強度に基づいて、デブロッキングフィルタを適用するか否かが判定される場合がある。一例として、ブロック強度が0である場合には、フィルタリングが行われない場合がある。
SAOは、周波数領域で量子化を行うことによって発生するリンギング現象(Ringing Artifact)を緩和するためのものである。SAOは、第1復元映像のパターンを考慮して決定されるオフセットを加算または減算することで行われる場合がある。オフセットの決定方法は、エッジオフセット(Edge Offset、EO)またはバンドオフセット(Band Offset)を含む。EOは、周辺画素のパターンによって、現在サンプルのオフセットを決定する方法を示す。BOは、領域内の類似する明るさ値を有する画素の集合に対して共通のオフセットを適用する方法を示す。具体的には、画素明るさを32個の均等な区間に分け、類似する明るさ値を有する画素を一つの集合に設定する場合がある。一例として、32個のバンドのうち隣接した4個のバンドを一つのグループに設定し、4個のバンドに属するサンプルには同一のオフセット値を適用する場合がある。
ALFは、第1復元映像またはデブロッキングフィルタが適用された復元映像に予め定義されたサイズ/形状のフィルタを適用して第2復元映像を生成する方法である。下記数式8は、ALFの適用例を示す。
Figure 2024001181000016
ピクチャ、コーディングツリーユニット、コーディングブロック、予測ブロックまたは変換ブロック単位で、予め定義されたフィルタ候補のいずれか一つを選択する場合がある。それぞれのフィルタ候補は、サイズまたは形状のいずれか一つが相違する場合がある。
図32は、予め定義されたフィルタ候補を示す。
図32に図示されている例のように、5×5、7×7または9×9サイズのダイヤモンド形状のうち少なくとも一つを選択する場合がある。
クロマ成分に対しては、5×5サイズのダイヤモンド形状のみが使用される場合がある。
パノラミックビデオ、360度ビデオまたは4K/8K UHD(Ultra High Definition)映像などの高解像度映像のリアルタイムまたは低遅延符号化のために、一つのピクチャを複数個の領域に分け、複数個の領域を並列に符号化/復号する方案を考慮する場合がある。具体的には、処理目的に応じて、ピクチャをタイルまたはスライス(またはタイルグループ)に分割する場合がある。
タイルは、並列符号化/復号の基本単位を示す。各タイルは、並列処理される場合がある。タイルは、長方形の形状を有する場合がある。または、非長方形状のタイルを許容することもできる。
非長方形状のタイルを許容するか否かまたは非長方形状のタイルが存在するか否かを示す情報がビットストリームを介してシグナリングされる場合がある。
タイルの符号化/復号の時に、他のタイルのデータは用いないように設定される場合がある。タイル間の符号化/復号従属性を除去し、タイルの並列処理を支援する場合がある。具体的には、タイル単位で、CABAC(Context adaptive Binary Arithmetic Coding)コンテキストの確率テーブルを初期化する場合があり、タイルの境界では、インループフィルタが適用されないように設定する場合がある。また、他のタイルにあるデータを動きベクトル導出のための候補として使用しない場合がある。例えば、他のタイルにあるデータは、マージ候補、動きベクトル予測候補(AMVP候補)またはモーション情報候補として用いられないように設定される場合がある。また、他のタイルにあるデータをシンボルのコンテキスト計算に用いないように設定する場合がある。
スライスヘッダーを介して映像符号化/復号情報がシグナリングされる場合がある。スライスヘッダーを介してシグナリングされる情報は、スライスに含まれたコーディングツリーユニットまたはタイルに共通適用される場合がある。スライスをタイルグループと称することもできる。
図33は、本発明の一実施形態によるピクチャ分割方法を示す図である。
先ず、現在ピクチャを複数の処理単位に分割するか否かを判定する場合がある(S3310)。ここで、処理単位は、タイルまたはスライスのうち少なくとも一つを含む場合がある。一例として、現在ピクチャが複数のタイルまたはスライスに分割されるか否かを示すシンタックスno_pic_partition_flagがビットストリームを介してシグナリングされる場合がある。シンタックスno_pic_partition_flagの値が0であることは、現在ピクチャが少なくとも一つのタイルまたは少なくとも一つのスライスに分割されることを示す。一方、シンタックスno_pic_partition_flagの値が1であることは、現在ピクチャが複数のタイルまたは複数のスライスに分割されないことを示す。
現在ピクチャが複数の処理単位に分割されないものに判定される場合、現在ピクチャの分割過程を終了する場合がある。この場合、現在ピクチャは、一つのタイルおよび一つのスライス(またはタイルグループ)で構成されたものと理解し得る。
または、ピクチャに複数のタイルが存在するか否かを示す情報がビットストリームを介してシグナリングされる場合がある。情報は、ピクチャに複数のタイルが存在するか否かを示す1ビットのフラグまたはピクチャ内のタイルの個数を特定する情報のうち少なくとも一つを含む場合がある。ピクチャ内の複数個のタイルが存在するものと決定された場合に限って、後述するピクチャ分割過程が行われる場合がある。
現在ピクチャが複数の処理単位に分割されるものと判定される場合、ビットストリームを介してタイル分割情報をシグナリングする場合がある。シグナリングされたタイル分割情報に基づいて、ピクチャを少なくとも一つのタイルに分割する場合がある(S3320)。
現在ピクチャが複数のタイルに分割された場合、複数のタイルを併合するか、一つのタイルを分割して、スライスを決定する場合がある(S3330)。
以下、本発明によるタイル分割方法およびスライス決定方法について詳細に説明する。
図34は、ピクチャが複数のタイルに分割された例を示す。
タイルは、少なくとも一つのコーディングツリーユニットを含む場合がある。タイルの境界は、コーディングツリーユニットの境界と一致するように設定される場合がある。すなわち、一つのコーディングツリーユニットが複数個に分割される分割形状は許容されない場合がある。
ピクチャを複数個のタイルに分割する時に、隣接するタイルの高さまたは隣接するタイルの幅が同一の値を有するように設定する場合がある。
一例として、図34に図示されている例のように、同一のタイル行に属するタイルの高さおよび/または同一のタイル列に属するタイルの幅は、同様に設定される場合がある。同一のタイル行に属するタイルを水平方向タイルセットと称し、同一のタイル列に属するタイルを垂直方向タイルセットと称することもできる。
または、符号化/復号しようとするタイルの幅および/または高さが、前のタイルの幅および/または高さと同様に設定されるか否かを示す情報がシグナリングされることもできる。
ピクチャの分割形状を示す情報がビットストリームを介してシグナリングされる場合がある。情報は、ピクチャパラメータセット、シーケンスパラメータセットまたはスライスヘッダーを介して符号化されてシグナリングされる場合がある。
ピクチャの分割形状を示す情報は、タイルが均等なサイズに分割されるか否かを示す情報、タイル列の個数を示す情報またはタイル行の個数を示す情報のうち少なくとも一つを含む場合がある。ここで、タイル列の個数は、垂直方向タイルセットの個数を示し、タイル行の個数は、水平方向タイルセットの個数を示す。
ピクチャを横切る垂直線または水平線のうち少なくとも一つを用いてピクチャを分割することにより、タイルのそれぞれは、相違する列(Column)および/または行(Row)に属する。ピクチャの分割形状を決定するために、タイル列の個数および/またはタイル行の個数を示す情報がシグナリングされる場合がある。一例として、ピクチャを分割することによって生成されるタイル行の個数を示す情報num_tile_row_minus1およびタイル列の個数を示す情報num_tile_column_minus1がビットストリームを介してシグナリングされる場合がある。シンタックスnum_tile_row_minus1は、タイル行の個数から1を差分した値を示し、シンタックスnum_tile_column_minus1は、タイル列の個数から1を差分した値を示す。
図34に図示されている例において、タイル列の個数は4個であり、タイル行の個数は3個である。これにより、num_tile_columns_minus1は3を示し、num_tile_rows_minus1は2を示す場合がある。
各タイル列の幅を示すシンタックスおよび各タイル行の高さを示すシンタックスがビットストリームを介してシグナリングされる場合がある。一例として、tile_cols_width_minus1[i]は、i番目のタイル列の幅を示し、tile_rows_height_minus[j]は、j番目のタイル行の高さを示す場合がある。
シンタックスtile_cols_width_minus1[i]は、i番目のタイル列を構成するコーディングツリーユニット列の個数から1を差分した値を示す。最後のタイル列に対しては、シンタックスtile_cols_width_minus1[i]のシグナリングが省略される場合がある。最後のタイル列の幅は、現在ピクチャの幅から前のタイル列の幅を差分して導出される場合がある。
シンタックスtile_rows_height_minus1[j]は、j番目のタイル行を構成するコーディングツリーユニット行の個数から1を差分した値を示す。最後のタイル行に対しては、シンタックスtile_rows_height_minus1[j]のシグナリングが省略される場合がある。最後のタイル行の高さは、現在ピクチャの高さから前のタイル行の高さを差分して導出される場合がある。
一方、コーディングツリーユニットのサイズを示す情報は、シーケンスパラメータセットまたはピクチャパラメータセットを介してシグナリングされる場合がある。
一つのタイルは、少なくとも一つのコーディングツリーユニットで構成される場合がある。ピクチャの右側または下端境界に隣接するタイル以外の残りのタイルは、コーディングツリーユニットより小さい領域を含んで構成されないように設定する場合がある。すなわち、タイルの境界は、コーディングツリーユニットの境界と一致する。
ピクチャの分割形状によって、ピクチャバウンダリ以外のすべての領域でタイルが同一のサイズを有する場合がある。または、水平方向に隣接するタイルの高さが同様に設定されるか、垂直方向に隣接するタイルの幅が同様に設定される場合がある。
現在ピクチャが複数のタイルに分割されるか否かを示す情報がビットストリームを介してシグナリングされる場合がある。一例として、ビットストリームを介してシンタックスsingle_tile_in_pic_flagがシグナリングされる場合がある。シンタックスsingle_tile_in_pic_flagが1であることは、現在ピクチャが複数のタイルに分割されないことを示す。一方、single_tile_in_pic_flagが0であることは、現在ピクチャが複数のタイルに分割されることを示す。
タイルのサイズを決定するための情報が符号化されてシグナリングされる場合がある。一例として、i番目のタイル列の幅を示すシンタックス要素tile_width_minus1[i]およびi番目のタイル行の高さを示すシンタックス要素tile_height_minus1[i]がビットストリームに符号化される場合がある。
連続するタイル列のサイズが同一である場合、連続するタイル列のうち一つに対してのみ幅情報をシグナリングし、残りのタイル列に対しては幅情報の符号化/復号を省略する場合がある。
一例として、ピクチャ内のi番目のタイル列から最後のタイル列までの幅が同一である場合、i番目のタイル列に対してのみシンタックスtile_cols_width_minus1[i]をシグナリングし、残りのタイル列は、i番目のタイル列の幅と同様に設定する場合がある。
連続する複数のタイル列の幅が同一であるか否かを示す情報を符号化してシグナリングする場合がある。一例として、シンタックスrem_tile_col_equal_flag[i]は、インデックスがiであるタイル列からインデックスがN-1であるタイル列までの幅が同一であるか否かを示す。ここで、Nは、タイル列の個数を示す場合がある。すなわち、インデックスがN-1であるタイル列は、ピクチャ内の最後のタイル列を示す場合がある。
シンタックスrem_tile_col_equal_flag[i]が1である場合、インデックスがiであるタイル列に対しては、幅を示すシンタックスtile_cols_width_minus1[i]がシグナリングされる一方、インデックスがiより大きいタイル列に対しては、タイル列の幅を示すシンタックスの符号化/復号を省略する場合がある。
タイル列の幅を示すシンタックスの符号化/復号が省略される場合、i番目のタイル列の幅と残りの領域の幅のうち最小値を次のタイル列の幅に設定する場合がある。一例として、i番目のタイル列の幅を変数PrevTileColWidthに設定し、ピクチャ内の残りの領域の幅を変数RemainingColWidthに設定した場合、インデックスがiより大きいタイル列のサイズは、変数PrevTileColWidthおよび変数RemainingColWidthのうち小さい値に設定される場合がある。
他の例として、シンタックスrem_tile_col_equal_flag[i]を、インデックスが0であるタイル列からインデックスがiであるタイル列までの幅が同一であるか否かを示すように設定する場合がある。
連続するタイル行のサイズが同一である場合、連続するタイル行のうち一つに対してのみ高さ情報をシグナリングし、残りのタイル行に対しては、高さ情報の符号化/復号を省略する場合がある。
一例として、ピクチャ内のi番目のタイル行から最後のタイル行までの高さが同一である場合、i番目のタイル行に対してのみシンタックスtile_rows_height_minus1[i]をシグナリングし、残りのタイル行はi番目のタイル行の高さと同様に設定する場合がある。
連続する複数のタイル行の高さが同一であるか否かを示す情報を符号化してシグナリングする場合がある。一例として、シンタックスrem_tile_row_equal_flag[i]は、インデックスがiであるタイル行からインデックスがN-1であるタイル行までの高さが同一であるか否かを示す。ここで、Nは、タイル行の個数を示す場合がある。すなわち、インデックスがN-1であるタイル行は、ピクチャ内の最後のタイル行を示す場合がある。
シンタックスrem_tile_row_equal_flag[i]が1である場合、インデックスがiであるタイル行に対しては、高さを示すシンタックスtile_rows_height_minus1[i]がシグナリングされる一方、インデックスがiより大きいタイル行に対しては、タイル行の高さを示すシンタックスの符号化/復号を省略する場合がある。
タイル行の高さを示すシンタックスの符号化/復号が省略される場合、i番目のタイル行の高さと残りの領域の高さのうち最小値を次のタイル行の高さに設定する場合がある。一例として、i番目のタイル行の高さを変数PrevTileRowHeightに設定し、ピクチャ内の残りの領域の高さを変数RemainingRowHeightに設定した場合、インデックスがiより大きいタイル行のサイズは、変数PrevTileRowHeightおよび変数RemainingRowHeightのうち小さい値に設定される場合がある。
他の例として、シンタックスrem_tile_row_equal_flag[i]を、インデックスが0であるタイル行からインデックスがiであるタイル行までの高さが同一であるか否かを示すように設定することもできる。
表8は、シンタックスrem_tile_col_equal_flag[i]およびシンタックスrem_tile_row_equal_flag[i]を含むシンタックス構造を例示するものである。
Figure 2024001181000017
現在ピクチャ内のタイル列の幅が明示的にシグナリングされるタイル列の個数を特定するための情報をビットストリームを介してシグナリングすることもできる。一例として、タイル列の幅がシグナリングされるタイル列の個数を決定するためのシンタックスnum_exp_tile_columns_minus1がビットストリームを介してシグナリングされる場合がある。シンタックスnum_exp_tile_columns_minus1は、タイル列の幅がシグナリングされるタイル列の個数から1を差分した値である場合がある。
シンタックスnum_exp_tile_columns_minus1に基づいて決定された個数だけ、タイル列の幅を特定するためのシンタックスが符号化されてシグナリングされる場合がある。一例として、i番目のタイル列の幅を示すシンタックスtile_cols_width_minus1[i]がビットストリームを介してシグナリングされる場合がある。シンタックスtile_cols_width_minus1[i]は、タイル列が含むコーディングツリーユニット列の個数から1を差分したものである場合がある。
タイル列のインデックスiが幅が明示的にシグナリングされるタイル列の個数より小さい場合、当該タイル列の幅は、ビットストリームを介してシグナリングされるシンタックスtile_cols_width_minus1[i]に基づいて決定される場合がある。
一方、タイル列のインデックスjが幅が明示的にシグナリングされるタイル列の個数以上である場合、当該タイル列の幅は、最後にシグナリングされたシンタックスtile_cols_width_minus1[l]に基づいて決定される場合がある。ここで、lは、最後に幅がシグナリングされたタイル列のインデックスを示し、jより小さい整数である場合がある。一例として、現在ピクチャの幅から前のタイル列の幅を差分した値が、シンタックスtile_cols_width_minus1[l]に1を加算した値以上である場合、タイル列jの幅は、シンタックスtile_cols_width_minus1[l]に1を加算した値に設定される場合がある。一方、現在ピクチャの幅から前のタイル列の幅を差分した値が、シンタックスtile_cols_width_minus1[l]に1を加算した値より小さい場合、現在ピクチャの幅から前のタイル列の幅を差分した差分値をタイル列jの幅に設定する場合がある。
表9は、タイル列の幅を決定する過程を示すものである。
Figure 2024001181000018
表9において、変数PicWidthInCtbsYは、現在ピクチャが含むコーディングツリーユニット列の個数を示す。一例として、変数PicWidthInCtbsYは、以下の数式9のように導出される場合がある。
Figure 2024001181000019
変数reminingWidthInCtbsYは、変数PicWidthInCtbsYから累積したタイル列の幅を差分した値を示す。一例として、インデックスがiであるタイル列に対して、remainingWidthInCtbsYは、PicWidthInCtbsYから、0番からi-1番までタイル列の幅を合算した値を差分して導出される場合がある。
表9に示れている例のように、変数uniformTileColWidthは、最後に明示的にシグナリングされたタイル列の幅tile_cols_width_minus1[num_exp_tile_columns_minus1]に1を加算して導出される場合がある。この場合、現在ピクチャ内の残りのコーディングツリーユニット列の個数を示す変数remainingWidthInCtbYが変数uniformTileColWidth以上であると、残りの領域は、変数uniformTileColWidthのサイズに分割される場合がある。
一方、現在ピクチャ内の残りのコーディングツリーユニット列の個数を示す変数remainingWidthInCtbYが変数uniformTileColWidthより小さいと、残りの領域がそのまま最後のタイル列に設定される場合がある。
一方、タイル列のインデックスjが幅が明示的にシグナリングされるタイル列の個数以上である場合、当該タイル列の幅は、変数uniformTileColWidthおよびremainingWidthInCtbYのうち小さい値に設定される場合がある。
すなわち、幅が明示的にシグナリングされるタイル列以外の残りのタイル列の幅は、幅が明示的にシグナリングされるタイル列のうち最後のタイル列の幅より小さいか同一の値を有する場合がある。
または、現在ピクチャ内のタイル行の高さがシグナリングされるタイル行の個数を特定するための情報がビットストリームを介してシグナリングされる場合がある。一例として、タイル行の高さがシグナリングされるタイル行の個数を決定するためのシンタックスnum_exp_tile_rows_minus1がビットストリームを介してシグナリングされる場合がある。シンタックスnum_exp_tile_rows_minus1は、タイル行の高さがシグナリングされるタイル行の個数から1を差分した値である場合がある。
シンタックスnum_exp_tile_rows_minus1に基づいて決定された個数だけ、タイル行の高さを特定するためのシンタックスが符号化されてシグナリングされる場合がある。一例として、i番目のタイル行の高さを示すシンタックスtile_rows_height_minus1[i]がビットストリームを介してシグナリングされる場合がある。シンタックスtile_rows_height_minus1[i]は、タイル行が含むコーディングツリーユニット行の個数から1を差分したものである場合がある。
タイル行のインデックスiが高さが明示的にシグナリングされるタイル行の個数より小さい場合、当該タイル行の高さは、ビットストリームを介してシグナリングされるシンタックスtile_height_minus1[i]に基づいて決定される場合がある。
一方、タイル行のインデックスjが高さが明示的にシグナリングされるタイル行の個数以上である場合、当該タイル行の高さは、最後にシグナリングされたシンタックスtile_rows_height_minus1[l]に基づいて決定される場合がある。ここで、lは、最後に高さがシグナリングされたタイル行のインデックスを示し、jより小さい整数である場合がある。
一例として、現在ピクチャの高さから前のタイル行の高さを差分した値がシンタックスtile_rows_height_minus1[l]に1を加算した値以上である場合、タイル行jの高さは、シンタックスtile_rows_height_minus1[l]に1を加算した値に設定される場合がある。一方、現在ピクチャの高さから前のタイル行の高さを差分した値がシンタックスtile_rows_height_minus1[l]に1を加算した値より小さい場合、現在ピクチャの高さから前のタイル行の高さを差分した差分値をタイル行jの高さに設定する場合がある。
表10は、タイル行の高さを決定する過程を示すものである。
Figure 2024001181000020
表10において、変数PicHeightInCtbsYは、現在ピクチャが含むコーディングツリーユニット行の個数を示す。一例として、変数PicWidthInCtbsYは、以下の数式10のように導出される場合がある。
Figure 2024001181000021
変数reminingHeightInCtbsYは、変数PicHeightInCtbsYから累積したタイル行の高さを差分した値を示す。一例として、インデックスがiであるタイル行に対して、remainingHeightInCtbsYは、PicHeightInCtbsYから、0番からi-1番までタイル行の高さを合算した値を差分して導出される場合がある。
表10に示れている例のように、変数uniformTileRowHeightは、最後に明示的にシグナリングされたタイル行の高さtile_rows_height_minus1[num_exp_tile_rows_minus1]に1を加算して導出される場合がある。この場合、現在ピクチャ内の残りのコーディングツリーユニット行の個数を示す変数remainingHeightInCtbYが変数uniformTileRowHeight以上であると、残りの領域は、変数uniformTileRowHeightのサイズに分割される場合がある。
一方、現在ピクチャ内の残りのコーディングツリーユニット行の個数を示す変数remainingHeightInCtbYが変数uniformTileRowHeightより小さいと、残りの領域がそのまま最後のタイル行に設定される場合がある。
一方、タイル行のインデックスjが高さが明示的にシグナリングされるタイル行の個数以上である場合、当該タイル行の高さは、変数uniformTileRowHeightおよびremainingHeightInCtbYのうち小さい値に設定される場合がある。
すなわち、高さが明示的にシグナリングされるタイル行以外の残りのタイル行の高さは、高さが明示的にシグナリングされるタイル行のうち最後のタイル行の幅より小さいか同一の値を有する場合がある。
表11は、幅が明示的にシグナリングされるタイル列の個数を示すシンタックスおよび高さが明示的にシグナリングされるタイル行の個数を示すシンタックスを含むシンタックステーブルを例示するものである。
Figure 2024001181000022
一方、シンタックスloop_filter_across_tiles_enabled_flagは、ピクチャパラメータセットを参照するピクチャ内のタイルの境界でインループフィルタを適用することが許容されるか否かを示す。ここで、インループフィルタは、デブロッキングフィルタ、ALFまたはSAOのうち少なくとも一つを含む場合がある。フラグloop_filter_across_tiles_enabled_flagの値が1であることは、ピクチャパラメータセットを参照するピクチャ内のタイルの境界を横切るインループフィルタが適用可能であることを示す。一方、フラグloop_filter_across_tiles_enabled_flagの値が0であることは、ピクチャパラメータセットを参照するピクチャ内のタイルの境界でインループフィルタを適用することが許容されないことを示す。
シンタックスloop_filter_across_slices_enabled_flagは、ピクチャパラメータセットを参照するピクチャ内のスライスの境界でインループフィルタを適用することが許容されるか否かを示す。ここで、インループフィルタは、デブロッキングフィルタ、ALFまたはSAOのうち少なくとも一つを含む場合がある。フラグloop_filter_across_slices_enabled_flagの値が1であることは、ピクチャパラメータセットを参照するピクチャ内のスライスの境界を横切るインループフィルタが適用可能であることを示す。一方、フラグloop_filter_across_slices_enabled_flagの値が0であることは、ピクチャパラメータセットを参照するピクチャ内のスライスの境界でインループフィルタを適用することが許容されないことを示す。
タイルを再帰的に分割する場合がある。一例として、一つのタイルを複数のタイルに分割する場合がある。
タイルを分割して生成された複数のタイルそれぞれをサブタイルまたはブリックと称することもできる。ブリックは、並列処理の単位である場合がある。一例として、ブリックは、互いに独立的に符号化/復号される場合がある。ブリックに含まれたブロックの符号化/復号の時に、他のブロックのデータを用いないように設定する場合がある。一例として、他のブリックに含まれたサンプルは、イントラ予測のための参照サンプルとして利用不可能なものに設定される場合がある。または、他のブリックにあるデータは、マージ候補、動きベクトル予測候補(AMVP候補)またはモーション情報候補として用いられないように設定される場合がある。または、他のブリックにあるデータをシンボルのコンテキスト計算に用いない場合がある。
図35は、ブリックの生成態様を説明するための図である。
タイルを水平方向に分割して、ブリックを生成する場合がある。一例として、図35に図示されている例では、現在ピクチャ内の最後のタイル列に属するタイルが2個のブリックに分割されるものと図示されている。
タイルにラスタースキャンが適用されると仮定する場合、ブリックの間にも、ラスタースキャンが適用される場合がある。一例として、特定のタイルに含まれたブリックをすべてスキャンした後、次のタイルをスキャンする場合がある。すなわち、ブリックは、タイルと同等な地位を有する場合がある。
ブリックの境界は、コーディングツリーユニットの境界と一致する場合がある。すなわち、タイル内の少なくとも一つのコーディングツリーユニット行をブリックと画定する場合がある。
タイルおよびブリックは、タイルインデックスにより識別される場合がある。ラスタースキャン順序にしたがって、タイルおよびブリックそれぞれにタイルインデックスが割り当てられる場合がある。一つのタイルが複数のブリックに分割された場合、複数のブリックそれぞれにタイルインデックスが割り当てられる場合がある。
後述する実施形態において、「タイル」という用語は、タイルだけではなく、タイルを分割することで生成されたタイル(すなわち、サブタイルまたはブリック)を含む場合がある。
少なくとも一つ以上のタイルを一つの処理単位と画定する場合がある。一例として、複数個のタイルを一つのスライスと画定する場合がある。スライスをタイルグループと称することもできる。
または、一つのタイルを複数個の処理単位に分割することもできる。一例として、一つのタイルを複数個のスライスに分割することもできる。この場合、一つのスライスは、少なくとも一つのコーディングツリーユニット列を含む場合がある。一つのタイルが複数のスライスに分割される場合、各スライスの高さを示す情報がビットストリームを介してシグナリングされる場合がある。
スライスヘッダーを介して映像符号化/復号情報がシグナリングされる場合がある。スライスヘッダーを介してシグナリングされる情報は、スライスに属するタイルおよび/またはブロックに共通して適用される場合がある。
スライスタイプを示す情報を、ビットストリームを介してシグナリングする場合がある。情報は、現在ピクチャ内のスライスの画定方法を示す。一例として、ビットストリームを介してスライスタイプを示すシンタックスrect_slice_flagがシグナリングされる場合がある。
シンタックスrec_slice_flagは、タイルのラスタースキャン順序に基づいてスライスが画定されるか否かまたは矩形状にスライスが画定されるか否かを示す。一例として、rec_slice_flagが0であることは、タイルのラスタースキャン順序に基づいてスライスが画定されることを示す。一方、rec_slice_flagが1であることは、矩形状にスライスが画定されることを示す。
以下、スライスを決定するための上記の二つの方法について詳細に説明する。
ラスタースキャンに基づく画定方法は、ラスタースキャン順序にしたがって、少なくとも一つ以上のタイルを特定した後、特定された少なくとも一つ以上のタイルをスライスと画定するためのものである。ラスタースキャンに基づく画定方法による場合、一つ以上の連続したタイルがスライスと画定される場合がある。この場合、連続したタイルは、ラスタースキャン順序にしたがって決定される場合がある。ラスタースキャンスライスが適用される場合、非矩形状のスライスが生成されることもできる。
図36および図37は、ラスター順序に基づいてスライスを画定した例を示す図である。
一例として、図36に図示されている例において、最初のスライスslice0が3個のタイルを含むと仮定した時に、最初のスライスslice0は、ラスタースキャン順序にしたがって、Tile0~Tile2を含むものと画定される場合がある。二番目のスライスslice1が6個のタイルを含むと仮定した時に、二番目のスライスslice1は、ラスタースキャン順序にしたがって、Tile3~Tile8を含むものと画定される場合がある。最後のスライスslice2は、ラスタースキャン順序にしたがって、残りのタイルTile9~Tile11を含む場合がある。
ラスタースキャン順序に基づいて、スライスを画定する場合、各スライスが含むタイルの個数を示す情報がシグナリングされる場合がある。最後のスライスに対しては、スライスが含むタイルの個数を示す情報のシグナリングが省略される場合がある。
スライスが複数のタイルを含む場合、スライスに含まれたタイルの幅または高さは相違する場合がある。一例として、二番目のスライスslice1が含むタイルのうち、Tile3の高さは、残りのタイルと相違するものと図示されている。
矩形状スライスの画定方法は、長方形状のスライスのみを許容する分割方法である。矩形状スライスの画定方法が適用される場合、スライスの4つの角に位置するタイルが同じ行または同じ列に属する。
図38は、矩形状のスライスのみが許容される例を示す図である。
図38に図示されている例のように、四番目のスライスslice3は、Tile5、Tile6、Tile9およびTile10を含む。図示されている例のように、スライスが複数のタイルを含む場合、スライスを構成する左側上端タイルおよび右側下端タイルを二つの頂点とする長方形を一つのスライスと画定する場合がある。
スライスの境界は、ピクチャの境界および/またはタイルの境界と一致する場合がある。一例として、スライスの左側境界または上端境界がピクチャの境界に設定されるか、スライスの左側境界または上端境界がタイルの境界に設定される場合がある。
または、矩形状のスライスの画定方法が適用される場合、一つのタイルを複数個の矩形状スライスに分割することもできる。
矩形状のスライスの画定方法が適用される場合(例えば、rect_slice_flagが1である場合)、ピクチャが単一スライスで構成されるか否かを示す情報がシグナリングされる場合がある。一例として、ピクチャ内のスライスの個数が1個であるか否かを示すシンタックスone_slice_in_pic_flagがビットストリームを介してシグナリングされる場合がある。フラグone_slice_in_pic_flagが1であることは、ピクチャが1個のスライスで構成されることを示す。一方、フラグone_slice_in_pic_flagが0であることは、ピクチャが少なくとも2個以上のスライスで構成されることを示す。フラグone_slice_in_pic_flagの値が0である場合、スライスの構成情報が追加シグナリングされる場合がある。一例として、表12は、シンタックスone_slice_in_pic_flagを含むシンタックステーブルを例示するものである。
Figure 2024001181000023
Figure 2024001181000024
表12において、シンタックスsingle_brick_per_slice_flagは、一つのタイルが一つのスライスで構成されるか否かを示す。シンタックスsingle_brick_per_slice_flagの値が1であると、一つのタイルを一つのスライスに設定する場合がある。すなわち、single_brick_per_slice_flagの値が1である場合、ピクチャ内のタイルの構成と、スライスの構成は同一である場合がある。
シンタックスsingle_brick_per_slice_flagの値が0である場合、矩形状スライスの画定方法が用いられるか否かを示すrect_slice_flagがシグナリングされる場合がある。シンタックスrect_slice_flagが1であることは、矩形状スライスの画定方法が用いられることを示す。
シンタックスrect_slice_flagの値が1であり、シンタックスsingle_brick_per_slice_flagの値が0である場合、シンタックスone_slice_in_pic_flagがシグナリングされる場合がある。例示されているように、one_slice_in_pic_flagが1である場合、後述するスライスの構成に関する情報(例えば、スライスが含むタイルのインデックスを示すシンタックスtop_left_brick_idx[i]および/または第1スライスが含むタイルと第2スライスが含むタイルとのインデックス差分を示すシンタックスbottom_right_bric_idx_delta[i]など)の符号化が省略される場合がある。すなわち、one_slice_in_pic_flagは、スライスの構成に関する情報が符号化されているか否かを判定するために用いられる場合がある。
ピクチャは、サブピクチャを示すこともできる。ピクチャは、少なくとも一つのサブピクチャに分割される場合がある。サブピクチャ分割関連情報は、シーケンスレベルでシグナリングされる場合がある。一例として、シーケンスパラメータセットを介してシグナリングされるサブピクチャ分割関連情報は、シーケンスパラメータセットを参照するすべてのピクチャに共通適用される場合がある。
サブピクチャ分割関連情報は、ピクチャが複数のサブピクチャに分割されるか否かを示す情報、サブピクチャの個数を示す情報、サブピクチャのサイズを示す情報またはサブピクチャが独立的なピクチャとして機能するか否かを示す情報を含む場合がある。
サブピクチャ別に、単一スライスで構成されているか否かを示すシンタックスone_slice_in_pic_flagがシグナリングされる場合がある。
または、シーケンスまたはピクチャレベルで、各サブピクチャが単一スライスで構成されているか否かを示すシンタックスone_slice_in_pic_flagがシグナリングされる場合がある。一例として、シーケンスレベルでone_slice_in_pic_flagがシグナリングされ、シンタックスone_slice_in_pic_flagが1である場合、シーケンスパラメータセットを参照するすべてのピクチャ内のサブピクチャそれぞれが一つのスライスと画定されることを示す。
または、ピクチャレベルでone_slice_in_pic_flagがシグナリングされ、シンタックスone_slice_in_pic_flagが1であることは、現在ピクチャ内のすべてのサブピクチャが単一スライスで構成されることを示す。一方、フラグone_slice_in_pic_flagが0であることは、現在ピクチャ内の少なくとも一つのサブピクチャが複数スライスで構成されることを示す。
他の例として、シンタックスsingle_brick_per_slice_flagおよびシンタックスrect_slice_flagをシグナリングするかどうかがシンタックスone_slice_in_picture_flagに依存するように構成することもできる。表13は、これに関する例示を示す。
Figure 2024001181000025
Figure 2024001181000026
表13に例示されているように、シンタックスone_slice_in_pic_flagの値によって、シンタックスsingle_brick_per_slice_flagおよびシンタックスrect_slice_flagをシグナリングするかどうかが判定される場合がある。一例として、シンタックスone_slice_in_pic_flagの値が1である場合、シンタックスsingle_brick_per_slice_flagおよびシンタックスrect_slice_flagのシグナリングを省略する場合がある。
ピクチャが複数のスライスで構成されるものと判定される場合、ピクチャ内のスライスの個数を示すシンタックスが符号化されてシグナリングされる場合がある。一例として、ビットストリームを介して、ピクチャ内のスライスの個数を示すシンタックスnum_slices_in_pic_minus1がシグナリングされる場合がある。シンタックスnum_slices_in_pic_minus1は、ピクチャ内のスライスの個数から1を差分した値を示す場合がある。これにより、復号器は、シンタックスnum_slices_in_pic_minus2が示す値に2を加算して、スライスの総個数を決定する場合がある。
矩形状のスライスの画定方法が適用される場合、各スライスが含むタイルを決定するために、各スライスが含むタイルを識別するための情報がシグナリングされる場合がある。情報は、スライスの最初のタイルまたは最後のタイルのうち少なくとも一つを特定するために用いられる場合がある。タイル間の順番は、所定のスキャン順序にしたがって決定される場合がある。一例として、ラスタースキャン順序にしたがう場合、最初のタイルは、スライスの左上端に位置するタイルを示し、最後のタイルは、スライスの右下端に位置するタイルを示す。
スライス内の左上端に位置するタイルのインデックスまたはスライスの右下端に位置するタイルのインデックスのうち少なくとも一つを識別するための情報がビットストリームを介してシグナリングされる場合がある。一例として、スライスの左上端に位置するタイルのインデックスを識別するためのシンタックスtop_left_tile_idxまたはスライスの右下端に位置するタイルのインデックスを識別するためのシンタックスbottom_right_tile_idxのうち少なくとも一つがビットストリームを介してシグナリングされる場合がある。最後のスライスに対しては、スライスの左上端に位置するタイルのインデックスを識別するためのシンタックスまたはスライスの右下端に位置するタイルのインデックスを識別するためのシンタックスのうち少なくとも一つの符号化が省略される場合がある。現在ピクチャ内の前のスライスが占める領域以外の残りの領域が最後のスライスに設定される場合がある。
一例として、図38に図示されている例において、slice0、slice1およびslice2に対しては、各スライスの左上端に位置するタイルのインデックスtop_left_tile_idxおよび各スライスの右下端に位置するタイルのインデックスbottom_right_tile_idxがシグナリングされる場合がある。一方、ピクチャ内の最後のスライスであるslice3に対しては、top_left_tile_idxおよびbottom_right_tile idxの符号化が省略される場合がある。ピクチャ内の最後のスライスであるslice3の左上端タイルのインデックスは、ピクチャでslice0、slice1およびslice2以外の残りの領域内の左上端に位置するタイルのインデックスに設定され、slice3の右下端タイルのインデックスは、残りの領域内の右下端に位置するタイル(または、ピクチャの右下端に位置するタイル)のインデックスに設定される場合がある。
スライスに含まれたタイルのインデックスを特定するための差分情報を符号化してシグナリングすることもできる。一例として、スライスの左上端に位置するタイルのインデックスとスライスの右下端に位置するタイルのインデックスとの差分値を示す情報をビットストリームを介してシグナリングする場合がある。一例として、i番目のスライスに対して、スライスの左上端に位置するタイルのインデックスを識別するためのシンタックスtop_left_tile_idx[i]およびスライスの左上端に位置するタイルのインデックスとスライスの右下端に位置するタイルのインデックスとの差分を示すシンタックスbottom_right_tile_idx_delta[i]がシグナリングされる場合がある。i番目のスライスの右側下端タイルのインデックスは、top_left_tile_idx[i]およびbottom_right_tile_idx_delta[i]を合算して導出される場合がある。最後のスライスに対しては、スライスの左上端に位置するタイルのインデックスを示すシンタックスまたはスライスの左上端に位置するタイルのインデックスとスライスの右下端に位置するタイルのインデックスとの差分を示すシンタックスのうち少なくとも一つの符号化が省略される場合がある。現在ピクチャ内の前のスライスが占める領域以外の残りの領域が最後のスライスに設定される場合がある。
または、水平方向タイルインデックス差分情報または垂直方向タイルインデックス差分情報のうち少なくとも一つを符号化してシグナリングする場合がある。水平方向タイルインデックス差分情報は、最初のタイルのインデックスと、最初のタイルと同一のタイル行に含まれた最右側タイルのインデックスとの差分を示す場合がある。垂直方向タイルインデックス差分情報は、最初のタイルのインデックスと、最初のタイルと同一のタイル列に含まれた最下端タイルのインデックスとの差分を示す場合がある。
スライスの位置に応じて、符号化される差分情報タイプが判定される場合がある。一例として、ピクチャの右側境界または下端境界に隣接するスライスに対しては、水平方向タイルインデックス差分情報または垂直方向インデックス差分情報を符号化してシグナリングする場合がある。左側上端タイルと右側上端タイルとのインデックス差分を示す情報の代わりに、水平方向タイルインデックス差分情報または垂直方向インデックス差分情報を符号化することで、ビット量を減少させる場合がある。
または、ピクチャが少なくとも一つ以上のスライス行に分割される場合、ピクチャの左側境界に隣接するスライスに対しては、左側上端タイルと右側下端タイルとのインデックス差分を示す情報を符号化する場合がある。同一の行に属するスライスは、同一の高さを有するように設定される場合がある。
第1スライスが含むタイルのインデックスと第2スライスが含むタイルのインデックスとの差分情報を符号化してシグナリングすることもできる。ここで、第1スライスおよび第2スライスは、スキャン順序に基づいて決定され、各スライスが占めるタイルは相違する場合がある。
一例として、第1スライスを構成するタイルと第2スライスを構成するタイルが相違する場合、第2スライスのインデックスは、第1スライスのインデックスiに1を加算したものである場合がある。
または、第1タイルが複数のスライスを含むように分割された場合、第1タイルに含まれた第1スライスと、スキャン順序上、第1タイルの次のタイルである第2タイルを含む第2スライスまたは第2タイルに含まれた第2スライスとの差分情報が符号化される場合がある。この場合、第1タイルに含まれた複数のスライスのうち最初のスライスまたは最後のスライスに対してのみ差分情報が符号化される場合がある。
第1スライスと第2スライスとの差分情報を導出するために用いられるタイルは、スライスの左上端、右上端、右下端、左下端または中央に位置するものである場合がある。
表14は、差分情報を含むシンタックステーブルを例示するものである。
Figure 2024001181000027
Figure 2024001181000028
一例として、i番目のスライスの左上端タイルと前のスライス(すなわち、i-1番目のスライス)の左上端タイルとのインデックス差分を示すシンタックスtop_left_brick_idx_delta[i]がビットストリームを介してシグナリングされる場合がある。
差分情報に基づいて、i番目のスライス内の左上端タイルの位置が決定される場合がある。具体的には、i番目のスライスの左上端タイルのインデックスは、i-1番目のスライスの左上端タイルインデックスとシンタックスtop_left_brick_idx_delta[i]を合算して導出する場合がある。数式11は、i番目のスライスの左上端タイルのインデックスを導出する例を示すものである。
Figure 2024001181000029
数式11において、TopLeftBrickIdx[i-1]は、i-1番目のスライスの左上端タイルのインデックスを示す。
最初のスライス(すなわち、インデックスiが0であるスライス)に対しては、前のスライスとの差分情報を示すシンタックスtop_left_brick_idx_delta[i]の符号化を省略する場合がある。最初のスライスに対しては、スライスの左上端タイルと右下端タイルとのインデックス差分を示すシンタックスbottom_right_brick_idx_delta[i]を符号化してシグナリングする場合がある。
表15は、インデックス情報および差分情報を用いて、各タイルが属するスライスを特定する過程を示す例である。
Figure 2024001181000030
NumBricksInSlice[i]は、スライスiが含むタイルの個数を示す。botRightBkIdxは、右下端タイルのインデックスを示す。右下端タイルのインデックスは、シンタックスtop_left_brick_idx_minus1[i]およびシンタックスbottom_right_idx_delta[i]の和に1を加算して導出される場合がある。
BrickColBd[j]は、タイルjが属するタイル列のインデックスを示す。BrickRowBd[j]は、タイルjが属するタイル行のインデックスを示す。BricksToSliceMap[j]=iは、タイルjをスライスiに追加することを示す。
表16は、差分情報を用いて、各タイルが属するスライスを特定する過程を示す例である。
Figure 2024001181000031
NumBricksInSlice[i]は、スライスiが含むタイルの個数を示す。TopLeftBrickIdx[i]は、スライスiの左上端タイルのインデックスを示す。botRightBkIdxは、右下端タイルのインデックスを示す。BrickColBd[j]は、タイルjが属するタイル列のインデックスを示す。BrickRowBd[j]は、タイルjが属するタイル行のインデックスを示す。BricksToSliceMap[j]=iは、タイルjをスライスiに追加することを示す。
シンタックスtop_left_brick_idx_delta[i]の代わりに、i番目のスライスの右下端タイルと前のスライス(すなわち、i-1番目のスライス)の右下端タイルとのインデックス差分を示すシンタックスbottom_right_brick_idx_delta[i]をビットストリームを介してシグナリングすることもできる。この場合、i番目のスライスの右下端タイルのインデックスは、前のスライスの右下端タイルのインデックスにシンタックスbottom_right_brick_idx_delta[i]を合算して導出される場合がある。
最初のスライスに対するbottom_right_brick_idx_delta[0]は、最初のスライスの右下端タイルのインデックスと同様に設定される場合がある。すなわち、最初のスライスの右下端タイルのインデックスは、シンタックスbottom_right_brick_idx_delta[0]と同様に設定される場合がある。
ビットストリームを介して、ピクチャ内のi番目のスライスに含まれたタイルのインデックスが、i-1番目のスライスに含まれたタイルのインデックスより大きい値を有するか否かを示す情報が符号化されてシグナリングされる場合がある。一例として、シンタックスbottom_right_increasing_order_flagがビットストリームを介してシグナリングされる場合がある。フラグbottom_right_increasing_order_flagが1であることは、ピクチャ内のi番目のスライスに含まれたタイルのインデックスは、i-1番目のスライスに含まれたタイルのインデックスより常に大きい値を有することを示す。一方、bottom_right_increasing_order_flagが0であることは、ピクチャ内の少なくとも一つのスライスに含まれたタイルのインデックスが前のスライスに含まれたタイルのインデックスより小さい値を有する場合があることを示す。
スライスの幅または高さのうち少なくとも一つを特定する情報を用いてスライスを画定することもできる。一例として、i番目のスライスの幅を示すシンタックスslice_width_in_tiles_minus1[i]またはi番目のスライスの高さを示すシンタックスslice_height_in_tiles_minus1[i]のうち少なくとも一つがビットストリームを介してシグナリングされる場合がある。
シンタックスslice_width_in_tiles_minus1[i]は、i番目のスライスに含まれたタイル列の個数から1を差分した値を示す。シンタックスslice_height_in_tiles_minus[i]は、i番目のスライスに含まれたタイル行の個数から1を差分した値を示す。
i番目のスライスは、シンタックスslice_width_in_tiles_minus1[i]に基づいて決定される個数だけのタイル列およびシンタックスslice_height_in_tiles_minus1[i]に基づいて決定される個数だけのタイル行で構成される場合がある。この場合、i番目のタイル列の左上端タイルは、top_left_brick_idx_delta[i]に基づいて決定されるインデックス値を有する場合がある。
または、ピクチャの左側境界に隣接するスライスに対してのみ、スライスの高さを示すシンタックスslice_height_in_tiles_minus1[i]をシグナリングし、それ以外のスライスに対しては、シンタックスslice_height_in_tiles_minus1[i]の符号化を省略する場合がある。シンタックスslice_height_in_tiles_minus[i]の符号化が省略されるスライスの高さは、同一の行に含まれたスライスのうち現在ピクチャの左側境界に接するスライスの高さと同様に設定される場合がある。
最初のスライスの左側上端タイルのインデックスTopLeftBrickIdx[0]は、0に設定される場合がある。これにより、二番目のスライス(すなわち、インデックスiが1であるスライス)では、シンタックスtop_left_brick_idx_delta[i]が、実質的に左上端タイルのインデックスと同一の値を有する。これにより、二番目のスライスに対しては、シンタックスtop_left_brick_idx_delta[i]の代わりに、シンタックスtop_left_brick_idx[i]をシグナリングする場合がある。ここで、top_left_brick_idx[i]は、i番目のスライスの左上端タイルのインデックスを示す。
他の例として、シンタックスtop_left_brick_idx_delta[i]をi番目のスライスの最初のタイルとi+1番目のスライスの最初のタイルとの差分に設定することもできる。すなわち、i+1番目のスライスの左上端タイルのインデックスは、i番目のスライスの左上端タイルのインデックスとi番目のスライスに対してシグナリングされるシンタックスtop_left_brick_idx_delta[i]を合算して導出する場合がある。シンタックスtop_left_brick_idx_delta[i]がi番目のスライスとi+1番目のスライスとの差分情報を示す場合、最後のスライスに対しては、シンタックスtop_left_brick_idx_delta[i]の符号化が省略される場合がある。
以下の表17のようなシンタックステーブルを用いて、スライスを決定することもできる。
Figure 2024001181000032
Figure 2024001181000033
スライスタイプを示すフラグrect_slice_flagを符号化し、フラグrect_slice_flagが1である場合、ピクチャ内のスライスの個数を示すシンタックスnum_slices_in_pic_minus1を符号化する場合がある。
ピクチャが複数個のスライスを含むものと判定された場合、各スライスの幅を示すシンタックスslice_width_in_tiles_minus1[i]および各スライスの高さを示すシンタックスslice_height_in_tiles_minus1[i]を符号化してシグナリングする場合がある。
また、i番目のスライスに含まれたタイルのインデックスとi+1番目のスライスに含まれたタイルのインデックスとの差分を示すシンタックスtile_idx_delta[i]をシグナリングすることもできる。最後のタイルに対しては、シンタックスtile_idx_delta[i]の符号化が省略される場合がある。
二つのスライス間のタイルインデックス差分からオフセットを減算して導出されるシンタックスを符号化することもできる。オフセットは、1または2などの自然数である場合がある。一例として、シンタックスtile_idx_delta_minus1[i]がビットストリームを介してシグナリングされる場合がある。i番目のスライスに含まれたタイルのインデックスとi+1番目のスライスに含まれたタイルのインデックスとの差分は、シンタックスtile_idx_delta_minus1[i]に1を加算して導出される場合がある。
タイルインデックスの差分情報は、現在ピクチャが含むスライスが複数個である場合に、符号化/復号される場合がある。すなわち、現在ピクチャが単一スライスで構成された場合には、タイルインデックスの差分を示すシンタックスtile_idx_delta[i]のシグナリングが省略される場合がある。例えば、現在ピクチャが単一スライスで構成されるか否かを示すフラグone_slice_in_pic_flagが1である場合、シンタックスtile_idx_delta[i]のシグナリングが省略される場合がある。
または、符号化器は、タイルインデックスの差分を示すシンタックスtile_idx_delta[i]を符号化すべきか否かを判定し、判定にしたがって、シンタックスtile_idx_delta[i]が符号化されているか否かを示すフラグtile_idx_delta_present_flagを符号化する場合がある。フラグtile_idx_delta_present_flagの値が0であることは、シンタックスtile_idx_delta[i]が符号化/復号されていないことを示す。フラグtile_idx_delta_present_flagの値が1である場合、少なくとも一つのスライスに対して、シンタックスtile_idx_delta[i]が符号化/復号される場合がある。
一つのタイルを複数個のスライスに分割することもできる。一例として、タイルを水平方向にタイルを分割して、複数個のスライドを生成する場合がある。
スライスが複数個のタイルを含まないと判定された場合、タイルを複数個のスライスに分割するか否かが判定される場合がある。一例として、シンタックスslice_width_in_tiles_minus1[i]およびシンタックスslice_height_in_tiles_minus1[i]がいずれも0であることは、スライスが一つのタイルだけで構成されるか、一つのタイルが複数のスライスに分割されることを示す。
シンタックスslice_width_in_tiles_minus1[i]およびシンタックスslice_height_in_tiles_minus1[i]がいずれも0である場合、タイルが複数のスライスに分割されるか否かを示す情報がシグナリングされる場合がある。
一例として、タイルが含むスライスの個数を示すシンタックスnum_slices_in_tile_minus1[i]がシグナリングされる場合がある。シンタックスnum_slices_in_tile_minus1[i]は、i番目のタイルが含むスライスの個数から1を差分した値を示す。
i番目のスライスを含むタイルが複数個のスライスで構成された場合、タイル内のスライスそれぞれの高さを示すシンタックスが符号化される場合がある。一例として、i番目のスライスを含むタイル内のj番目のスライス(すなわち、i+j番目のスライス)の高さを示すシンタックスslice_height_in_ctu_minus1[i][j]がシグナリングされる場合がある。シンタックスslice_height_in_ctu_minus1[i][j]は、i番目のスライスを含むタイル内のj番目のスライスが含むコーディングツリーユニット行の個数を示す場合がある。表18は、スライスの高さを示すシンタックスslice_height_in_ctu_minus1[i][j]を含むシンタックス構造を例示するものである。
Figure 2024001181000034
Figure 2024001181000035
タイルの高さに基づいて、スライスの高さを示すシンタックスを符号化/復号するか否かを判定する場合がある。一例として、i番目のスライスを含むタイルが単一のコーディングツリーユニット行で構成された場合、または、i番目のスライスを含むタイルが2個のコーディングツリーユニット行で構成された場合、スライスの高さを示すシンタックスslice_height_in_ctu_minus1[i][j]の符号化/復号を省略する場合がある。シンタックスslice_height_in_ctu_minus1[i][j]の高さは、タイル内のスライスの個数に応じて適応的に決定される場合がある。一例として、タイル内のスライスの個数が1個である場合、スライスの高さは、タイルの高さと同様に設定される場合がある。または、タイル内のスライスの個数が2個であり、タイルの高さが2である場合、各スライスの高さは、1に設定される場合がある。表18において、変数TileIdx[i]は、i番目のスライスを含むタイルのインデックスを示し、変数NumTileColumnは、タイル列の個数を示す。TileIdx[i]/NumTileColumnは、i番目のスライスを含むタイルが含まれる行を返還する。変数RowHeight[TileIdx[i]/NumTileColumn]は、i番目のスライスを含むタイルの高さを示す。
他の例として、明示的にシグナリングされる必要があるスライス高さの個数を示す情報を示すシンタックスnum_exp_slices_in_tile[i]がビットストリームを介してシグナリングされる場合がある。シンタックスnum_exp_slices_in_tile[i]は、タイルが含むスライスの個数と同一または小さい値を有する場合がある。
シンタックスnum_exp_slices_in_tile[i]が0であることは、タイルが複数個のスライスに分割されないことを示す。シンタックスnum_exp_slices_in_tile[i]が0より大きいことは、タイルが複数個のスライスに分割される場合があることを示す。
シンタックスnum_exp_slices_in_tile[i]の個数だけスライスの高さを示す情報がシグナリングされる場合がある。一例として、シンタックスnum_exp_slices_in_tileが1より大きい場合、タイル内のj番目のスライスの高さを示すシンタックスexp_slice_height_in_ctu_minus1[j]がシグナリングされる場合がある。
スライスのインデックスjが高さが明示的にシグナリングされるスライスの個数より小さい場合、スライスjの幅は、ビットストリームを介してシグナリングされるシンタックスexp_slice_height_in_ctu_minus1[j]に基づいて決定される場合がある。一方、スライスのインデックスkが高さが明示的にシグナリングされるスライスの個数以上である場合、スライスkの高さは、最後にシグナリングされたシンタックスexp_slice_height_in_ctu_minus1[l]に基づいて決定される場合がある。ここで、lは、最後に高さがシグナリングされたスライスのインデックスを示し、kより小さい整数である場合がある。
一例として、タイルの高さから前のスライスの高さを差分した値が、シンタックスexp_slice_height_in_ctu_minus1[l]に1を加算した値以上である場合、スライスkの高さは、シンタックスexp_slice_height_in_ctu_minus1[l]に1を加算した値に設定される場合がある。一方、タイルの高さから前のスライスの高さを差分した値が、シンタックスexp_slice_height_in_ctu_minus1[l]に1を加算した値より小さい場合、タイルの高さから前のスライスの高さを差分した差分値をスライスkの高さに設定する場合がある。
すなわち、高さが明示的にシグナリングされるスライス以外の残りのスライスの高さは、高さが明示的にシグナリングされるスライスのうち最後のスライスの高さより小さいか同一の値を有する場合がある。
上述の例では、矩形状のスライスの画定方法が適用される場合に限って、ピクチャが単一のスライスで構成されるか否かを示すシンタックスone_slice_in_pic_flagを符号化するか否かが判定されるものと例示されている。例示されているものとは逆に、シンタックスone_slice_in_pic_flagを先に符号化した後、フラグone_slice_in_pic_flagの値に応じてシンタックスrect_slice_flagを符号化するか否かを判定することもできる。一例として、one_slice_in_pic_flagの値が1である場合、rect_slice_flagの符号化を省略する場合がある。
現在ピクチャ内のタイル列の個数が1個である場合、シンタックスslice_width_in_tiles_minus1の符号化が省略される場合がある。また、現在ピクチャ内のタイル行の個数が1個である場合、シンタックスslice_height_in_tiles_minus1の符号化が省略される場合がある。
または、スライスの幅を示す情報またはスライスの高さを示す情報のうち少なくとも一つの符号化を省略する場合がある。
一例として、スライスの幅を示すシンタックスslice_width_in_tiles_minus1の符号化を省略し、隣接スライス内の所定位置のタイルとの距離をスライスの幅に設定する場合がある。具体的には、シンタックスtop_left_brick_idx_delta[i]によって、i番目のスライスの右側に隣接するi+1番目のスライスの左上端タイルが特定される場合がある。i番目のスライスの幅は、i番目のスライス内の左上端タイルのx座標(例えば、左上端サンプルのx座標)と、i+1番目のスライス内の左上端タイルのx座標(例えば、左上端サンプルのx座標)との差分として導出される場合がある。
または、スライスの高さを示すシンタックスslice_height_in_tiles_minus1の符号化を省略し、隣接スライス内の所定位置タイルとの距離をスライスの幅に設定する場合がある。具体的には、シンタックスtop_left_brick_idx_delta[j-1]によって、i番目のスライスの下端に位置するj番目のスライスの左上端タイルが特定される場合がある。i番目のスライスの高さは、i番目のスライス内の左上端タイルのy座標(例えば、左上端サンプルのy座標)とj番目のスライス内の左上端タイルのy座標(例えば、左上端サンプルのy座標)との差分として導出される場合がある。
または、矩形状のスライスを画定するのに際し、差分値情報を用いるか否かを示す情報がビットストリームを介してシグナリングされる場合がある。一例として、差分値情報を用いるか否かを示すtile_idx_delta_present_flagがビットストリームを介してシグナリングされる場合がある。シンタックスtile_idx_delta_present_flagの値が1であることは、タイルインデックスの差分値を示すシンタックスが符号化されてシグナリングされることを示す。一例として、シンタックスtile_idx_delta_present_flagの値が1である場合、i番目のスライスは、スライスのサイズを示すシンタックスslice_width_in_tiles_minus1[i]およびシンタックスslice_height_in_tiles_minus1[i]とスライス内の左側上端タイルの位置または右側上端タイルの位置を決定するための差分値情報(例えば、top_left_brick_idx_delta[i-1]またはbottom_right_brick_idx_delta[i])によって画定される場合がある。
シンタックスtile_idx_delta_present_flagの値が0である場合、i番目のスライスは、スライスのサイズを示すシンタックスslice_width_in_tiles_minus1[i]およびシンタックスslice_height_in_tiles_minus1[i]によって画定される場合がある。シンタックスtile_idx_delta_prsent_flagの値が0である場合、現在ピクチャの左側境界に接するスライスの右側に隣接するスライスは、左側境界に接するスライスと同一の高さを有するように設定される場合がある。これにより、現在ピクチャの左側境界に接するスライスに対してのみスライスの高さを示す情報をシグナリングし、現在ピクチャの左側境界に接しないスライスに対しては、スライスの高さを示す情報のシグナリングを省略する場合がある。
スライス内のタイルのインデックスに基づいて、スライスのサイズを示す情報をシグナリングするか否かを決定する場合がある。一例として、表19は、スライス内のタイルインデックスに基づいて、スライスのサイズを決定する情報をシグナリングするか否かが判定されるシンタックス構造を示すものである。
Figure 2024001181000036
表19において、変数tileIdxは、i番目のスライスが含むタイルのインデックスを示す。具体的には、i番目のスライス内の予め画定された位置のタイルのインデックスを変数tileIdxに設定する場合がある。予め画定された位置のタイルは、左上端タイルを示す場合がある。
変数NumTileColumnsは、ピクチャが含むタイル列の個数を示す。一例として、i番目のスライス内の左上端タイルのインデックスと変数NumTileColumsから1を差分した値とのモジュロ演算(%)に基づいて、左上端タイルが属するタイル列の位置が決定される場合がある。一例として、モジュロ演算による結果値nは、左上端タイルが、インデックスがnであるタイル列に属することを示す。
スライス内の左上端タイルがピクチャ内の最右側タイル列に属する場合、スライスの幅を示すシンタックスslice_width_in_tiles_minus1[i]のシグナリングが省略される場合がある。一例として、モジュロ演算の結果が、ピクチャ内のタイル列の個数NumTileColumnsから1を差分した値と同一である場合、シンタックスslice_width_in_tiles_minus1[i]の符号化/復号下が省略される場合がある。この場合、シンタックスslice_width_in_tiles_minus1[i]の値は、0と見なす場合がある。
i番目のスライス内の左上端タイルのインデックスと変数NumTileColumnsとの除算演算に基づいて、左上端タイルが属するタイル行の位置が決定される場合がある。一例として、除算演算の商がmであることは、左上端タイルがインデックスmであるタイル行に含まれることを示す。
スライス内の左上端タイルがピクチャ内の最下端タイル行に属する場合、スライスの高さを示すシンタックスslice_height_in_tiles_minus[i]のシグナリングが省略される場合がある。一例として、除算演算の結果が、ピクチャ内のタイル行の個数NumTileRowsから1を差分した値と同一である場合、シンタックスslice_height_in_tiles_minus1[i]の符号化/復号が省略される場合がある。この場合、シンタックスslice_height_in_tiles_minus1[i]の値は、0と見なす場合がある。
スライス内の左上端タイルがピクチャ内の最右側列に属するとともに最下端行に属する場合、シンタックスslice_width_in_tiles_minus1[i]およびシンタックスslice_height_in_tiles_minus1[i]の符号化がいずれも省略される場合がある。この場合、二つのシンタックスの値は、いずれも0と見なす場合がある。
スライス内の左上端タイルがピクチャ内の最下端行に含まれていない場合、スライス内の左上端タイルがピクチャ内の最左側列に属するか否かおよび/またはタイルインデックス間の差分情報が符号化されているか否かのうち少なくとも一つを考慮して、スライスの高さを示すシンタックスslice_height_in_tiles_minus1[i]を符号化/復号するか否かが判定される場合がある。
一例として、スライス内の左上端タイルがピクチャ内の最下端行に含まれていなくても、タイルインデックス差分が符号化された場合(例えば、tile_idx_delta_present_flagが1である場合)スライスの高さを示すシンタックスslice_height_in_tiles_minus1[i]の符号化/復号が省略される場合がある。
または、スライス内の左上端タイルがピクチャ内の最下端行に属していなくても、左上端タイルがスライス内の最左側列に属していない場合、シンタックスslice_height_in_tiles_minus1[i]の符号化/復号が省略される場合がある。
スライス内の左上端タイルがピクチャ内の最下端行に属してはいないが、シンタックスslice_height_in_tiles_minus1[i]の符号化/復号が省略された場合、シンタックスは、前のスライスの高さslice_height_in_tiles_minus[i-1]と同様に設定される場合がある。
表20は、シンタックスslice_width_in_tiles_minus1[i]およびシンタックスslice_height_in_tiles_minus1[i]に対するセマンティクス(semantics)を示す。
Figure 2024001181000037
表19の例において、タイルインデックスの差分を示す情報が符号化されているか否かを示すシンタックスtile_idx_delta_present_flagは、現在ピクチャに含まれたスライスの個数が1個以上である場合に符号化/復号されるものと例示されている。
ピクチャ内のスライスの個数が2個である場合、ピクチャを水平方向または垂直方向に分割することで、長方形状のスライス2個を生成する場合がある。
図39は、ピクチャが2個であるスライスで構成された場合の例を示す図である。
図39の(a)は、ピクチャが水平方向に分割された例を示し、図39の(b)は、ピクチャが垂直方向に分割された例を示す。
図示されている例のように、ピクチャが2個のスライスのみを含む場合、スライスの幅を示すシンタックスまたはスライスの高さを示すシンタックスだけで2個のスライスのそれぞれを区分する場合がある。
一例として、図39の(a)に図示されている例のように、ピクチャを水平方向に分割する場合、インデックス0のスライスの幅を示すシンタックスslice_width_in_tiles_minus1[0]およびインデックス0のスライスの高さを示すシンタックスslice_height_in_tiles_minus1[0]に基づいて、スライス0を特定する場合がある。スライス1に対しては、スライスのサイズを決定するためのシンタックスの符号化/復号を省略し、ピクチャ内のスライス0以外の残りの領域をスライス1に設定する場合がある。また、スライス1の左上端タイルのインデックスは、スライス0に含まれているタイル行の個数とタイル列の個数の乗算から1を差分して導出する場合がある。
図39の(b)に図示されている例のように、ピクチャを垂直方向に分割する場合、インデックス0のスライスの幅を示すシンタックスslice_width_in_tiles_minus1[0]およびインデックス0のスライスの高さを示すシンタックスslice_height_in_tiles_minus1[0]に基づいて、スライス0を特定する場合がある。スライス1に対しては、スライスのサイズを決定するためのシンタックスの符号化/復号を省略し、ピクチャ内のスライス0以外の残りの領域をスライス1に設定する場合がある。また、スライス1の左上端タイルのインデックスは、スライス1に含まれているタイル行の個数と同様に導出する場合がある。
上記のように、ピクチャに2個のスライスのみが含まれている場合、タイルインデックスの差分を示す情報の符号化を省略しても、すべてのスライス内の左上端タイルのインデックスが導出される場合がある。これにより、ピクチャに含まれるスライスの個数が2個以下である場合、タイルインデックス差分情報を符号化/復号するか否かを示すシンタックスtile_idx_delta_present_flagの符号化/復号を省略し、その値を0と見なす場合がある。これにより、スライス別のtile_idx_delta[i]の符号化/復号も省略される場合がある。
表21は、現在ピクチャが含むスライスの個数が2個以下である場合、シンタックスtile_idx_delta_present_flagの符号化/復号が省略されるシンタックス構造を示す。
Figure 2024001181000038
表21の例のように、シンタックスtile_idx_delta_present_flagは、シンタックスnum_slices_in_pic_minus1が1より大きい場合に限って符号化/復号される場合がある。
タイルのインデックスの代わりにコーディングツリーユニットのインデックスに基づいてスライスを画定することも可能である。
上述の例では、ラスタースキャン順序にしたがってタイルに順番を付与して、スライスが画定されるものと仮定した。他の例として、垂直スキャン、水平スキャンまたは対角スキャンによってタイルに順番を付与して、スライスを画定することもできる。
復号過程または符号化過程を中心に説明されている実施形態を、符号化過程または復号過程に適用することは、本発明の範囲に含まれる。所定の順序で説明されている実施形態を、説明されているものと相違する順序で変更することも、本発明の範囲に含まれる。
上述の実施形態は、一連のステップまたはフローチャートに基づいて説明されているが、これは、発明の時系列的順序を限定したものではなく、必要に応じて、同時に行われるか異なる順序で行われる場合がある。また、上述の実施形態において、ブロック図を構成する構成要素(例えば、ユニット、モジュールなど)のそれぞれは、ハードウェア装置またはソフトウェアとして実現されることもでき、複数の構成要素が結合して一つのハードウェア装置またはソフトウェアとして実現されることもできる。上述の実施形態は、様々なコンピュータ構成要素により実行される場合があるプログラム命令語の形態に実現され、コンピュータ可読記録媒体に記録される場合がある。コンピュータ可読記録媒体は、プログラム命令語、データファイル、データ構造などを単独でまたは組み合わせて含む場合がある。コンピュータ可読記録媒体の例としては、ハードディスク、フロッピーディスクおよび磁気テープなどの磁気媒体、CD-ROM、DVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの磁気-光媒体(magneto-optical media)、およびROM、RAM、フラッシュメモリなどのプログラム命令語を格納し実行するように特別に構成されたハードウェア装置が含まれる。ハードウェア装置は、本発明による処理を行うために、一つ以上のソフトウェアモジュールとして作動するように構成される場合があり、その逆の場合も同様である。
本発明は、映像を符号化/復号する電子装置に適用されうる。

Claims (12)

  1. 現在ピクチャを複数のタイルに分割することと、
    スライスタイプを示す分割情報を復号することであって、前記分割情報は矩形状スライスを適用するか否かを示す、復号することと、
    前記現在ピクチャ内のスライスの個数を決定することと、
    前記タイルを用いて、前記スライスを画定することと、を含み、
    前記スライスを画定することは、タイルインデックス差分情報が符号化されているか否かを示す差分情報存在フラグに基づいて行われ、
    前記現在ピクチャが含む前記スライスの個数に基づいて、前記差分情報存在フラグがパーシングされるか否かが判定される、映像復号方法。
  2. 前記差分情報存在フラグは、ビットストリームに第1スライスが含む第1タイルと、第2スライスが含む第2タイルとのインデックス差分値を示す差分情報が存在するか否かを示す、請求項1に記載の映像復号方法。
  3. 前記スライスの個数が2個である場合、前記差分情報存在フラグのパーシングが省略され、その値を0と見なす、請求項2に記載の映像復号方法。
  4. 前記スライスの個数が2個である場合、前記第1スライスに対しては幅情報または高さ情報がパーシングされ、前記第2スライスに対しては前記幅情報または前記高さ情報がパーシングされない、請求項3に記載の映像復号方法。
  5. 前記現在ピクチャが2個以上のスライスを含み、スライス内の左上端タイルが前記現在ピクチャ内の最右側タイル列に含まれる場合、幅情報のパーシングが省略される、請求項1に記載の映像復号方法。
  6. 前記現在ピクチャが2個以上のスライスを含み、スライス内の左上端タイルが前記現在ピクチャ内の最下端タイル行に含まれる場合、高さ情報のパーシングが省略される、請求項1に記載の映像復号方法。
  7. 現在ピクチャを複数のタイルに分割することと、
    矩形状スライスを適用するか否かを判定することと、
    前記現在ピクチャ内のスライスの個数を決定することと、
    前記タイルを用いて、前記スライスを画定することと、を含み、
    前記スライスを画定することは、タイルインデックス差分情報が符号化されているか否かを示す差分情報存在フラグを符号化するか否かを判定すること、を含み、
    前記現在ピクチャが含む前記スライスの個数に基づいて、前記差分情報存在フラグを符号化するか否かが判定される、映像符号化方法。
  8. 前記差分情報存在フラグは、ビットストリームに第1スライスが含む第1タイルと、第2スライスが含む第2タイルとのインデックス差分値を示す差分情報が存在するか否かを示す、請求項7に記載の映像符号化方法。
  9. 前記スライスの個数が2個である場合、前記差分情報存在フラグの符号化が省略され、前記差分情報の符号化が省略される、請求項8に記載の映像符号化方法。
  10. 前記スライスの個数が2個である場合、前記第1スライスに対しては幅情報または高さ情報が符号化され、前記第2スライスに対しては前記幅情報または前記高さ情報が符号化されない、請求項9に記載の映像符号化方法。
  11. 前記現在ピクチャが2個以上のスライスを含み、スライス内の左上端タイルが前記現在ピクチャ内の最右側タイル列に含まれる場合、幅情報の符号化が省略される、請求項7に記載の映像符号化方法。
  12. 前記現在ピクチャが2個以上のスライスを含み、スライス内の左上端タイルが前記現在ピクチャ内の最下端タイル行に含まれる場合、高さ情報の符号化が省略される、請求項7に記載の映像符号化方法。
JP2023173807A 2019-08-23 2023-10-05 映像信号の符号化/復号方法およびその装置 Pending JP2024001181A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
KR10-2019-0104079 2019-08-23
KR20190104079 2019-08-23
KR10-2020-0016171 2020-02-11
KR20200016171 2020-02-11
PCT/KR2020/011132 WO2021040321A1 (ko) 2019-08-23 2020-08-20 영상 신호 부호화/복호화 방법 및 이를 위한 장치
JP2022512866A JP7305879B2 (ja) 2019-08-23 2020-08-20 映像信号の符号化/復号方法およびその装置
JP2023106153A JP7364818B2 (ja) 2019-08-23 2023-06-28 映像信号の符号化/復号方法およびその装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2023106153A Division JP7364818B2 (ja) 2019-08-23 2023-06-28 映像信号の符号化/復号方法およびその装置

Publications (1)

Publication Number Publication Date
JP2024001181A true JP2024001181A (ja) 2024-01-09

Family

ID=74685588

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2022512866A Active JP7305879B2 (ja) 2019-08-23 2020-08-20 映像信号の符号化/復号方法およびその装置
JP2023106153A Active JP7364818B2 (ja) 2019-08-23 2023-06-28 映像信号の符号化/復号方法およびその装置
JP2023173807A Pending JP2024001181A (ja) 2019-08-23 2023-10-05 映像信号の符号化/復号方法およびその装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2022512866A Active JP7305879B2 (ja) 2019-08-23 2020-08-20 映像信号の符号化/復号方法およびその装置
JP2023106153A Active JP7364818B2 (ja) 2019-08-23 2023-06-28 映像信号の符号化/復号方法およびその装置

Country Status (7)

Country Link
US (3) US11425376B2 (ja)
EP (1) EP4020985A4 (ja)
JP (3) JP7305879B2 (ja)
KR (1) KR20210023754A (ja)
CN (2) CN113039799B (ja)
MX (1) MX2021016147A (ja)
WO (1) WO2021040321A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113039799B (zh) 2019-08-23 2023-08-01 苹果公司 图像信号编码/解码方法及其设备
CN114145020A (zh) * 2019-08-29 2022-03-04 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
EP4044593A4 (en) * 2019-10-09 2023-07-19 Apple Inc. METHOD AND DEVICE FOR ENCODING/DECODING VIDEO SIGNALS
WO2021107621A1 (ko) * 2019-11-28 2021-06-03 엘지전자 주식회사 영상/비디오 코딩을 위한 슬라이스 및 타일 구성

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
WO2013115560A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 공간 서브영역별로 비디오를 부호화하는 방법 및 그 장치, 공간 서브영역별로 비디오를 복호화하는 방법 및 그 장치
US20140010277A1 (en) * 2012-07-09 2014-01-09 Qualcomm, Incorporated Supplemental enhancement information (sei) messages having a fixed-length coded video parameter set (vps) id
GB2519745B (en) * 2013-10-22 2018-04-18 Canon Kk Method of processing disordered frame portion data units
CN115802058B (zh) * 2016-10-04 2023-09-15 有限公司B1影像技术研究所 图像编码/解码方法和计算机可读记录介质
US11184636B2 (en) * 2017-06-28 2021-11-23 Sharp Kabushiki Kaisha Video encoding device and video decoding device
US11509937B2 (en) * 2018-04-09 2022-11-22 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding video
KR102549562B1 (ko) 2018-07-09 2023-06-29 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법
CN116055732A (zh) 2018-09-14 2023-05-02 华为技术有限公司 视频译码方法,设备以及非瞬时性计算机可读介质
KR20200033194A (ko) * 2018-09-19 2020-03-27 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020124016A1 (en) 2018-12-14 2020-06-18 Futurewei Technologies, Inc. Arbitrary and wrap-around tile grouping
US20200236377A1 (en) * 2019-01-22 2020-07-23 Tencent America LLC Method for tile group identification
GB2584295A (en) * 2019-05-28 2020-12-02 Canon Kk Method and apparatus for encoding and decoding a video bitstream for merging regions of interest
WO2020254720A1 (en) 2019-06-20 2020-12-24 Nokia Technologies Oy An apparatus, a method and a computer program for video encoding and decoding
JP7403245B2 (ja) 2019-06-21 2023-12-22 キヤノン株式会社 画像復号装置、画像復号方法
KR20200145998A (ko) 2019-06-23 2020-12-31 주식회사 엑스리스 비디오 신호 처리 방법 및 장치
CN113039799B (zh) 2019-08-23 2023-08-01 苹果公司 图像信号编码/解码方法及其设备

Also Published As

Publication number Publication date
CN116684632A (zh) 2023-09-01
US20240056571A1 (en) 2024-02-15
JP7305879B2 (ja) 2023-07-10
JP2023126853A (ja) 2023-09-12
US11825086B2 (en) 2023-11-21
MX2021016147A (es) 2022-05-18
KR20210023754A (ko) 2021-03-04
EP4020985A1 (en) 2022-06-29
JP2022545713A (ja) 2022-10-28
US20230164315A1 (en) 2023-05-25
CN113039799A (zh) 2021-06-25
EP4020985A4 (en) 2023-08-23
WO2021040321A1 (ko) 2021-03-04
US20220007017A1 (en) 2022-01-06
CN113039799B (zh) 2023-08-01
JP7364818B2 (ja) 2023-10-18
US11425376B2 (en) 2022-08-23

Similar Documents

Publication Publication Date Title
KR102597617B1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR102617439B1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
JP7364818B2 (ja) 映像信号の符号化/復号方法およびその装置
JP7459069B2 (ja) 映像信号符号化/復号化方法及びその装置
CA3118429C (en) Image signal encoding/decoding method and apparatus therefor
JP2023179758A (ja) ビデオ信号符号化/復号方法及びその機器
KR20200145742A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR102619997B1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200122254A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR102597461B1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
JP2024045193A (ja) 映像信号の符号化/復号方法およびそのための装置
KR20210077625A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200145763A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
JP7486586B2 (ja) 画像信号の符号化/復号方法およびそのための装置
KR20210061944A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
JP2024063128A (ja) ビデオ信号符号化/復号化方法及びそのための機器
KR20210113922A (ko) 비디오 신호 처리 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231106