本発明は、多様な変更を加えることができ、さまざまな実施形態を有することができるが、ここでは、特定の実施形態を図面に例示して詳細に説明する。しかし、これは本発明を特定の実施態様に限定するものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物ないし代替物を含むものと理解されるべきである。
第1、第2、A、Bなどの用語は、多様な構成要素を説明するために使われるが、前記構成要素はこれらの用語によって限定されてはならない。これらの用語は、一つの構成要素を他の構成要素から区別するための目的のみで使われる。例えば、本発明の権利範囲から外れることなく、第1構成要素は第2構成要素と命名でき、これと同様に、第2構成要素も第1構成要素と命名できる。用語「及び/又は」は、複数の関連された記載項目の組み合わせ又は複数の関連された記載項目のいずれかを含む。
ある構成要素が他の構成要素に「連結されて」いるか「接続されて」いるとした場合、その他の構成要素に直接連結或いは接続されていることを意味するが、それらの間に別の構成要素が介在することもあると理解されるべきである。これに対し、ある構成要素が他の構成要素に「直接連結されて」いるか「直接接続されて」いるとした場合には、それらの間に別の構成要素が介在しないと理解されるべきである。
本明細書で使用した用語は、特定の実施形態を説明するために使われたものに過ぎず、本発明を限定するものではない。単数の表現は、文脈上明白に異なる意味を有しない限り、複数の表現を含む。本明細書において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品又はこれらの組み合わせが存在することを指定しようとするもので、一つ又はそれ以上の他の特徴や数字、段階、動作、構成要素、部品又はこれらの組み合わせの存在又は付加可能性を予め排除しないものと理解されるべきである。
他に定義しない限り、技術的又は科学的用語を含めてここで使用されるすべての用語は、本発明の属する技術分野における通常の知識を有する者によって一般的に理解されるのと同一の意味を有する。一般に使用される辞典に定義されている用語は、関連技術の文脈上の意味と一致するものと解釈されるべきであり、本明細書において明白に定義しない限り、理想的又は過度に形式的な意味で解釈されない。
画像符号化装置及び復号化装置は、パーソナルコンピュータ(PC:Personal Computer)、ノートパソコン、個人情報端末(PDA:Personal Digital Assistant)、携帯型マルチメディアプレーヤー(PMP:Portable Multimedia Player)、プレイステーションポータブル(PSP:PlayStation Portable)、無線通信端末(Wireless Communication Terminal)、スマートフォン(Smart Phone)、TV、仮想現実デバイス(Virtual Reality、VR)、拡張現実デバイス(Augmented Reality、AR)、複合現実デバイス(Mixed Reality、MR)、頭着用デバイス(Head Mounted Display、HMD)、スマートグラス(Smart Glasses)などのユーザ端末であるか、或いはアプリケーションサーバやサービスサーバなどのサーバ端末であり得る。各種機器又は有無線通信網との通信を行うための通信モデムなどの通信装置、画像を符号化又は復号化したり符号化又は復号化のために画面内又は画面間予測したりするための各種プログラムとデータを保存するためのメモリ(Memory)、プログラムを実行して演算及び制御するためのプロセッサ(Processor)などを備える様々な装置を含むことができる。また、画像符号化装置によってビットストリームに符号化された画像は、リアルタイム又は非リアルタイムでインターネット、近距離無線通信システム、無線LAN網、WiBro網、移動通信網などの有無線通信網(Network)などを介して、又はケーブルやユニバーサルシリアルバス(USB:Universal Serial Bus)などの様々な通信インターフェースを介して画像復号化装置へ伝送されて画像復号装置で復号化されて画像として復元及び再生できる。
また、画像符号化装置によってビットストリームに符号化された画像は、コンピュータ可読の記録媒体を介して符号化装置から復号化装置へ伝達されることも可能である。
前述した画像符号化装置と画像復号化装置は、それぞれ別途の装置であり得るが、実現によっては一つの画像符号化/復号化装置に作られ得る。その場合、画像符号化装置の一部の構成は、画像復号化装置の一部の構成と実質的に同じ技術要素であって、少なくとも同一の構造を含むか、或いは少なくとも同一の機能を行うように実現できる。
したがって、以下の技術要素とこれらの作動原理などについての詳細な説明では、対応技術要素の重複説明を省略する。
画像復号化装置は、画像符号化装置で行われる画像符号化方法を復号化に適用するコンピュータ装置に対応するので、以下の説明では、画像符号化装置を中心に説明する。
コンピュータ装置は、画像符号化方法及び/又は画像復号化方法を実現するプログラムやソフトウェアモジュールを保存するメモリと、メモリに接続されてプログラムを行うプロセッサとを含むことができる。画像符号化装置は符号化器、画像復号化装置は復号化器とそれぞれ呼ばれることがある。
通常、画像は一連の静止画像(Still Image)で構成でき、これらの静止画像はGOP(Group of Pictures)単位に区分できる。各静止画像をピクチャ(Picture)と呼ぶことがある。このとき、ピクチャは、プログレッシブ(Progressive)信号、インターレース(Interlace)信号でのフレーム(Frame)及びフィールド(Field)のうちのいずれかを示すことができ、画像は、符号化/復号化がフレーム単位で行われる場合には「フレーム」で表し、フィールド単位で行われる場合には「フィールド」で表すことができる。本発明では、プログレッシブ信号を仮定して説明するが、インターレース信号にも適用可能である。上位概念としてはGOP、シーケンス(Sequence)などの単位が存在することができる。また、各ピクチャは、スライス、タイル、ブロックなどの所定の領域に分割できる。また、一つのGOPにはIピクチャ、Pピクチャ、Bピクチャなどの単位が含まれ得る。Iピクチャは、参照ピクチャを使用せず、自体的に符号化/復号化されるピクチャを意味することができ、PピクチャとBピクチャは、参照ピクチャを用いて動き推定(Motion Estimation)及び動き補償(Motion Compensation)などの過程を行って符号化/復号化するピクチャを意味することができる。一般に、Pピクチャの場合はIピクチャとPピクチャを参照ピクチャとして用いることができ、Bピクチャの場合はIピクチャとPピクチャを参照ピクチャとして用いることができるが、これは符号化/復号化の設定によって上記の定義も変更できる。
ここで、符号化/復号化に参照されるピクチャを参照ピクチャ(Reference Picture)と呼び、参照されるブロック又は画素を参照ブロック(Reference Block)、参照画素(Reference Pixel)と呼ぶ。また、参照されるデータ(Reference Data)は、空間領域(Spatial Domain)の画素値だけでなく、周波数領域(Frequency Domain)の係数値、符号化/復号化過程中に生成、決定される様々な符号化/復号化情報であり得る。例えば、予測部では画面内予測関連情報又は動き関連情報、変換部/逆変換部では変換関連情報、量子化部/逆量子化部では量子化関連情報、符号化部/復号化部では符号化/復号化関連情報(コンテキスト情報)、インループフィルタ部ではフィルタ関連情報などが該当し得る。
画像をなす最小単位は画素(Pixel)であり得る。一つの画素を表現するのに使用されるビット数をビット深度(Bit Depth)と呼ぶ。一般に、ビット深度は8ビットであり、符号化の設定に応じて、それ以上のビット深度を支援することができる。ビット深度は、カラー空間(Color Space)に応じて少なくとも一つが支援できる。また、画像のカラーフォーマット(Color Format)に応じて、少なくとも一つのカラー空間で構成できる。カラーフォーマットに応じて、一定の大きさを有する一つ以上のピクチャ又は異なる大きさを有する一つ以上のピクチャで構成できる。例えば、YCbCr4:2:0の場合、一つの輝度成分(本例において、Y)と2つの色差成分(本例において、Cb/Cr)で構成できる。このとき、色差成分と輝度成分の構成比は、横1:縦2を持つことができる。他の例として、4:4:4の場合、横と縦が同じ構成比を持つことができる。上記の例の如く一つ以上のカラー空間で構成される場合、ピクチャは、各カラー空間への分割を行うことができる。
本発明では、一部のカラーフォーマット(本例において、YCbCr)の一部のカラー空間(本例において、Y)を基準に説明する。カラーフォーマットによる別のカラー空間(本例において、Cb、Cr)にも同じか類似の適用(特定のカラー空間に依存的な設定)をすることができる。しかし、各カラー空間に部分的な差(特定のカラー空間に独立的な設定)を置くことも可能である。すなわち、各カラー空間に依存的な設定は、各成分の構成比(例えば、4:2:0、4:2:2、4:4:4などに応じて決定)に比例するか、依存的な設定を持つことを意味することができ、各カラー空間に独立的な設定は、各成分の構成比に関係ないか独立的に該当カラー空間のみの設定を持つことを意味することができる。本発明では、符号化/復号化器に応じて、一部の構成に対しては独立的な設定を持つか依存的な設定を持つことができる。
画像符号化過程で必要な設定情報又は構文要素(Syntax Element)は、ビデオ、シーケンス、ピクチャ、スライス、タイル、ブロックなどの単位レベルで決定できる。これは、VPS(Video Parameter Set)、SPS(Sequence Parameter Set)、PPS(Picture Parameter Set)、Slice Header、Tile Header、Block Headerなどの単位でビットストリームに収録されて復号化器へ伝送できる。復号化器では、同じレベルの単位でパーシング(Parsing)して、符号化器から伝送された設定情報を復元して画像復号化過程で使用することができる。また、SEI(Supplement Enhancement Information)又はメタデータ(Metadata)などの形式で関連情報をビットストリームへ伝送し、パーシングして使用することができる。各パラメータセットは固有のID値を持っており、下位パラメータセットでは参照する上位パラメータセットのID値を持つことができる。例えば、下位パラメータセットでは、一つ以上の上位パラメータセットのうち一致するID値を持つ上位パラメータセットの情報を参照することができる。上述した様々な単位の例のうち、いずれかの単位が一つ以上の他の単位を含む場合に該当する単位は上位単位と呼び、含まれる単位は下位単位と呼ぶことがある。
前記単位で発生する設定情報の場合、該当単位ごとに独立的な設定に対する内容を含むか、以前、以後又は上位単位などに依存的な設定に関する内容を含むことができる。ここで、依存的な設定とは、以前、以後、上位単位の設定に従うというフラグ情報(例えば、1ビットフラグが1であれば設定に従う。0であれば設定に従わない。)で該当単位の設定情報を示すものと理解できる。本発明における設定情報は、独立的な設定についての例を中心に説明するが、現在単位の以前、以後の単位又は上位単位の設定情報に依存的な関係に対する内容への追加又は代替される例も含まれ得る。
図1は本発明の一実施形態に係る画像符号化装置のブロック図である。図2は本発明の一実施形態に係る画像復号化装置のブロック図である。
図1を参照すると、画像符号化装置は、予測部、減算部、変換部、量子化部、逆量子化部、逆変換部、加算部、インループフィルタ部、メモリ及び/又は符号化部を含んで構成でき、上記の構成のうち、一部は必ずしも含まれなくてもよく、実現に応じて一部又は全部が選択的に含まれてもよく、図示されていない追加的な一部の構成が含まれてもよい。
図2を参照すると、画像復号化装置は、復号化部、予測部、逆量子化部、逆変換部、加算部、インループフィルタ部及び/又はメモリを含んで構成でき、上記の構成のうち、一部は必ず含まれなくてもよく、実現によっては一部又は全部が選択的に含まれてもよく、図示されていない追加的な一部の構成が含まれてもよい。
画像符号化装置と画像復号化装置はそれぞれ別個の装置であり得るが、実現によっては一つの画像符号化/復号化装置に作られてもよい。その場合、画像符号化装置の一部の構成は、画像復号化装置の一部の構成と実質的に同じ技術要素であって、少なくとも同一の構造を含むか少なくとも同一の機能を行うように実現できる。したがって、以下の技術要素とこれらの作動原理などについての詳細な説明では、対応技術要素の重複説明を省略する。画像復号化装置は、画像符号化装置で行われる画像符号化方法を復号化に適用するコンピュータ装置に対応するので、以下の説明では画像符号化装置を中心に説明する。画像符号化装置は符号化器、画像復号化装置は復号化器とそれぞれ呼ばれることがある。
予測部は、ソフトウェアモジュールである予測モジュール(Prediction Module)を用いて実現でき、符号化するブロックに対して画面内予測(Intra Prediction)方式又は画面間予測(Inter Prediction)方式で予測ブロックを生成することができる。予測部は、画像で現在符号化しようとする現在ブロックを予測して予測ブロックを生成する。すなわち、予測部は、画像で符号化しようとする現在ブロックの各画素の画素値(Pixel Value)を画面内予測又は画面間予測を介して予測して、生成された各画素の予測画素値(Predicted Pixel Value)を有する予測ブロックを生成する。また、予測部は、予測ブロックを生成するために必要な情報を符号化部へ伝達して予測モードに対する情報を符号化するようにすることができ、それによる情報をビットストリームに収録してこれを復号化器へ伝送し、復号化器の復号化部は、これに対する情報をパーシングして予測モードに対する情報を復元した後、これを画面内予測又は画面間予測に使用することができる。
減算部は、現在ブロックから予測ブロックを減算して残差ブロック(Residual Block)を生成する。すなわち、減算部は、符号化しようとする現在ブロックの各画素の画素値と予測部を介して生成された予測ブロックの各画素の予測画素値との差を計算して、ブロック形態の残差信号(Residual Signal)である残差ブロックを生成する。
変換部は、空間領域に属する信号を周波数領域に属する信号に変換することができる。この時、変換過程を経て取得される信号を変換係数(Transformed Coefficient)という。例えば、減算部から伝達された残差信号を有する残差ブロックを変換して、変換係数を有する変換ブロックを取得することができるが、入力された信号は符号化の設定に応じて決定され、これは残差信号に限定されない。
変換部は、残差ブロックをアダマール変換(Hadamard Transform)、離散サイン変換(DST Based-Transform:Discrete Sine Transform)、離散コサイン変換(DCT Based-Transform:Discrete Cosine Transform)などの変換技法を用いて変換することができる。ところが、これに限定されず、これを改良及び変形させた様々な変換技法が使用できる。
例えば、上記変換のうち少なくとも一つの変換技法が支援でき、各変換技法で少なくとも一つの詳細変換技法が支援できる。このとき、少なくとも一つの詳細変換技法は、各変換技法で基底ベクトルの一部が異なるように構成される変換技法であり得る。例えば、変換技法として、DSTベースの変換とDCTベースの変換が支援できる。DSTの場合、DST-I、DST-II、DST-III、DST-V、DST-VI、DST-VII、DST-VIIIなどの詳細変換技法が支援でき、DCTの場合、DCT-I、DCT-II、DCT-III、DCT-V、DCT-VI、DCT-VII、DCT-VIIIなどの詳細変換技法が支援できる。
上記変換のうちのいずれか(例えば、一つの変換技法&一つの詳細変換技法)が基本変換技法として設定でき、これに追加的な変換技法(例えば、複数の変換技法||複数の詳細変換技法)を支援することができる。追加的な変換技法を支援するかどうかは、シーケンス、ピクチャ、スライス、タイルなどの単位で決定されて前記単位で関連情報が生成でき、追加的な変換技法が支援される場合、変換技法選択情報はブロックなどの単位で決定されて関連情報が生成できる。
変換は、k/垂直方向に行われ得る。例えば、変換における基底ベクトルを用いて水平方向に1次元変換を行い、垂直方向に1次元変換を行って総2次元変換を行うことにより、空間領域の画素値を周波数領域に変換することができる。
また、水平/垂直方向に変換が適応的に行われ得る。詳細には、少なくとも一つの符号化の設定に応じて、適応的に行われるかどうかが決定できる。例えば、画面内予測における予測モードが水平モードの場合には、水平方向にはDCT-I、垂直方向にはDST-Iが適用でき、画面内予測における予測モードが垂直モードである場合には、水平方向にはDST-VI、垂直方向にはDCT-VIが適用でき、前記予測モードがDiagonal down leftである場合には、水平方向にはDCT-II、垂直方向にはDCT-Vが適用でき、前記予測モードがDiagonal down rightである場合には、水平方向にはDST-I、垂直方向にはDST-VIが適用できる。
変換ブロックのサイズ及び形状の候補別符号化費用に応じて、各変換ブロックのサイズ及び形状が決定され、決定された各変換ブロックの画像データ及び決定された各変換ブロックのサイズ及び形状などの情報を符号化することができる。
前記変換形状のうち、正方形の変換が基本変換形状として設定でき、これに対する追加的な変換形状(例えば、長方形の形状)を支援することができる。追加的な変換形状を支援するかどうかはシーケンス、ピクチャ、スライス、タイルなどの単位で決定され、前記単位で関連情報が生成でき、変換形状選択情報はブロックなどの単位で決定されて関連情報が生成できる。
また、変換ブロック形状の支援は符号化情報に応じて決定できる。このとき、符号化情報はスライスタイプ、符号化モード、ブロックのサイズ及び形状、ブロック分割方式などが該当できる。すなわち、少なくとも一つの符号化情報に応じて一つの変換形状が支援でき、少なくとも一つの符号化情報に応じて複数の変換形状が支援できる。前者の場合は暗示的(Implicit)な状況であり、後者の場合は明示的(Explicit)な状況であり得る。明示的な場合は、複数の候補群のうち最適な候補群を指し示す適応的選択情報を生成し、これをビットストリームに収録することができる。本例を含めて、本発明では、明示的に符号化情報を生成する場合には、該当情報を様々な単位でビットストリームに収録し、復号化器で様々な単位で関連情報をパーシングして復号化情報に復元するものと理解できる。また、暗示的に符号化/復号化情報を処理する場合には、符号化器と復号化器で同じ過程、規則などによって処理されるものと理解できる。
一例として、スライスタイプに応じて長方形の変換支援が決定できる。Iスライスの場合に支援される変換形状は正方形の変換であり、P/Bスライスの場合に支援される変換形状は正方形又は長方形の変換であり得る。
一例として、符号化モードに応じて長方形の変換支援が決定できる。Intraの場合に支援される変換形状は正方形の変換であり、Interの場合に支援される変換形状は正方形又は長方形の変換であり得る。
一例として、ブロックのサイズ及び形状に応じて長方形の変換支援が決定できる。一定のサイズ以上のブロックで支援される変換形状は正方形の変換であり、一定のサイズ未満のブロックで支援される変換形状は正方形又は長方形の変換であり得る。
一例として、ブロック分割方式に応じて長方形の変換支援が決定できる。変換の行われるブロックが四分木(Quad Tree)分割方式によって取得されたブロックである場合、支援される変換形状は正方形の変換であり、二分木(Binary Tree)分割方式によって取得されたブロックである場合、支援される変換形状は正方形又は長方形の変換であり得る。
上記例は、一つの符号化情報に応じた変換形状の支援に対する例であり、複数の情報が組み合わせられて追加的な変換形状支援設定に関与することもできる。上記の例は、様々な符号化の設定に応じて追加的な変換形状の支援に対する一例に過ぎず、上記に限定されず、様々な変形の例が可能である。
符号化の設定又は画像の特性に応じて、変換過程は省略することができる。例えば、符号化の設定(本例において、無損失圧縮環境と仮定)に応じて変換過程(逆過程も含む)を省略することができる。他の例として、画像の特性に応じて変換による圧縮性能が発揮されない場合、変換過程を省略することができる。この時、省略する変換は、全体単位であるか、或いは水平単位及び垂直単位のうちのいずれかの単位であり得る。これは、ブロックのサイズ及び形状などに応じて、このような省略を支援するかどうかが決定できる。
例えば、水平と垂直の変換の省略がグループ化される設定では、変換省略フラグが1である場合には、水平方向及び垂直方向への変換が行われず、変換省略フラグが0である場合には、水平方向及び垂直方向への変換が行われ得る。 水平と垂直の変換の省略が独立的に動作する設定では、第1変換省略フラグが1である場合には水平方向への変換が行われず、第1変換省略フラグが0である場合には水平方向への変換が行われ、第2変換省略フラグが1である場合には垂直方向への変換が行われず、 第2変換省略フラグが0である場合には垂直方向への変換が行われる。
ブロックのサイズが範囲Aに該当する場合には変換省略が支援でき、ブロックのサイズが範囲Bに該当する場合には変換省略が支援できない。例えば、ブロックの横幅がMよりも大きいかブロックの縦幅がNよりも大きい場合には、前記変換省略フラグは支援できず、ブロックの横幅がmよりも小さいかブロックの縦幅がnよりも小さい場合には、前記変換省略フラグが支援できる。M(m)とN(n)は同じでも異なってもよい。前記変換関連設定は、シーケンス、ピクチャ、スライスなどの単位で決定できる。
追加的な変換技法が支援される場合、変換技法の設定は、少なくとも一つの符号化情報に応じて決定できる。このとき、符号化情報は、スライスタイプ、符号化モード、ブロックのサイズ及び形状、予測モードなどが該当することができる。
一例として、符号化モードに応じて変換技法の支援が決定できる。Intraの場合に支援される変換技法はDCT-I、DCT-III、DCT-VI、DST-II、DST-IIIであり、Interの場合に支援される変換技法はDCT-II、DCT-III、DST-IIIであり得る。
一例として、スライスタイプに応じて変換技法の支援が決定できる。Iスライスの場合に支援される変換技法はDCT-I、DCT-II、DCT-IIIであり、Pスライスの場合に支援される変換技法はDCT-V、DST-V、DST-VIであり、Bスライスの場合に支援される変換技法はDCT-I、DCT-II、DST-IIIであり得る。
一例として、予測モードに応じて変換技法の支援が決定できる。予測モードAで支援される変換技法はDCT-I、DCT-IIであり、予測モードBで支援される変換技法はDCT-I、DST-Iであり、予測モードCで支援される変換技法はDCT-Iであり得る。このとき、予測モードA、Bは方向性モード(Directional Mode)であり、予測モードCは非方向性モード(Non-Directional Mode)であり得る。
一例として、ブロックのサイズ及び形状に応じて変換技法の支援が決定できる。一定のサイズ以上のブロックで支援される変換技法はDCT-IIであり、一定のサイズ未満のブロックで支援される変換技法はDCT-II、DST-Vであり、一定のサイズ以上と一定のサイズ未満のブロックで支援される変換技法はDCT-I、DCT-II、DST-Iであり得る。また、正方形の形状で支援される変換技法はDCT-I、DCT-IIであり、長方形の形状で支援される変換技法はDCT-I、DST-Iであり得る。
上記例は、一つの符号化情報に応じた変換技法の支援に対する例であり、複数の情報が組み合わせられて追加的な変換技法の支援設定に関与することもできる。上記例の場合にのみ限定されず、他の例への変形も可能である。また、変換部は、変換ブロックを生成するために必要な情報を符号化部へ伝達してこれを符号化するようにすることができ、それによる情報をビットストリームに収録してこれを復号化器へ伝送し、復号化器の復号化部はこれに対する情報をパーシングして逆変換過程で使用することができる。
量子化部は、入力された信号を量子化することができる。この時、量子化過程を経て取得される信号を量子化係数(Quantized Coefficient)という。例えば、変換部から伝達された残差変換係数を有する残差ブロックを量子化して、量子化係数を有する量子化ブロックを取得することができるが、入力された信号は符号化の設定に応じて決定され、これは残差変換係数に限定されない。
量子化部は、変換された残差ブロックをデッドゾーン均一境界量子化(Dead Zone Uniform Threshold Quantization)、量子化重みマトリックス(Quantization Weighted Matrix)などの量子化技法を用いて量子化することができ、これに限定されず、これを改良及び変形させた様々な量子化技法が使用できる。追加的な量子化技法を支援するかどうかは、シーケンス、ピクチャ、スライス、タイルなどの単位で決定されて前記単位で関連情報が生成でき、追加的な量子化技法が支援される場合には、量子化技法選択情報はブロックなどの単位で決定されて関連情報が生成できる。
追加的な量子化技法が支援される場合、量子化技法の設定は少なくとも一つの符号化情報に応じて決定できる。このとき、符号化情報は、スライスタイプ、符号化モード、ブロックのサイズ及び形状、予測モードなどが該当することができる。
例えば、量子化部は、符号化モードに応じる量子化重みマトリックスと画面間予測/画面内予測に応じて適用される重みマトリックスとを互いに異なるように設定することができる。また、画面内予測モードに応じて適用される重みマトリックスを異なるように設定することができる。このとき、量子化重みマトリックスは、M×Nのサイズでブロックのサイズが量子化ブロックのサイズと同じであると仮定するとき、量子化成分の一部が異なる量子化マトリックスであり得る。
符号化の設定又は画像の特性に応じて、量子化過程は省略することができる。例えば、符号化の設定(本例において、無損失圧縮環境と仮定)に応じて量子化過程(逆過程も含む)を省略することができる。他の例として、画像の特性に応じて量子化による圧縮性能が発揮されない場合に量子化過程を省略することができる。このとき、省略する領域は全体領域であるかあるいは一部の領域である。これは、ブロックのサイズ及び形状などに応じて、このような省略を支援するかどうかが決定できる。
量子化パラメータ(Quantization Parameter、QP)についての情報は、シーケンス、ピクチャ、スライス、タイル、ブロックなどの単位で生成できる。例えば、最初にQP情報が生成される上位単位で基本QPを設定することができ<1>、下位単位に行くほど上位単位で設定されたQPと同じか異なる値にQPを設定することができる<2>。このような過程を経て一部の単位で行われる量子化過程で、QPは最終決定できる<3>。このとき、シーケンス、ピクチャなどの単位は<1>に、スライス、タイル、ブロックなどの単位は<2>に、ブロックなどの単位は<3>に該当する例であり得る。
QPについての情報は、各単位でのQPに基づいて生成することができる。又は、予め設定されたQPを予測値として設定して、各単位でのQPとの差分値情報を生成することができる。又は、上位単位で設定されたQP又は以前に同じ単位で設定されたQP又は隣接した単位で設定されたQPのうちの少なくとも一つに基づいて取得されるQPを予測値として設定して、現在単位でのQPとの差分値情報を生成することができる。又は、上位単位で設定されたQPと少なくとも一つの符号化情報に基づいて取得されるQPを予測値として設定して、現在単位でのQPとの差分値情報を生成することができる。このとき、以前の同じ単位は各単位の符号化順序に従って定義できる単位であり、隣接した単位は空間的に隣接した単位であり、符号化情報は該当単位のスライスタイプ、符号化モード、予測モード、位置情報などであり得る。
一例として、現在単位のQPは、上位単位のQPを予測値として設定して差分値情報を生成することができる。スライスで設定されたQPとピクチャで設定されたQPとの差分値情報を生成するか、或いはタイルで設定されQPとピクチャで設定されたQPとの差分値情報を生成することができる。また、ブロックで設定されたQPとスライス又はタイルで設定されたQPとの差分値情報を生成することができる。また、サブブロックで設定されたQPとブロックで設定されたQPとの差分値情報を生成することができる。
一例として、現在単位のQPは、少なくとも一つの隣接した単位のQPに基づいて取得されるQP、又は少なくとも一つの以前単位のQPに基づいて取得されるQPを予測値として設定して差分値情報を生成することができる。現在ブロックの左、左上、左下、上、右上などの隣接ブロックのQPに基づいて取得されたQPとの差分値情報を生成することができる。又は、現在ピクチャ以前の符号化されたピクチャのQPとの差分値情報を生成することができる。
一例として、現在単位のQPは、上位ユニットのQPと少なくとも一つの符号化情報に基づいて取得されるQPを予測値として設定して、差分値情報を生成することができる。現在ブロックのQPとスライスタイプ(I/P/B)に応じて補正されるスライスのQPとの差分値情報を生成することができる。又は、現在ブロックのQPと符号化モード(Intra/Inter)に応じて補正されるタイルのQPとの差分値情報を生成することができる。又は、現在ブロックのQPと予測モード(方向性/非方向性)に応じて補正されるピクチャのQPとの差分値情報を生成することができる。又は、現在ブロックのQPと位置情報(x/y)に応じて補正されるピクチャのQPとの差分値情報を生成することができる。この時、前記補正の意味は、予測に使用される上位単位のQPにオフセット形態で加算又は減算されることを意味することができる。このとき、符号化の設定に応じて少なくとも一つのオフセット情報が支援でき、所定の過程に応じて暗示的に処理されるか或いは明示的に関連情報が生成され得る。上記例の場合にのみ限定されず、他の例への変形も可能である。
上記例は、QP変動を指し示す信号が提供されるか活性化される場合に可能な例であり得る。例えば、QP変動を指し示す信号が提供されないか非活性化される場合、差分値情報は生成されず、前記予測されたQPは各単位のQPとして決定できる。他の例として、QP変動を指し示す信号が提供されるか活性化される場合、差分値情報は生成され、その値が0であるとき、前記予測されたQPは各単位のQPとして決定できる。
量子化部は、量子化ブロックを生成するために必要な情報を符号化部へ伝達してこれを符号化するようにすることができ、それによる情報をビットストリームに収録してこれを復号化器へ伝送し、復号化器の復号化部は、これに対する情報をパーシングしてこれを逆量子化過程に使用することができる。
上記例では、変換部と量子化部を介して残差ブロックを変換し量子化するという仮定の下に説明したが、残差信号を変換して変換係数を有する残差ブロックを生成し、量子化過程を行わなくてもよく、残差ブロックの残差信号を変換係数に変換せずに量子化過程のみを行うことができるだけでなく、変換と量子化過程の両方を行わなくてもよい。これは符号化器の設定に応じて決定できる。
符号化部は、生成された残差ブロックの量子化係数、変換係数、又は残差信号などを少なくとも一つのスキャン順序(例えば、ジグザグスキャン、垂直スキャン、水平スキャンなど)に応じてスキャンして量子化係数列、変換係数列、又は信号列を生成し、少なくとも一つのエントロピー符号化(Entropy Coding)技法を用いて符号化することができる。このとき、前記スキャン順序についての情報は、符号化の設定(例えば、符号化モード、予測モードなど)に応じて決定でき、暗示的に定めるか或いは明示的に関連情報を生成することができる。例えば、画面内予測モードに応じて、複数のスキャン順序の中からいずれかを選択することができる。
また、各構成部から伝達される符号化情報を含む符号化データを生成してビットストリームに出力することができ、これはマルチプレクサ(MUX:Multiplexer)で実現できる。このとき、符号化技法として指数ゴロム(Exponential Golomb)、コンテキスト適応型可変長符号化(CAVLC、Context Adaptive Variable Length Coding)、コンテキスト適応型二値算術符号化(CABAC、Context Adaptive Binary Arithmetic Coding)などの方法を用いて符号化することができ、これに限定されず、これを改良及び変形させた様々な符号化技法が使用できる。
前記残差ブロックデータと符号化/復号化過程で生成される情報などの構文要素に対するエントロピー符号化(本例ではCABACと仮定)を行うとき、エントロピー符号化装置は、二値化部(Binarizer)、コンテキストモデラー(Context Modeler)、二値算術符号化部(Binary Arithmetic Coder)を含むことができる。このとき、二値算術符号化部は、レギュラーコーディング部(Regular Coding Engine)及びバイパスコーディング部(Bypass Coding Engine)を含むことができる。
前記エントロピー符号化装置に入力される構文要素は、二値ではないことがあるので、構文要素が二値ではない場合、二値化部は構文要素を二値化して、0又は1からなるBinストリング(Bin String)を出力することができる。このとき、Binは、0又は1からなるビットを示すもので、二値算術符号化部を介して符号化できる。このとき、0と1の発生確率に基づいてレギュラーコーディング部及びバイパスコーディング部のいずれかが選択できる。これは符号化/復号化の設定に応じて決定できる。構文要素が0の頻度と1の頻度とが同じデータである場合には、バイパスコーディング部を使用することができ、そうでない場合には、レギュラーコーディング部を使用することができる。
前記構文要素に対する二値化を行うときに様々な方法が使用できる。例えば、固定長二値化(Fixed Length Binarization)、単項二値化(Unary Binarization)、切断ライス二値化(Truncated Rice Binarization)、K-th Exp-Golomb二値化などが使用できる。また、構文要素が持つ値の範囲に応じて、符号付き二値化又は符号なし二値化が行われ得る。本発明で発生する構文要素に対する二値化過程は、上記の例で言及された二値化だけでなく、その他の追加的な二値化方法を含めて行われ得る。
逆量子化部及び逆変換部は、前記変換部及び量子化部における過程を逆に行って実現できる。例えば、逆量子化部は、量子化部で生成された量子化変換係数を逆量子化することができ、逆変換部は、逆量子化された変換係数を逆変換して、復元された残差ブロックを生成することができる。
加算部は、予測ブロックと復元された残差ブロックとを加算して現在ブロックを復元する。復元されたブロックは、メモリに保存されて参照データ(予測部及びフィルタ部など)として使用できる。
インループフィルタ部は、デブロッキングフィルタ、画素適応的オフセット(Sample Adaptive Offset、SAO)、適応的ループフィルタ(Adaptive Loop Filter、ALF)などの少なくとも一つの後処理フィルタ過程を含むことができる。デブロッキングフィルタは、復元された画像から、ブロック間の境界に発生したブロック歪みを除去することができる。ALFは、復元された画像と入力画像とを比較した値に基づいてフィルタリングを行うことができる。詳細には、デブロッキングフィルタを介してブロックがフィルタリングされた後に復元された画像と入力画像とを比較した値に基づいてフィルタリングを行うことができる。又は、SAOを介してブロックがフィルタリングされた後に復元された画像と入力画像とを比較した値に基づいてフィルタリングを行うことができる。SAOは、復元された画像を入力画像と比較した値に基づいてオフセット差を復元し、バンドオフセット(Band Offset、BO)、エッジオフセット(Edge Offset、EO)などの形態で適用できる。詳細には、SAOは、デブロッキングフィルタが適用された復元画像に対して、少なくとも一つの画素単位で原本画像とのオフセットを加え、BO、EOなどの形態で適用できる。詳細には、ALFを介してブロックがフィルタリングされた後に復元された画像に対して、画素単位で原本画像とのオフセットを加え、BO、EOなどの形態で適用できる。
フィルタリング関連情報として、各後処理フィルタを支援するかどうかに対する設定情報が、シーケンス、ピクチャ、スライス、タイルなどの単位で生成できる。また、各後処理フィルタを実行するかどうかに対する設定情報がピクチャ、スライス、タイル、ブロックなどの単位で生成できる。前記フィルタの実行が適用される範囲は、画像の内部と画像の境界に区分でき、これを考慮した設定情報が生成できる。また、フィルタリング動作に関連する情報がピクチャ、スライス、タイル、ブロックなどの単位で生成できる。前記情報は暗示的又は明示的な処理を施すことができ、前記フィルタリングはカラー成分に応じて独立的なフィルタリング過程又は依存的なフィルタリング過程が適用できる。これは符号化の設定に応じて決定できる。インループフィルタ部は、前記フィルタリング関連情報を符号化部へ伝達してこれを符号化するようにすることができ、それによる情報をビットストリームに収録してこれを復号化器へ伝送し、復号化器の復号化部は、これに対する情報をパーシングしてインループフィルタ部に適用することができる。
メモリは、復元されたブロック又はピクチャを保存することができる。メモリに保存された復元ブロック又はピクチャは、画面内予測又は画面間予測を行う予測部に提供できる。詳細には、符号化器で圧縮されたビットストリームのキュー(Queue)形態の保存空間を符号化されたピクチャバッファ(Coded Picture Buffer、CPB)として置いて処理することができ、復号化された画像をピクチャ単位で保存する空間を復号化されたピクチャバッファ(Decoded Picture Buffer、DPB)として置いて処理することができる。CPBの場合、復号化単位が復号化の順序に従って保存され、符号化器内で復号化動作をエミュレート(Emulation)し、エミュレーション過程で圧縮されたビットストリームを保存することができ、CPBから出力されたビットストリームは復号化過程を経て復元され、復元された画像はDPBに保存され、DPBに保存されたピクチャは以後の画像符号化、復号化過程で参照できる。
復号化部は、前記符号化部における過程を逆に行って実現できる。例えば、ビットストリームから量子化係数列、変換係数列、又は信号列を受信し、これを復号化することができ、復号化情報を含む復号化データをパーシングして各構成部へ伝達することができる。
以下、本発明の一実施形態に係る画像符号化/復号化装置に適用される画像設定過程について説明する。これは、符号化/復号化を行う前の段階に適用される例(画像初期設定)であり得るが、一部の過程は、その他の段階(例えば、符号化/復号化が行われた後の段階又は符号化/復号化の内部段階など)で適用できる例でもあり得る。前記画像設定過程は、マルチメディアコンテンツの特性、帯域幅、ユーザ端末の性能及び接近性などのネットワーク及びユーザの環境を考慮して行われ得る。例えば、符号化/復号化の設定に応じて、画像の分割、画像のサイズ調整、画像の再構成などを行うことができる。後述する画像設定過程は、長方形の画像を中心に説明するが、これに限定されず、多角形の画像にも適用可能である。画像の形状に関係なく、同じ画像設定を適用するか或いは異なる画像設定を適用することができる。これは符号化/復号化の設定に応じて決定できる。例えば、画像の形状に対する情報(例えば、長方形又は非長方形の形状)を確認した後、それによる画像設定に対する情報を構成することができる。
後述する例では、カラー空間に依存的な設定を置くことを仮定して説明するが、カラー空間に独立的な設定を置くことも可能である。また、後述する例で独立的な設定の場合、各カラース空間で独立的に符号化/復号化の設定を置く例を含むことができ、一つのカラー空間について説明をしても、他のカラー空間に適用される例(例えば、輝度成分でMを生成すると、色差成分でNを生成)を含むことを仮定し、これを誘導することができる。また、依存的な設定の場合、カラーフォーマットの構成比(例えば、4:4:4、4:2:2、4:2:0など)に比例する設定を置く例(例えば、4:2:0の場合、輝度成分でMを生成すると、色差成分でM/2を生成)を含むことができ、特別な説明がなくても、各カラー空間に適用される例を含むことを仮定し、これを誘導することができる。これは、上記例にのみ限定されず、本発明に共通に適用される説明であり得る。
後述する例における一部の構成は、空間領域での符号化、周波数領域での符号化、ブロックベースの符号化、オブジェクトベースの符号化などの様々な符号化技法に適用できる内容であり得る。
入力された画像のまま符号化/復号化を行うのが一般的であり得るが、画像を分割して符号化/復号化を行う場合も発生することがある。例えば、伝送中にパケット損傷などによる被害を防ぐための目的で誤り耐性などのために分割を行うことができる。又は、画像の特性、種類などに応じて同じ画像内に異なる性質を有する領域を分類しようとする目的で分割を行うことができる。
本発明において、画像分割過程は、分割過程、及びそれに対する逆過程を含むことができる。後述する例では、分割過程を中心に説明するが、分割逆過程についての内容は、分割過程から逆に誘導することができる。
図3は画像を圧縮するために画像情報を階層別に分けた例示図である。
3aは画像のシーケンスを多数のGOPで構成した例示図である。一つのGOPには、3bのようにIピクチャ、Pピクチャ及びBピクチャで構成できる。一つのピクチャは、3cのようにスライス、タイルなどで構成できる。スライス、タイルなどは3dのように多数の基本符号化単位で構成され、基本符号化単位は図3eのように少なくとも一つの下位符号化単位で構成できる。本発明における画像設定過程は、3b、3cのようにピクチャ、スライス、タイルなどの単位に適用される例を基準に説明する。
図4は本発明の一実施形態に係る画像分割のさまざまな例示を示す概念図である。
4aは画像(例えば、ピクチャ)を横方向と縦方向に一定長さの間隔で分割した概念図である。分割された領域はブロック(Block)と呼ぶことができ、各ブロックは、ピクチャ分割部を介して取得される基本符号化単位(又は最大符号化単位)であり、後述する分割単位で適用される基本単位でもあり得る。
4bは画像を横方向と縦方向のうちの少なくとも一つの方向に分割した概念図である。分割された領域T0~T3はタイル(Tile)と呼ぶことができ、それぞれの領域は他の領域とは独立的或いは依存的な符号化/復号化を行うことができる。
4cは画像を連続するブロックのグループに分割した概念図である。分割された領域S0、S1は、スライス(Slice)と呼ぶことができ、各領域は、他の領域とは独立的又は依存的な符号化/復号化を行う領域であり得る。連続するブロックのグループは、スキャン順序に従って定義でき、一般に、ラスタースキャン(Raster Scan)順序に従うが、これに限定されず、符号化/復号化の設定に応じて決定できる。
4dは画像をユーザの定義による任意の設定でブロックのグループに分割した概念図である。分割された領域A0~A2は、任意分割領域(Arbitrary Partition)と呼ぶことができ、各領域は、他の領域とは独立的又は依存的な符号化/復号化を行う領域であり得る。
独立的な符号化/復号化は、一部の単位(又は領域)の符号化/復号化を行うときに、他の単位のデータを参照することができないということを意味することができる。詳細には、一部の単位のテクスチャ符号化及びエントロピー符号化で利用されるか生成される情報が互いに参照されず独立的に符号化され、復号化器でも一部の単位のテクスチャ復号化及びエントロピー復号化のために、他の単位のパーシング情報及び復元情報は互いに参照されなくてもよい。このとき、他の単位(又は領域)のデータを参照することができるかどうかは、空間的な領域(例えば、一つの画像内での領域相互間)で制限的であり得るが、符号化/復号化の設定に応じて、時間的な領域(例えば、連続した画像又はフレーム相互間)でも制限的な設定を置くことができる。例えば、現在画像の一部単位と他の画像の一部単位が連続性を持つか同じ符号化環境を持つ条件である場合には、参照可能であり、そうでない場合には、参照が制限できる。
また、依存的な符号化/復号化は、一部単位の符号化/復号化を行うときに、他の単位のデータを参照することができるということを意味することができる。詳細には、一部単位のテクスチャ符号化及びエントロピー符号化で利用されるか生成される情報が互いに参照されて依存的に符号化され、復号化器でも同様に一部単位のテクスチャ復号化及びエントロピー復号化のために、他の単位のパーシング情報及び復元情報は互いに参照できる。すなわち、一般な符号化/復号化と同じか類似の設定であり得る。この場合、画像の特性、種類など(例えば、360度画像)に応じて領域(本例において、投影フォーマットに応じて生成される表面<Face>など)を識別しようとする目的で分割された場合であり得る。
上記例での一部単位(スライス、タイルなど)に独立的な符号化/復号化の設定(例えば、独立的スライスセグメント)を置くことができ、一部単位に依存的な符号化/復号化の設定(例えば、依存的スライスセグメント)を置くことができ、本発明では、独立的な符号化/復号化の設定を中心に説明する。
4aのようにピクチャ分割部を介して取得される基本符号化単位は、カラー空間に応じて基本符号化ブロックに分けられ、画像の特性及び解像度などに応じてサイズ及び形状が決定できる。支援されるブロックのサイズ又は形状は、横幅、縦幅が2の指数乗(2n)で表現されるN×Nの正方形(2n×2n。256×256、128×128、64×64、32×32、16×16、8×8など。nは3~8の間の整数)であるか、或いはM×Nの長方形(2m×2n)であり得る。例えば、解像度に応じて、8k UHD級画像の場合は128×128、1080p HD級画像の場合は64×64、WVGA級画像の場合は16×16などのサイズに入力画像を分割することができ、画像の種類に応じて、360度画像の場合は256×256のサイズに入力画像を分割することができる。基本符号化単位は、下位符号化単位に分割されて符号化/復号化でき、基本符号化単位に対する情報は、シーケンス、ピクチャ、スライス、タイルなどの単位でビットストリームに収録されて伝送できる。これは復号化器でパーシングして関連情報を復元することができる。
本発明の一実施形態に係る画像符号化方法及び復号化方法で、次の画像分割段階を含むことができる。このとき、画像分割過程は、画像分割指示段階、画像分割タイプ識別段階、及び画像分割実行段階を含むことができる。また、画像符号化装置及び復号化装置は、画像分割指示段階、画像分割タイプ識別段階、画像分割実行段階を実現する画像分割指示部、画像分割タイプ識別部、及び画像分割実行部を含むように構成できる。符号化の場合は関連付けられた構文要素を生成することができ、復号化の場合は関連付けられた構文要素をパーシングすることができる。
4aの各ブロック分割過程で、前記画像分割指示部は省略可能であり、画像分割タイプ識別部はブロックのサイズ及び形状に関する情報を確認する過程であり、識別された分割タイプ情報を介して画像分割部で基本符号化単位にて分割を行うことができる。
ブロックの場合は、常に分割が行われる単位であり得るが、他の分割単位(タイル、スライスなど)は、符号化/復号化の設定に応じて、分割するかどうかが決定できる。ピクチャ分割部は、ブロック単位の分割を行った後に他の単位の分割を行うことを基本設定としておくことができる。このとき、ピクチャのサイズに基づいてブロック分割が行われ得る。
また、他の単位(タイル、スライスなど)で分割された後にブロック単位で分割することもできる。すなわち、分割単位のサイズに基づいてブロック分割が行われ得る。これは、符号化/復号化の設定に応じて明示的又は暗示的処理を介して決定できる。後述する例では、前者の場合を仮定し、ブロック以外の単位を中心に説明する。
画像分割指示段階では、画像分割を行うかどうかを決定することができる。例えば、画像分割を指示する信号(例えば、tiles_enabled_flag)が確認される場合には、分割を行うことができ、画像分割を指示する信号が確認されない場合には、分割を行わないか或いは他の符号化/復号化情報を確認して分割を行うことができる。
詳細には、画像分割を指示する信号(例えば、tiles_enabled_flag)が確認され、該当信号が活性化された場合(例えば、tiles_enabled_flag=1)には、複数の単位で分割を行うことができ、該当信号が非不活性化された場合(例えば、tiles_enabled_flag=0)には、分割を行わないことができる。又は、画像分割を指示する信号が確認されない場合、分割を行わないか或いは少なくとも一つの単位で分割を行うことを意味することができ、複数の単位で分割を行うかどうかは、他の信号(例えば、first_slice_segment_in_pic_flag)を介して確認することができる。
まとめると、画像分割を指示する信号が提供される場合、該当信号は、複数の単位で分割するかどうかを示すための信号であり、前記信号に応じて該当画像の分割か否かを確認することができる。例えば、tiles_enabled_flagは、画像分割か否かを示す信号であるとき、tiles_enabled_flagが1の場合には複数のタイルに分割されることを意味することができ、0の場合には分割されないことを意味することができる。
まとめると、画像分割を指示する信号が提供されない場合に分割を行わないか、或いは該当画像の分割か否かは他の信号によって確認することができる。例えば、first_slice_segment_in_pic_flagは、画像分割か否かを示す信号ではなく、画像内の1番目のスライスセグメントであるか否かを示す信号であるが、これにより、2つ以上の単位への分割か否か(例えば、前記フラグが0の場合には、複数のスライスに分割されたことを意味する)を確認することができる。
上記例の場合にのみ限定されず、他の例への変形も可能である。例えば、タイルにおいて画像分割を指示する信号が提供されなくてもよく、スライスにおいて画像分割を指示する信号が提供されてもよい。又は、画像の種類、特性などに応じて、画像分割を指示する信号が提供されてもよい。
画像分割タイプ識別段階では画像分割タイプを識別することができる。画像分割タイプは、分割を行う方法や、分割情報などによって定義できる。
4bにおいて、タイルは、水平方向と垂直方向に分割して取得される単位と定義することができる。詳細には、画像を横切る少なくとも一つの横又は縦分割線によって区画される四角形の空間内に隣接したブロックのグループと定義することができる。
タイルに対する分割情報は、横列と縦列との境界位置情報、横列と縦列のタイル個数情報、タイルのサイズ情報などを含むことができる。タイルの個数情報は、タイルの横列の個数(例えば、num_tile_columns)と縦列の個数(例えば、num_tile_rows)を含むことができ、これにより(横列の個数×縦列の個数)のタイルに分割することができる。タイルのサイズ情報は、タイルの個数情報に基づいて取得できるが、タイルの横幅又は縦幅が均等又は非均等であり得る。これは予め設定された規則の下で暗示的に決定されるか、又は明示的に関連情報(例えば、uniform_spacing_flag)を生成することができる。また、タイルのサイズ情報は、タイルの各横列と縦列のサイズ情報(例えば、column_width_tile[i]、row_height_tile[i])を含むことができるか、或いは各タイルの縦幅と横幅の情報を含むことができる。また、前記サイズ情報は、タイルサイズの均等か否か(例えば、uniform_spacing_flagが0であって非均等分割を意味するとき)に応じてさらに生成できる情報であってもよい。
4cにおいて、スライスは、連続するブロックのグループ単位と定義することができる。詳細には、所定のスキャン順序(本例において、ラスタースキャン)を基準に、連続するブロックのグループと定義することができる。
スライスに対する分割情報は、スライスの個数情報、スライスの位置情報(例えば、slice_segment_address)などを含むことができる。このとき、スライスの位置情報は、所定の(例えば、スライス内のスキャン順序上の1番目の順序)ブロックの位置情報であり得る。この時、位置情報は、ブロックのスキャン順序情報であり得る。
4dにおいて、任意の分割領域は様々な分割設定が可能である。
4dにおける分割単位は、空間的に隣接したブロックのグループと定義でき、これに対する分割情報は、分割単位のサイズ、形状、位置情報などを含むことができる。これは任意の分割領域に対する一部の例であり、図5のように多様な分割形状が可能である。
図5は本発明の一実施形態に係る画像分割方法の他の例示図である。
5a、5bの場合、横方向又は縦方向に少なくとも一つのブロック間隔で画像を複数の領域に分割することができ、分割は、ブロックの位置情報に基づいて行われ得る。5aは横方向に各ブロックの縦列情報に基づいて分割が行われた例A0、A1を示し、5bは縦、横方向に各ブロックの横列と縦列情報に基づいて分割が行われた例B0~B3を示す。これに対する分割情報は、分割単位の個数、ブロック間隔情報、分割方向などを含むことができ、これを所定の規則に応じて暗示的に含む場合、一部の分割情報は生成されないことがある。
5c、5dの場合、スキャン順序を基準に、連続するブロックのグループに画像を分割することができる。既存のスライスのラスタースキャン順序以外の追加的なスキャン順序が画像分割に適用できる。5cは開始ブロックを中心に時計回り又は反時計回りにスキャン(Box-Out)が行われる例C0、C1を示し、5dは開始ブロックを中心に垂直方向にスキャン(Vertical)が行われる例D0、D1を示す。これに対する分割情報は、分割単位の個数情報、分割単位の位置情報(例えば、分割単位内のスキャン順序上の1番目の順序)、スキャン順序に対する情報などを含むことができ、これを所定の規則に応じて暗示的に含む場合、一部の分割情報は生成されないことがある。
5eの場合、横方向と縦方向の分割線で画像を分割することができる。既存のタイルは、横又は縦分割線によって分割を行い、それにより四角形空間の分割形状を持つことができるが、分割線によって画像を横切る分割ができないことがある。例えば、画像の一部分割線に沿って画像を横切る分割の例(例えば、E1、E3、E4の右境界とE5の左境界をなす分割線)が可能であり、画像の一部分割線に沿って画像を横切る分割の例(例えば、E2とE3の下境界とE4の上境界をなす分割線)が不可能である。また、ブロック単位に基づいて分割(例えば、ブロック分割がまず行われた後に分割)を行うことができるか、或いは、前記横又は縦分割線などによって分割を行う(例えば、ブロック分割とは関係なく、前記分割線によって分割)ことができ、これにより、各分割単位はブロックの整数倍で構成されないこともある。このため、既存のタイルとは異なる分割情報が生成でき、これに対する分割情報は分割単位の個数情報、分割単位の位置情報、分割単位のサイズ情報などを含むことができる。例えば、分割単位の位置情報は、所定の位置(例えば、画像の左上端)を基準に位置情報(例えば、画素単位又はブロック単位で測定)が生成でき、分割単位のサイズ情報は、各分割単位の横と縦サイズ情報(例えば、画素単位又はブロック単位で測定)を生成することができる。
上記例のようにユーザの定義による任意の設定を持つ分割は、新しい分割方法を適用して行われるか、或いは既存の分割の一部構成が変更適用されて行われ得る。つまり、既存の分割方法を代替するか又は追加される分割形状で支援されることもあり、既存の分割方法(スライス、タイルなど)で一部の設定が変更適用された形態(例えば、他のスキャン順序に従うか、四角形形状の他の分割方法とそれによる他の分割情報の生成、依存的な符号化/復号化特性など)で支援されることも可能である。また、追加的な分割単位を構成する設定(例えば、スキャン順序に応じて分割するか或いは一定間隔の差に応じて分割する以外の設定)が支援でき、追加的な分割単位形状(例えば、四角形形状の空間に分割すること以外の三角形などの多角形形状)が支援されることも可能である。また、画像の種類、特性などに基づいて画像分割方法が支援されることも可能である。例えば、画像の種類、特性などに応じて一部の分割方法(例えば、360度画像の表面)が支援でき、これに基づいて分割情報が生成できる。
画像分割実行段階では、識別された分割タイプ情報に基づいて画像を分割することができる。すなわち、前記識別された分割タイプに基づいて複数の分割単位に分割を行うことができ、取得された分割単位に基づいて符号化/復号化を行うことができる。
このとき、分割タイプに応じて分割単位に符号化/復号化の設定を持つかどうかを決定することができる。すなわち、各分割単位の符号化/復号化過程に必要な設定情報は、上位単位(例えば、ピクチャ)で割り当てを受けることができるか、或いは分割単位の独立的な符号化/復号化の設定を持つことができる。
一般に、スライスの場合、分割単位の独立的な符号化/復号化の設定(例えば、スライスヘッダ)を持つことができ、タイルの場合、分割単位の独立的な符号化/復号化の設定を持つことができず、ピクチャの符号化/復号化の設定(例えば、PPS)に依存的な設定を持つことができる。このとき、タイルに関連して生成される情報は分割情報であり得る。これは、ピクチャの符号化/復号化の設定に含まれ得る。本発明では、上述したような場合にのみ限定されず、他の変形の例が可能である。
タイルに対する符号化/復号化設定情報をビデオ、シーケンス、ピクチャなどの単位で生成することができ、上位単位で少なくとも一つの符号化/復号化設定情報を生成し、それらのいずれか一つを参照することができる。又は、タイル単位で独立的な符号化/復号化設定情報(例えば、タイルヘッダ)を生成することができる。これは、タイル単位で少なくとも一つの符号化/復号化の設定を置いて符号化/復号化を行うという点で、上位単位で決定された一つの符号化/復号化の設定に応じるのと違いが存在する。つまり、すべてのタイルで一つの符号化/復号化の設定に応じることができるか、又は少なくとも一つのタイルで別のタイルとは異なる符号化/復号化の設定に応じて符号化/復号化を行うことができる。
上記例を用いてタイルでの様々な符号化/復号化の設定を中心に説明したが、これに限定されず、その他の分割タイプにも類似又は同一の設定を置くことができる。
一例として、一部の分割タイプには、上位単位で分割情報を生成し、上位単位の一つの符号化/復号化の設定に応じて符号化/復号化を行うことができる。
一例として、一部の分割タイプには、上位単位で分割情報を生成し、上位単位で各分割単位に対する独立的な符号化/復号化の設定を生成し、それにより符号化/復号化を行うことができる。
一例として、一部の分割タイプには、上位単位で分割情報を生成し、上位単位で複数の符号化/復号化の設定情報を支援し、各分割単位で参照する符号化/復号化の設定に応じて符号化/復号化を行うことができる。
一例として、一部の分割タイプには、上位単位で分割情報を生成し、該当分割単位で独立的な符号化/復号化の設定を生成し、それにより符号化/復号化を行うことができる。
一例として、一部の分割タイプには、該当分割単位で分割情報を含む独立的な符号化/復号化の設定を生成し、それにより符号化/復号化を行うことができる。
符号化/復号化の設定情報は、タイルのタイプ、参照するピクチャリストに関する情報、量子化パラメータ情報、画面間予測設定情報、インループフィルタリング設定情報、インループフィルタリングコントロール情報、スキャン順序、符号化/復号化を行うか否かなどのタイルの符号化/復号化に必要な情報を含むことができる。符号化/復号化の設定情報は、明示的に関連情報を生成することができるか、或いは上位単位で決定された画像のフォーマット、特性などに応じて暗示的に符号化/復号化に対する設定が決定されることも可能である。また、前記設定で取得した情報に基づいて明示的に関連情報を生成することができる。
以下、本発明の一実施形態に係る符号化/復号化装置で画像分割を行う例を示す。
符号化の開始前に入力画像に対する分割過程を行うことができる。分割情報(例えば、画像分割情報、分割単位設定情報など)を用いて分割を行った後、分割単位で画像を符号化することができる。符号化の完了後にメモリに保存することができ、画像符号化データをビットストリームに収録して伝送することができる。
復号化の開始前に分割過程を行うことができる。分割情報(例えば、画像分割情報、分割単位設定情報など)を用いて分割を行った後、分割単位で画像復号化データをパーシングして復号化することができる。復号化の完了後にメモリに保存することができ、複数の分割単位を一つに併合して画像を出力することができる。
上記例を用いて画像の分割過程について説明した。また、本発明では、複数の分割過程が行われ得る。
例えば、画像に対して分割を行うことができ、画像の分割単位に対して分割を行うことができる。前記分割は、同じ分割過程(例えば、スライス/スライス、タイル/タイルなど)、又は異なる分割過程(例えば、スライス/タイル、タイル/スライス、タイル/表面、表面/タイル、スライス/表面、表面/スライスなど)であり得る。このとき、先行する分割結果に基づいて、後行する分割過程が行われ得る。後行する分割過程で発生する分割情報は、先行する分割結果に基づいて発生することができる。
また、複数の分割過程Aを行うことができ、前記分割過程は、異なる分割過程(例えば、スライス/表面、タイル/表面など)であり得る。このとき、先行する分割結果に基づいて、後行する分割過程が行われるか、又は先行する分割結果とは関係なく独立的に分割過程が行われ得る。後行する分割過程で発生する分割情報は、先行する分割結果に基づいて発生するか或いは独立的に発生することができる。
画像の複数の分割過程は、符号化/復号化の設定に応じて決定でき、上記例に限定されず、様々な変形の例も可能である。
符号化器では上記の過程で発生する情報をシーケンス、ピクチャ、スライス、タイルなどの単位のうちの少なくとも一つの単位でビットストリームに収録し、復号化器では関連情報をビットストリームからパーシングする。すなわち、一つの単位に収録でき、複数の単位に重複して収録できる。例えば、一部情報の支援か否かに対する構文要素又は活性化か否かに対する構文要素などが一部の単位(例えば、上位単位)で生成でき、一部の単位(例えば、下位単位)で上記の場合と同じか類似の情報が生成できる。すなわち、上位単位で関連情報が支援及び設定された場合にも、下位単位での個別設定を持つことができる。これは上記例に限定されず、本発明で共通に適用される説明であり得る。また、SEI又はメタデータの形式でビットストリームに含まれ得る。
一方、入力された画像のまま符号化/復号化を行うのが一般であり得るが、画像のサイズを調整(拡張又は縮小。解像度の調整)した後、符号化/復号化を行う場合も発生することができる。例えば、空間的、時間的、画質的拡張性(Scalability)を支援するための階層的符号化方式(Scalability Video Coding)で画像の全体的な拡張、縮小などの画像サイズ調整を行うことができる。又は、画像の部分的な拡張、縮小などの画像サイズ調整を行うこともできる。画像サイズ調整は、様々な目的で可能であるが、符号化環境への適応性のための目的で行われてもよく、符号化統一性のための目的で行われてもよく、符号化効率性のための目的で行われてもよく、画質改善の目的で行われてもよく、画像の種類、特性などに応じて行われてもよい。
第1例示として、画像の特性、種類などに応じて行われる過程(例えば、階層的符号化、360度画像符号化など)でサイズ調整過程が行われ得る。
第2例示として、符号化/復号化の初期段階でサイズ調整過程が行われ得る。符号化/復号化を行う前にサイズ調整過程が行われ得る。サイズ調整される画像を符号化/復号化することができる。
第3例示として、予測段階(画面内予測又は画面間予測)又は予測実行前にサイズ調整過程が行われ得る。サイズ調整過程で、予測段階での画像情報(例えば、画面内予測に参照される画素情報、画面内予測モード関連情報、画面間予測に使用される参照画像情報、画面間予測モード関連情報など)を使用することができる。
第4例示として、フィルタリング段階又はフィルタリングを行う前に、サイズ調整過程が行われ得る。サイズ調整過程で、フィルタリング段階での画像情報(例えば、デブロッキングフィルタに適用される画素情報、SAOに適用される画素情報、SAOフィルタリング関連情報、ALFに適用される画素情報、ALFフィルタリング関連情報など)を使用することができる。
また、サイズ調整過程が行われた後、画像はサイズ調整逆過程を経てサイズ調整前の画像(画像サイズの観点)に変更されてもよく、変更されなくてもよい。これは、符号化/復号化の設定(例えば、サイズ調整が行われる性格など)に応じて決定できる。このとき、サイズ調整過程が拡張である場合には、サイズ調整逆過程は縮小であり、サイズ調整過程が縮小である場合には、サイズ調整逆過程は拡張であり得る。
第1乃至第4例示によるサイズ調整過程が行われた場合、その以後段階でサイズ調整逆過程を行ってサイズ調整前の画像を取得することができる。
階層的符号化又は第3例示によるサイズ調整過程が行われた場合(又は画面間予測で参照画像のサイズを調整した場合)、その以後段階でサイズ調整逆過程を行わなくてもよい。
本発明の一実施形態で画像サイズ調整過程が単独で行われるか、或いはそれに対する逆過程を行うことができ、後述する例では、サイズ調整過程を中心に説明する。このとき、サイズ調整逆過程はサイズ調整過程の反対過程なので、重複説明を避けるために、サイズ調整逆過程についての説明は省略できるが、通常の技術者が文言的に記載されたのと同様に認識することができることが明らかである。
図6は一般な画像のサイズ調整方法についての例示図である。
6aを参照すると、初期画像(又はサイズ調整前の画像。P0。太い実線)から一部領域P1をさらに含むことにより、拡張された画像P0+P1を取得することができる。
6bを参照すると、初期画像S0+S1から一部領域S1を除外することにより、縮小された画像S0を取得することができる。
6cを参照すると、初期画像T0+T2に一部領域T1をさらに含み、一部領域T2を除外することにより、サイズ調整された画像T0+T1を取得することができる。
以下、本発明では拡張によるサイズ調整過程、縮小によるサイズ調整過程を中心に説明するが、これに限定されず、6cのようにサイズ拡張と縮小が混合されて適用される場合も含まれるものと理解されるべきである。
図7は本発明の一実施形態に係る画像サイズ調整に対する例示図である。
7aを参照すると、サイズ調整過程における画像の拡張方法を説明することができ、7bを参照すると、画像の縮小方法を説明することができる。
7aにおいて、サイズ調整前の画像はS0であり、サイズ調整後の画像はS1であり、7bにおいて、サイズ調整前の画像はT0であり、サイズ調整後の画像はT1である。
7aのように画像を拡張する場合、上、下、左、右方向(ET、EL、EB、ER)に拡張することができ、7bのように画像を縮小する場合、上、下、左、右方向(RT、RL、RB、RR)に縮小することができる。
画像の拡張と画像の縮小とを比較すると、拡張における上、下、左、右方向は、縮小におけるそれぞれの下、上、右、左方向に対応することができるので、以下では、画像の拡張を基準に説明するが、画像の縮小についての説明が含まれるものと理解されるべきである。
また、以下では、上、下、左、右方向への画像拡張又は縮小を説明するが、左上、右上、左下、右下方向にサイズ調整が行われ得るものと理解されるべきである。
このとき、右下方向に拡張を行う場合、RC、BC領域が取得される一方、符号化/復号化の設定に応じて、BR領域が取得される場合が可能であるか不可能である。すなわち、TL、TR、BL、BR領域が取得される場合が可能であるか不可能であるが、以下では、説明の便宜上、コーナー領域(TL、TR、BL、BR領域)が取得可能であると説明する。
本発明の一実施形態に係る画像のサイズ調整過程は、少なくとも一つの方向に行われ得る。例えば、すべての上、下、左、右方向に行われてもよく、上、下、左、右方向の中から2つ以上選択された方向(左+右、上+下、上+左、上+右、下+左、下+右、上+左+右、下+左+右、上+下+左、上+下+右など)に行われてもよく、上、下、左、右方向のいずれかの方向にのみ行われてもよい。
例えば、画像の中心を基準に両端に対称拡張可能な左+右、上+下、左上+右下、左下+上右方向にサイズ調整が可能であってもよく、画像の縦対称拡張可能な左+右、左上+右上、左下+右下方向にサイズ調整が可能であってもよく、画像の横対称拡張可能な上+下、左上+左下、右上+右下方向にサイズ調整が可能であってもよく、その他のサイズ調整も可能である。
7a及び7bにおいて、サイズ調整前の画像(S0、T0)サイズはP_Width(幅)×P_Height(高さ)、サイズ調整後の画像サイズ(S1、T1)はP’_Width(幅)×P’_Height(高さ)と定義した。ここで、左、右、上、下方向のサイズ調整値をVar_L、Var_R、Var_T、Var_B(又は総称してVar_xと呼ぶ。)と定義すると、サイズ調整後の画像サイズは(P_Width+Var_L+Var_R)×(P_Height+Var_T+Var_B)で表現することができる。このとき、左、右、上、下方向のサイズ調整値であるVar_L、Var_R、Var_T、Var_Bは、画像拡張(図7a)でExp_L、Exp_R、Exp_T、Exp_B(本例において、Exp_xは正数)であり、画像縮小で-Rec_L、-Rec_R、-Rec_T、-Rec_B(Rec_L、Rec_R、Rec_T、Rec_Bを正数と定義する場合、画像の縮小に応じて負数で表現)であり得る。また、サイズ調整前の画像の左上、右上、左下、右下の座標は(0、0)、(P_Width-1、0)、(0、P_Height-1)、(P_Width-1、P_Height-1)であり、サイズ調整後の画像の前記座標は(0、0)、(P’_Width-1、0)、(0、P’_Height-1)、(P’_Width-1、P’_Height-1)で表現することができる。サイズ調整で変更(又は取得、削除)される領域(本例において、TL~BR。iはTL~BRを区分するインデックス)のサイズは、M[i]×N[i]であり得る。これは、Var_X×Var_Y(本例において、XはL又はR、YはT又はBと仮定)で表現できる。MとNはさまざまな値を持つことができ、iとは無関係に同一であるか、或いはiに応じて個別設定を持つことができる。これについての様々な場合は後述する。
7aを参照すると、S1はS0にさまざまな方向による拡張を介して生成されるTL~BR(左上~右下)の全部又は一部を含んで構成することができる。7bを参照すると、T1はT0にさまざまな方向による縮小を介して除去されるTL~BRの全部又は一部を除いて構成することができる。
7aにおいて、既存の画像S0に上、下、左、右方向に拡張を行う場合、各サイズ調整過程に介して取得されるTC、BC、LC、RC領域を含めて画像を構成することができ、さらにTL、TR、BL、BR領域を含むこともできる。
一例として、上(ET)方向に拡張を行う場合、既存の画像S0にTC領域を含めて画像を構成することができ、少なくとも一つの異なる方向の拡張(EL又はER)に応じてTL又はTR領域を含むことができる。
一例として、下(EB)方向に拡張を行う場合、既存の画像S0にBC領域を含めて画像を構成することができ、少なくとも一つの異なる方向の拡張(EL又はER)に応じてBL又はBR領域を含むことができる。
一例として、左(EL)方向に拡張を行う場合、既存の画像S0にLC領域を含めて画像を構成することができ、少なくとも一つの異なる方向の拡張(ET又はEB)に応じてTL又はBL領域を含むことができる。
一例として、右(ER)方向に拡張を行う場合、既存の画像S0にRC領域を含めて画像を構成することができ、少なくとも一つの異なる方向の拡張(ET又はEB)に応じてTR又はBR領域を含むことができる。
本発明の一実施形態によれば、サイズ調整される領域(本例において、拡張と仮定)の参照可能性を空間的又は時間的に制限することができる設定(例えば、spa_ref_enabled_flag又はtem_ref_enabled_flag)を置くことができる。
すなわち、符号化/復号化の設定に応じて空間的又は時間的にサイズ調整される領域のデータを参照するか(例えば、spa_ref_enabled_flag=1又はtem_ref_enabled_flag=1)、参照を制限(例えば、spa_ref_enabled_flag=0又はtem_ref_enabled_flag=0)することができる。
サイズ調整前の画像(S0、T1)、及びサイズ調整時に追加又は削除される領域(TC、BC、LC、RC、TL、TR、BL、BR領域)の符号化/復号化は、次のとおり行われ得る。
例えば、サイズ調整前の画像と追加又は削除される領域の符号化/復号化において、サイズ調整前の画像のデータ、及び追加又は削除される領域のデータ(符号化/復号化済みのデータ。画素値又は予測関連情報など)を空間的又は時間的に互いに参照することができる。
又は、サイズ調整前の画像、及び追加又は削除される領域のデータを空間的に参照することができる一方で、サイズ調整前の画像のデータを時間的に参照することができ、追加又は削除される領域のデータを時間的に参照することができない。
すなわち、追加又は削除される領域の参照可能性を制限する設定を置くことができる。追加又は削除される領域の参照可能性についての設定情報は、明示的に生成するか或いは暗示的に決定することができる。
本発明の一実施形態に係る画像サイズ調整過程は、画像サイズ調整指示段階、画像サイズ調整タイプ識別段階、及び/又は画像サイズ調整実行段階を含むことができる。また、画像符号化装置及び復号化装置は、画像サイズ調整指示段階と、画像サイズ調整タイプ識別段階と、画像サイズ調整実行段階を実現する画像サイズ調整指示部、画像サイズ調整タイプ識別部、画像サイズ調整実行部を含むことができる。符号化の場合は、関連付けられた構文要素を生成することができ、復号化の場合は、関連付けられた構文要素をパーシングすることができる。
画像サイズ調整指示段階では、画像サイズ調整を行うかどうかを決定することができる。例えば、画像サイズ調整を指示する信号(例えば、img_resizing_enabled_flag)が確認される場合には、サイズ調整を行うことができ、画像サイズ調整を指示する信号が確認されない場合には、サイズ調整を行わないか或いは他の符号化/復号化情報を確認してサイズ調整を行うことができる。また、画像サイズ調整を指示する信号が提供されなくても、符号化/復号化の設定(例えば、画像の特性、種類など)に応じてサイズ調整を指示する信号が暗示的に活性化されても非活性化されてもよく、サイズ調整を行う場合、それによるサイズ調整関連情報を生成することができ、或いはサイズ調整関連情報が暗示的に決定されることも可能である。
画像サイズ調整を指示する信号が提供される場合、該当信号は画像のサイズ調整を行うかどうかを示すための信号であり、前記信号に応じて該当画像のサイズ調整か否かを確認することができる。
例えば、画像サイズ調整を指示する信号(例えば、img_resizing_enabled_flag)が確認され、該当信号が活性化された場合(例えば、img_resizing_enabled_flag=1)には、画像サイズ調整を行うことができ、該当信号が非活性化された場合(例えば、img_resizing_enabled_flag=0)には、画像サイズ調整を行わないことを意味することができる。
また、画像サイズ調整を指示する信号が提供されない場合にサイズ調整を行わないか、或いは当該画像のサイズ調整か否かは他の信号によってサイズ調整か否かを確認することができる。
例えば、入力画像をブロック単位で分割する場合、画像のサイズ(例えば、横幅又は縦幅)がブロックのサイズ(例えば、横幅又は縦幅)の整数倍であるか否かに応じてサイズ調整(本例において、拡張の場合。整数倍でないときにサイズ調整過程を行うと仮定)を行うことができる。すなわち、画像の横幅がブロックの横幅の整数倍でない場合、又は画像の縦幅がブロックの縦幅の整数倍でない場合に、サイズ調整を行うことができる。このとき、サイズ調整情報(例えば、サイズ調整方向、大きさ調整値など)は、前記符号化/復号化情報(例えば、画像のサイズ、ブロックのサイズなど)に応じて決定できる。又は、画像の特性、種類(例えば、360度画像)などに応じてサイズ調整を行うことができ、サイズ調整情報は、明示的に生成するか或いは所定の値に割り当てることができる。上記例の場合にのみ限定されず、他の例への変形も可能である。
画像サイズ調整タイプ識別段階では、画像サイズ調整タイプを識別することができる。画像サイズ調整タイプは、サイズ調整を行う方法、サイズ調整情報などによって定義できる。例えば、スケールファクタ(Scale Factor)を用いたサイズ調整、オフセットファクタ(Offset Factor)を用いたサイズ調整などを行うことができる。これに限定されず、上記方式の混合適用も可能である。説明の便宜のために、スケールファクタとオフセットファクタを用いたサイズ調整を中心に説明する。
スケールファクタの場合、画像のサイズに基づいて乗算或いは除算される方式でサイズ調整を行うことができる。サイズ調整の動作(例えば、拡張又は縮小)についての情報は明示的に生成でき、該当情報に応じて拡張又は縮小過程を行うことができる。また、符号化/復号化の設定に応じて、所定の動作(例えば、拡張又は縮小のいずれか)でサイズ調整過程を行うことができ、この場合には、サイズ調整動作についての情報は省略できる。例えば、画像サイズ調整指示段階で画像サイズ調整が活性化された場合、画像のサイズ調整は所定の動作で行われ得る。
サイズ調整方向は、上、下、左、右方向の中から選ばれた少なくとも一つの方向であり得る。前記サイズ調整方向に応じて、少なくとも一つのスケールファクタが必要であり得る。すなわち、各方向に一つのスケールファクタ(本例において、単方向)が必要であり、横又は縦方向に応じて一つのスケールファクタ(本例において、双方向)が必要であり、画像の全体方向に応じて一つのスケールファクタ(本例において、全方向)が必要であり得る。また、サイズ調整方向は、上記例の場合にのみ限定されず、他の例への変形も可能である。
スケールファクタは、正の値を持つことができ、符号化/復号化の設定に応じて範囲情報を異ならせて設定することができる。例えば、サイズ調整動作とスケールファクタとを混合して情報を生成する場合、スケールファクタは掛けられる値として使用できる。0より大きいか1より小さい場合には縮小動作を意味することができ、1よりも大きい場合には拡張動作を意味することができ、1である場合にはサイズ調整を行わないことを意味することができる。他の例として、サイズ調整動作とは別にスケールファクタ情報を生成するとき、拡張動作の場合には、スケールファクタは掛けられる値として使用でき、縮小動作の場合には、スケールファクタは割れる値として使用できる。
図7の7a及び7bを再度参照して、スケールファクタを用いてサイズ調整前の画像(S0、T0)からサイズ調整後の画像(本例において、S1、T1)に変更する過程を説明することができる。
一例として、画像の全体方向に応じて一つのスケールファクタ(scと呼ばれる)を使用し、サイズ調整方向は下+右方向である場合には、サイズ調整方向はER、EB(又はRR、RB)であり、サイズ調整値であるVar_L(Exp_L又はRec_L)及びVar_T(Exp_T又はRec_T)は0であり、Var_R(Exp_R又はRec_R)及びVar_B(Exp_B又はRec_B)はP_Width×(sc-1)、P_Height×(sc-1)で表現することができる。したがって、サイズ調整後の画像は(P_Width×sc)×(P_Height×sc)になることができる。
一例として、画像の横又は縦方向に応じてそれぞれのスケールファクタ(本例において、sc_w、sc_h)を使用し、サイズ調整方向は、左+右、上+下方向(二つが動作すると、上+下+左+右)である場合には、サイズ調整方向はET、EB、EL、ERであり、サイズ調整値であるVar_T及びVar_BはP_Height×(sc_h-1)/2であり、Var_L及びVar_RはP_Width×(sc_w-1)/2であり得る。したがって、サイズ調整後の画像は、(P_Width×sc_w)×(P_Height×sc_h)になることができる。
オフセットファクタの場合、画像のサイズに基づいて加算又は減算する方式でサイズ調整を行うことができる。又は、画像の符号化/復号化情報に基づいて加算又は減算する方式でサイズ調整を行うことができる。又は、独立的に加算又は減算する方式でサイズ調整を行うことができる。すなわち、サイズ調整過程は依存的又は独立的な設定が可能である。
サイズ調整動作(例えば、拡張又は縮小)についての情報は、明示的に生成でき、該当情報に応じて拡張又は縮小過程を行うことができる。また、符号化/復号化の設定に応じて、所定の動作(例えば、拡張及び縮小のいずれか)でサイズ調整操作を行うことができ、この場合、サイズ調整動作についての情報は省略できる。例えば、画像サイズ調整指示段階で画像サイズ調整が活性化された場合、画像のサイズ調整は所定の動作で行われ得る。
サイズ調整方向は、上、下、左、右方向のうちの少なくとも一つの方向であり得る。前記サイズ調整方向に応じて少なくとも一つのオフセットファクタが必要であり得る。すなわち、各方向に一つのオフセットファクタ(本例において、単方向)が必要であり、横又は縦方向に応じていずれかのオフセットファクタ(本例において、対称的な双方向)が必要であり、各方向の部分的な組み合わせに応じて一つのオフセットファクタ(本例において、非対称的な双方向)が必要であり、画像の全体方向に応じて一つのオフセットファクタ(本例において、全方向)が必要であり得る。また、サイズ調整方向は、上記例の場合にのみ限定されず、他の例への変形も可能である。
オフセットファクタは、正の値を持つことができるか或いは正と負の値を持つことができ、符号化/復号化の設定に応じて範囲情報を異ならせて設定することができる。例えば、サイズ調整動作とオフセットファクタとを混合して情報を生成する場合(本例において、正と負の値を持つと仮定)、オフセットファクタは、オフセットファクタの符号情報に応じて加算又は減算する値として使用できる。オフセットファクタが0よりも大きい場合には、拡張動作を意味することができ、0よりも小さい場合には、縮小動作を意味することができ、0である場合には、サイズ調整を行わないことを意味することができる。他の例として、サイズ調整動作とは別にオフセットファクタ情報を生成する場合(本例において、正の値を持つと仮定)、オフセットファクタはサイズ調整動作に応じて加算又は減算する値として使用できる。0よりも大きい場合には、サイズ調整動作に応じて拡張又は縮小動作を行うことができ、0である場合には、サイズ調整を行わないことを意味することができる。
再び図7の7a及び図7bを参照すると、オフセットファクタを用いてサイズ調整前の画像(S0、T0)からサイズ調整後の画像(S1、T1)に変更する方法を説明することができる。
一例として、画像の全体方向に応じて一つのオフセットファクタ(osと呼ばれる。)を使用し、サイズ調整方向が上+下+左+右方向である場合、サイズ調整方向はET、EB、EL、ER(又はRT、RB、RL、RR)であり、サイズ調整値であるVar_T、Var_B、Var_L、Var_Rはosであり得る。サイズ調整後の画像サイズは(P_Width+os)×(P_Height+os)になることができる。
一例として、画像の横又は縦方向に応じてそれぞれのオフセットファクタ(os_w、os_h)を使用し、サイズ調整方向が左+右、上+下方向(二つが動作すると、上+下+左+右)である場合、サイズ調整方向はET、EB、EL、ER(又はRT、RB、RL、RR)であり、サイズ調整値であるVar_T、Var_Bはos_hであり、Var_L、Var_Rはos_wであり得る。サイズ調整後の画像サイズは{P_Width+(os_w×2)}×{P_Height+(os_h×2)}になることができる。
一例として、サイズ調整方向が下、右方向(一緒に動作すると、下+右)であり、サイズ調整方向に応じてそれぞれのオフセットファクタ(os_b、os_r)を使用した場合、サイズの調整方向はEB、ER(又はRB、RR)であり、サイズ調整値であるVar_Bはos_bであり、Var_Rはos_rであり得る。サイズ調整後の画像サイズは(P_Width+os_r)×(P_Height+os_b)になることができる。
一例として、画像の各方向に応じてそれぞれのオフセットファクタ(os_t、os_b、os_l、os_r)を使用し、サイズ調整方向は上、下、左、右方向(すべて動作すると、上+下+左+右)である場合、サイズ調整方向はET、EB、EL、ER(又はRT、RB、RL、RR)であり、サイズ調整値であるVar_Tはos_t、Var_Bはos_b、Var_Lはos_l、Var_Rはos_rになることができる。サイズ調整後の画像サイズは(P_Width+os_l+os_r)×(P_Height+os_t+os_b)になることができる。
上記の例は、オフセットファクタがサイズ調整過程にサイズ調整値(Var_T、Var_B、Var_L、Var_R)として使用される場合を示す。すなわち、オフセットファクタは、サイズ調整値としてそのまま使用される場合を意味する。これは、独立的に行われるサイズ調整の一例であり得る。又は、オフセットファクタがサイズ調整値の入力変数として使用されることも可能である。詳細には、オフセットファクタを入力変数として割り当て、符号化/復号化の設定に応じて一連の過程を経てサイズ調整値を取得することができる。これは、所定の情報(例えば、画像のサイズ、符号化/復号化情報など)に基づいて行われるサイズ調整の一例、又は依存的に行われるサイズ調整の一例であり得る。
例えば、オフセットファクタは、所定の値(本例において、整数)の倍数(例えば、1、2、4、6、8、16など)又は指数(例えば、1、2、4、8、16、32、64、128、256などのように2の指数乗)であり得る。又は、符号化/復号化の設定に基づいて取得される値(例えば、画面間予測の動き探索範囲に基づいて設定される値)の倍数又は指数であり得る。又は、ピクチャ分割部から取得される単位(本例において、A×Bと仮定)の倍数又は指数であり得る。又は、ピクチャ分割部から取得される単位(本例において、タイルなどの場合であってE×Fと仮定)の倍数であり得る。
又は、ピクチャ分割部から取得される単位の横、縦よりも小さいか同じ範囲の値であり得る。上記例の倍数又は指数は、値が1である場合も含むことができ、上記例に限定されず、他の例への変形も可能である。例えば、オフセットファクタがnである場合、Var_xは2×n又は2nであり得る。
また、カラー成分に応じて個別的なオフセットファクタを支援することができ、一部のカラー成分に対するオフセットファクタを支援して他のカラー成分に対するオフセットファクタ情報を誘導することができる。例えば、輝度成分(本例において、輝度成分と色差成分の構成比が2:1であると仮定)に対するオフセットファクタAが明示的に生成される場合、色差成分に対するオフセットファクタA/2は暗示的に取得できる。又は、色差成分に対するオフセットファクタAが明示的に生成される場合、輝度成分に対するオフセットファクタ2Aは暗示的に取得できる。
サイズ調整方向とサイズ調整値についての情報は明示的に生成でき、該当情報に応じてサイズ調整過程を行うことができる。また、符号化/復号化の設定に応じて暗示的に決定でき、これによりサイズ調整過程を行うことができる。少なくとも一つの所定の方向又は調整値を割り当てることができ、この場合、関連情報は省略できる。このとき、符号化/復号化の設定は、画像の特性、種類、符号化情報などに基づいて決定できる。例えば、少なくとも一つのサイズ調整動作による少なくとも一つのサイズ調整方向が予め決定でき、少なくとも一つのサイズ調整動作による少なくとも一つのサイズ調整値が予め決定でき、少なくとも一つのサイズ調整方向による少なくとも一つのサイズ調整値が予め決定できる。また、サイズ調整逆過程でのサイズ調整方向とサイズ調整値などは、サイズ調整過程で適用されるサイズ調整方向とサイズ調整値などから誘導することができる。このとき、暗示的に決定されるサイズ調整値は、前述した例(様々にサイズ調整値が取得される例)の一つであり得る。
また、上記の例で乗算又は除算される場合についての説明をしたが、符号化/復号化器の実現に応じてシフト演算(Shift Operation)で実現できる。 乗算する場合は左シフト演算を用いて実現でき、除算する場合は右シフト演算を用いて実現できる。これは、上記例にのみ限定されず、本発明で共通に適用される説明であり得る。
画像サイズ調整実行段階では、識別されたサイズ調整情報に基づいて画像サイズ調整を行うことができる。すなわち、サイズ調整タイプ、サイズ調整動作、サイズ調整方向、サイズ調整値などの情報に基づいて画像のサイズ調整を行うことができ、取得されたサイズ調整後の画像に基づいて符号化/復号化を行うことができる。
また、画像サイズ調整実行段階では、少なくとも一つのデータ処理方法を用いてサイズ調整を行うことができる。詳細には、サイズ調整タイプとサイズ調整動作に応じてサイズ調整される領域に少なくとも一つのデータ処理方法を用いてサイズ調整を行うことができる。例えば、サイズ調整タイプに応じて、サイズ調整が拡張である場合にデータをどのように充填するかを決定することができるか、或いはサイズ調整過程が縮小である場合にデータをどのように除去するかを決定することができる。
まとめると、画像サイズ調整実行段階で識別されたサイズ調整情報に基づいて、画像サイズ調整を行うことができる。又は、画像サイズ調整実行段階で、前記サイズ調整情報とデータ処理方法に基づいて画像サイズ調整を行うことができる。前記2つの場合の違いは、符号化/復号化を行う画像のサイズだけを調整することにあるか、或いは、画像のサイズとサイズ調整される領域のデータ処理まで考慮するものであり得る。画像サイズ調整実行段階でデータ処理方法を含めて行うかどうかは、サイズ調整過程の適用段階、位置などに応じて決定できる。後述する例では、データ処理方法に基づいてサイズ調整を行う例を中心に説明するが、これに限定されない。
オフセットファクタを用いたサイズ調整を行うとき、拡張及び縮小の場合に様々な方法を用いてサイズ調整を行うことができる。拡張の場合は、少なくとも一つのデータを充填する方法を用いてサイズ調整を行うことができ、縮小の場合は、少なくとも一つのデータを除去する方法を用いてサイズ調整を行うことができる。このとき、オフセットファクタを用いたサイズ調整の場合、サイズ調整領域(拡張)に新しいデータ又は既存の画像のデータが直接的に或いは変形して充填でき、サイズ調整領域(縮小)に単純除去又は一連の過程を経た除去などが適用されて除去できる。
スケールファクタを用いたサイズ調整を行うとき、一部の場合(例えば、階層的符号化など)、拡張はアップサンプリングを適用してサイズ調整を行うことができ、縮小はダウンサンプリングを適用してサイズ調整を行うことができる。例えば、拡張の場合は、少なくとも一つのアップサンプリングフィルタを使用することができ、縮小の場合は、少なくとも一つのダウンサンプリングフィルタを使用することができ、水平、垂直に適用されるフィルタが同一であってもよく、水平、垂直に適用されるフィルタが異なってもよい。このとき、スケールファクタを用いたサイズ調整の場合、サイズ調整領域に新たなデータが生成されるか除去されることではなく、既存の画像のデータを補間などの方法を用いて再配置することであり得る。サイズ調整の実行に関連したデータ処理方法は、前記サンプリングに使用されるフィルタで区分できる。また、一部の場合(例えば、オフセットファクタと類似する場合)、拡張は少なくとも一つのデータを充填する方法を用いてサイズ調整を行うことができ、縮小は少なくとも一つのデータを除去する方法を用いてサイズ調整を行うことができる。本発明では、オフセットファクタを用いたサイズ調整を行う場合のデータ処理方法を中心に説明する。
一般にサイズ調整される領域に所定の一つのデータ処理方法を使用することができるが、後述する例のようにサイズ調整される領域に少なくとも一つのデータ処理方法を使用することもでき、データ処理方法に対する選択情報を生成することもできる。前者の場合には固定的なデータ処理方法、後者の場合には適応的なデータ処理方法を介してサイズ調整を行うことを意味することができる。
また、サイズ調整の際に追加又は削除される領域(図7a及び図7bのTL、TC、TR、...、BR)全体に共通するデータ処理方法を適用するか、或いはサイズ調整時に追加又は削除される領域の一部単位(例えば、図7a及び図7bのTL~BRそれぞれ又はその一部の組み合わせ)でデータ処理方法を適用することもできる。
図8は本発明の一実施形態に係る画像サイズ調整方法において、拡張される領域を構成する方法の例示図である。
8aを参照すると、画像は、説明の便宜上、TL、TC、TR、LC、C、RC、BL、BC、BR領域に区分することができ、それぞれ画像の左上、上、右上、左、中央、右、左下、下、右下の位置に対応することができる。以下では、下+右方向に画像が拡張される場合について説明するが、他の方向にも同様に適用できるものと理解されるべきである。
画像の拡張に応じて追加される領域は様々な方法で構成することができるが、例えば、任意の値で充填するか或いは画像の一部データを参照して充填することができる。
8bを参照すると、任意の画素値に拡張される領域(A0、A2)を充填することができる。任意の画素値は様々な方法を用いて定めることができる。
一例として、任意の画素値は、ビット深度で表現できる画素値の範囲{例えば、0から1<<(bit_depth)-1まで}に属する一つの画素であり得る。例えば、前記画素値の範囲の最小値、最大値、中央値{例えば、1<<(bit_depth-1)など}などであり得る(ここで、bit_depthはビット深度)。
一例として、任意の画素値は、画像に属する画素の画素値の範囲{例えば、minPからmaxPまで。minP、maxPは、画像に属する画素のうちの最小値、最大値。minPは0と同じかそれより大きく、maxPは1<<(bit_depth)-1と同じかそれよりも小さい}に属する一つの画素であり得る。例えば、任意の画素値は、前記画素値の範囲の最小値、最大値、中央値、(少なくとも二つの画素の)平均、重み付け和などであり得る。
一例として、任意の画素値は、画像に属する一部領域に属する画素値の範囲で決定された値であり得る。例えば、A0を構成する場合、一部領域は、TR+RC+BRになることができる。また、一部領域は、TR、RC、BRの3×9を該当する領域として置くことができるか、1×9<最も右側のラインと仮定>を該当する領域として置くこともできる。これは、符号化/復号化の設定に応じることができる。このとき、一部領域は、ピクチャ分割部から分割される単位であることもある。具体的には、任意の画素値は、前記画素値の範囲の最小値、最大値、中央値、(少なくとも二つの画素の)平均、重み付け和などであり得る。
8bを再度参照すると、画像の拡張に応じて追加される領域A1は、複数の画素値を用いて生成されるパターン情報(例えば、複数の画素を用いるものをパターンと仮定。必ずしも一定の規則に従う必要はない。)を用いて充填することができる。このとき、パターン情報は、符号化/復号化の設定に応じて定義できるか或いは関連情報を生成することができ、少なくとも一つのパターン情報を用いて、拡張される領域を充填することができる。
8cを参照すると、画像の拡張に応じて追加される領域は、画像に属する一部領域の画素を参照して構成することができる。詳細には、追加される領域に隣接した領域の画素(以下、参照画素)をコピー又はパディングすることにより、追加される領域を構成することができる。このとき、追加される領域に隣接した領域の画素は、符号化前の画素であるか、或いは符号化(又は復号化)後の画素であり得る。例えば、符号化前段階でサイズ調整を行うとき、参照画素は入力画像の画素を意味することができ、画面内予測参照画素生成段階や参照画像生成段階、フィルタリング段階などでサイズ調整を行うときの参照画素は、復元された画像の画素を意味することができる。本例では、追加される領域に最も隣接した画素を使用する場合を仮定するが、これに限定されない。
画像の横サイズ調整に関連する左又は右方向に拡張される領域A0は、拡張される領域A0に隣接した外郭画素を水平方向にパディング(Z0)して構成することができ、画像の縦サイズ調整に関連する上又は下方向に拡張される領域A1は、拡張される領域A1に隣接した外郭画素を垂直方向にパディング(Z1)して構成することができる。また、右下方向に拡張される領域A2は、拡張される領域A2に隣接した外郭画素を対角線方向にパディング(Z2)して構成することができる。
8dを参照すると、画像に属する一部領域のデータB0~B2を参照して、拡張される領域B’0~B’2を構成することができる。8dでは、8cとは異なり、拡張される領域に隣接していない領域を参照することができるという点で区別できる。
例えば、画像内に拡張される領域との相関性の高い領域が存在する場合は、相関性の高い領域の画素を参照して、拡張される領域を充填することができる。このとき、相関性の高い領域の位置情報、領域サイズ情報などを生成することができる。又は、画像の特性、種類などの符号化/復号化情報を介して相関性の高い領域が存在し、相関性の高い領域の位置情報、サイズ情報等を暗示的に確認(例えば、360度画像などの場合)することができる場合、該当領域のデータを拡張される領域に充填することができる。このとき、当該領域の位置情報、領域サイズ情報などを省略することができる。
一例として、画像の横サイズ調整に関連する左又は右方向に拡張される領域B’2の場合、横サイズ調整に関連する左又は右方向のうち、前記拡張される領域の反対側領域B2の画素を参照して、拡張される領域を充填することができる。
一例として、画像の縦サイズ調整に関連する上又は下方向に拡張される領域B’1の場合、縦サイズ調整に関連する上又は右方向のうち、前記拡張される領域の反対側領域B1の画素を参照して、拡張される領域を充填することができる。
一例として、画像の一部サイズ調整(本例において、画像の中心を基準に対角線方向)に拡張される領域B’0の場合、前記拡張される領域の反対側領域B0、TLの画素を参照して、拡張される領域を充填することができる。
上記例において、画像の両端の境界に連続性が存在してサイズ調整方向と対称の位置にある領域のデータを取得する場合についての説明をしたが、これに限定されず、他の領域TL~BRのデータから取得される場合も可能である。
拡張される領域に画像の一部領域のデータを充填するとき、該当領域のデータをそのままコピーして充填することができるか、或いは、該当領域のデータを画像の特性、種類などに基づいた変換過程を行った後に充填することができる。この時、そのままコピーする場合には、該当領域の画素値をそのまま使用することを意味することができ、変換過程を経る場合には、該当領域の画素値をそのまま使用しないことを意味することができる。すなわち、変換過程を介して当該領域の少なくとも一つの画素値の変化が発生して、拡張される領域に充填されるか、或いは一部画素の取得位置が少なくとも一つ異なることがある。すなわち、拡張される領域であるA×Bを充填するために、該当領域のA×Bのデータが使用されるのではなく、C×Dのデータが使用できる。言い換えれば、充填される画素に適用される動きベクトルが少なくとも一つ異なることがある。上記の例は、360度画像で投影フォーマットに応じて複数の表面で構成された場合、他の表面のデータを用いて拡張する領域に充填するときに発生する例であり得る。画像のサイズ調整により拡張される領域を充填するデータ処理方法は、上記例に限定されず、これを改良及び変形させるか或いは追加的なデータ処理方法が使用できる。
符号化/復号化の設定に応じて複数のデータ処理方法に対する候補群が支援でき、複数の候補群の中でデータ処理方法選択情報を生成してビットストリームに収録することができる。例えば、所定の画素値を用いて充填する方法、外郭画素をコピーして充填する方法、画像の一部領域をコピーして充填する方法、画像の一部領域を変換して充填する方法などから一つのデータ処理方法を選択することができ、これに対する選択情報を生成することができる。また、暗示的にデータ処理方法が決定できる。
例えば、画像のサイズ調整により拡張される全体領域(本例において、図7aのTL~BR)に適用されるデータ処理方法は、所定の画素値を用いて充填する方法、外郭画素をコピーして充填する方法、画像の一部領域をコピーして充填する方法、画像の一部領域を変換して充填する方法、その他の方法のうちのいずれかであり、これに対する選択情報が生成できる。また、全体領域に適用される所定の一つのデータ処理方法が決定できる。
又は、画像のサイズ調整により拡張される領域(本例において、図7の7aにおけるTL~BRそれぞれの領域又はその中の二つ以上の領域)に適用されるデータ処理方法は、所定の画素値を用いて充填する方法、外郭画素をコピーして充填する方法、画像の一部領域をコピーして充填する方法、画像の一部領域を変換して充填する方法、及びその他の方法のうちのいずれかであり、これに対する選択情報が生成できる。また、少なくとも一つの領域に適用される所定の一つのデータ処理方法が決定できる。
図9は本発明の一実施形態に係る画像サイズ調整方法において、画像サイズの縮小によって削除される領域及び生成される領域を構成する方法についての例示図である。
画像縮小過程で削除される領域は、単純に除去されるだけでなく、一連の活用過程を経た後に除去され得る。
9aを参照すると、画像縮小過程で一部領域A0、A1、A2を追加的な活用過程なしに単純除去することができる。このとき、画像Aは、細分化して、図8aと同様にTL~BRのように呼ばれることがある。
9bを参照すると、一部領域A0~A2を除去するが、画像Aの符号化/復号化時の参照情報として活用することができる。例えば、縮小されて生成された画像Aの一部領域の復元過程又は補正過程に、削除される一部領域A0~A2が活用できる。前記復元又は補正過程には、2つの領域(削除される領域と生成された領域)の重み付け和、平均などが使用できる。また、前記復元又は補正過程は、二つの領域が高い相関性を持つ場合に適用できる過程であり得る。
一例として、画像の横サイズ調整に関連する左又は右方向に縮小されることにより削除される領域B’2は、横サイズ調整に関連する左又は右方向のうち、縮小される領域の反対側領域B2、LCの画素を復元又は補正するのに使用した後、該当領域をメモリから除去することができる。
一例として、画像の縦サイズ調整に関連する上又は下方向に削除される領域B’1は、縦サイズ調整に関連する上又は下方向のうち、前記縮小される領域の反対側領域B1、TRの符号化/復号化過程(復元又は補正過程)に使用した後、該当領域をメモリから除去することができる。
一例として、画像の一部のサイズ調整(本例において、画像の中心を基準に対角線方向)に縮小される領域B’0は、前記縮小される領域の反対側領域B0、TLの符号化/復号化過程(復元又は補正過程など)に使用した後、該当領域をメモリから除去することができる。
上記例において、画像の両端の境界に連続性が存在してサイズ調整方向と対称の位置にある領域のデータ復元又は補正に使用する場合についての説明をしたが、これに限定されず、対称位置以外の他の領域TL~BRのデータ復元又は補正に使用した後にメモリから除去することもできる。
本発明の縮小される領域を除去するデータ処理方法は、上記例に限定されず、これを改良及び変更するか、或いは追加的なデータ処理方法が使用できる。
符号化/復号化の設定に応じて複数のデータ処理方法に対する候補群が支援でき、これに対する選択情報を生成してビットストリームに収録することができる。例えば、サイズ調整される領域を単純に除去する方法、サイズ調整される領域を一連の過程に使用した後に除去する方法などから一つのデータ処理方法を選択することができ、これに対する選択情報を生成することができる。また、暗示的にデータ処理方法が決定できる。
例えば、画像のサイズ調整により縮小されることにより削除される全体領域(本例において、図7の7bにおけるTL~BR)に適用されるデータ処理方法は、単純に除去する方法、一連の過程に使用した後に除去する方法、及びその他の方法のうちのいずれかであり、これに対する選択情報が生成できる。また、暗示的にデータ処理方法が決定できる。
又は、画像のサイズ調整により縮小される個別領域(本例において、図7bのTL~BRそれぞれ)に適用されるデータ処理方法は、単純に除去する方法、一連の過程に使用した後に除去する方法、及びその他の方法のうちのいずれかであり、これに対する選択情報が生成できる。また、暗示的にデータ処理方法が決定できる。
上記例において、サイズ調整動作(拡張、縮小)によるサイズ調整実行についての場合を説明したが、一部の場合は、サイズ調整動作(本例において、拡張)を行った後、それに対する逆過程であるサイズ調整動作(本例において、縮小)を行う場合に適用できる例であり得る。
例えば、拡張される領域に画像の一部データを用いて充填する方法が選択され、それに対して逆過程で縮小される領域を画像の一部のデータ復元又は補正過程に使用した後に除去する方法が選択される場合である。又は、拡張される領域に外郭画素のコピーを使用して充填する方法が選択され、それに対する逆過程で縮小される領域を単純に除去する方法が選択された場合である。すなわち、画像サイズ調整過程で選択されるデータ処理方法に基づいて、逆過程でのデータ処理方法が決定できる。
上記の例とは異なり、画像サイズ調整過程とそれに対する逆過程のデータ処理方法は、独立的な関係を持つこともできる。すなわち、画像サイズ調整過程で選択されるデータ処理方法とは関係なく逆過程におけるデータ処理方法を選択することができる。例えば、拡張される領域に画像の一部データを用いて充填する方法が選択され、それに対する逆過程で縮小される領域を単純に除去する方法が選択できる。
本発明では、画像サイズ調整過程におけるデータ処理方法を符号化/復号化の設定に応じて暗示的に決定し、逆過程におけるデータ処理方法を符号化/復号化の設定に応じて暗示的に決定することができる。又は、画像サイズ調整過程におけるデータ処理方法を明示的に生成し、逆過程におけるデータ処理方法を明示的に生成することができる。又は、画像サイズ調整過程におけるデータ処理方法を明示的に生成し、逆過程におけるデータ処理方法は前記データ処理方法に基づいて暗示的に決定することができる。
次に、本発明の一実施形態に係る符号化/復号化装置で画像サイズ調整を行う例を示す。後述する例において、サイズ調整過程は拡張、サイズ調整逆過程は縮小の場合を例として挙げる。また、「サイズ調整前の画像」と「サイズ調整後の画像」の違いは、画像のサイズを意味することができ、サイズ調整関連情報は、符号化/復号化の設定に応じて一部情報は明示的に生成できるか或いは一部情報は暗示的に決定できる。また、サイズ調整関連情報は、サイズ調整過程とサイズ調整逆過程に対する情報を含むことができる。
第1例示として、符号化の開始前に入力画像に対するサイズ調整過程を行うことができる。サイズ調整情報(例えば、サイズ調整動作、サイズ調整方向、サイズ調整値、データ処理方法など。データ処理方法はサイズ調整過程で使用されるもの)を用いてサイズ調整を行った後、サイズ調整後の画像を符号化することができる。符号化の完了後にメモリに保存することができ、画像符号化データ(本例において、サイズ調整後の画像を意味する)をビットストリームに収録して伝送することができる。
復号化の開始前にサイズ調整過程を行うことができる。サイズ調整情報(例えば、サイズ調整動作、サイズ調整方向、サイズ調整値など)を用いてサイズ調整を行った後、サイズ調整後の画像復号化データをパーシングして復号化することができる。復号化の完了後にメモリに保存することができ、サイズ調整逆過程(本例において、データ処理方法などを使用。これはサイズ調整逆過程で使用されるもの)を行って出力画像をサイズ調整前の画像に変更することができる。
第2例示として、符号化の開始前に、参照画像に対するサイズ調整過程を行うことができる。サイズ調整情報(例えば、サイズ調整動作、サイズ調整方向、サイズ調整値、データ処理方法など。データ処理方法はサイズ調整過程で使用されるもの)を用いてサイズ調整を行った後、サイズ調整後の画像(本例において、サイズ調整後の参照画像)をメモリに保存することができ、これを用いて画像を符号化することができる。符号化の完了後に画像符号化データ(本例において、前記参照画像を用いて符号化したものを意味する)をビットストリームに収録して伝送することができる。また、前記符号化された画像は、参照画像としてメモリに保存される場合、上記過程のようにサイズ調整過程を行うことができる。
復号化の開始前に、参照画像に対するサイズ調整過程を行うことができる。サイズ調整情報(例えば、サイズ調整動作、サイズ調整方向、サイズ調整値、データ処理方法など。データ処理方法はサイズ調整過程で使用されるもの)を用いてサイズ調整後の画像(本例において、サイズ調整後の参照画像)をメモリに保存することができ、画像復号化データ(本例において、符号化器で前記参照画像を用いて符号化されたものと同一)をパーシングして復号化することができる。復号化の完了後に出力画像として生成することができ、前記復号化された画像が参照画像に含まれてメモリに保存される場合、上記過程のようにサイズ調整過程を行うことができる。
第3例示として、(詳細には、フィルタリング過程を除いた符号化の完了を意味する)符号化の完了後に画像のフィルタリング(本例において、デブロッキングフィルタと仮定)の開始前に画像に対するサイズ調整過程を行うことができる。サイズ調整情報(例えば、サイズ調整動作、サイズ調整方向、サイズ調整値、データ処理方法など。データ処理方法はサイズ調整過程で使用されるもの)を用いてサイズ調整を行った後、サイズ調整後の画像を生成することができ、サイズ調整後の画像にフィルタリングを適用することができる。フィルタリングの完了後にサイズ調整逆過程を行ってサイズ調整前の画像に変更することができる。
(詳細には、フィルタリング過程を除いた復号化の完了を意味)復号化の完了後に画像のフィルタリングの開始前に画像に対するサイズ調整過程を行うことができる。サイズ調整情報(例えば、サイズ調整動作、サイズ調整方向、サイズ調整値、データ処理方法など。データ処理方法はサイズ調整過程で使用されるもの)を用いてサイズ調整を行った後、サイズ調整後の画像を生成することができ、サイズ調整後の画像にフィルタリングを適用することができる。フィルタリングの完了後にサイズ調整逆過程を行ってサイズ調整前の画像に変更することができる。
上記の例において、一部の場合(第1例示及び第3例示)はサイズ調整過程とサイズ調整逆過程が行われてもよく、他の一部の場合(第2例示)はサイズ調整過程のみ行われてもよい。
また、一部の場合(第2例示及び第3例示)は、符号化器と復号化器におけるサイズ調整過程が同一であってもよく、他の一部の場合(第1例示)は、符号化器と復号化器におけるサイズ調整過程が同一でも同一でなくてもよい。このとき、符号化/復号化器におけるサイズ調整過程の差はサイズ調整実行段階であり得る。例えば、一部の場合(本例において、符号化器)には、画像のサイズ調整とサイズ調整される領域のデータ処理を考慮するサイズ調整実行段階を含むことができ、一部の場合(本例において、復号化器)には、画像のサイズ調整を考慮するサイズ調整実行段階を含むことができる。このとき、前者のデータ処理は後者のサイズ調整逆過程のデータ処理と対応できる。
また、一部の場合(第3例示)でのサイズ調整過程は、該当段階のみで適用される過程であり、サイズ調整領域をメモリに保存しなくてもよい。例えば、フィルタリング過程で使用するための目的で一時のメモリに保存してフィルタリングを行い、サイズ調整逆過程を介して該当領域を除去することができ、この場合は、サイズ調整による画像のサイズ変化はないといえる。上記例に限定されず、他の例への変形も可能である。
前記サイズ調整過程を介して画像のサイズは変更でき、これにより、画像の一部画素の座標がサイズ調整過程を介して変更できる。これは、ピクチャ分割部の動作に影響を与えることができる。本発明では、上記の過程を経てサイズ調整前の画像に基づいてブロック単位の分割を行うことができるか、或いはサイズ調整後の画像に基づいてブロック単位の分割を行うことができる。また、サイズ調整前の画像に基づいて一部の単位(例えば、タイル、スライスなど)の分割を行うことができるか、或いはサイズ調整後の画像に基づいて一部の単位の分割を行うことができる。これは、符号化/復号化の設定に応じて決定できる。本発明では、サイズ調整後の画像に基づいてピクチャ分割部が動作する場合(例えば、サイズ調整過程後の画像分割過程)を中心に説明するが、その他の変形も可能である。これは後述する複数の画像設定において上記の例に対する場合を説明する。
符号化器では上記の過程で発生する情報をシーケンス、ピクチャ、スライス、タイルなどの単位のうちの少なくとも一つの単位でビットストリームに収録し、復号化器では関連情報をビットストリームからパーシングする。また、SEI又はメタデータの形式でビットストリームに含まれ得る。
入力された画像のまま符号化/復号化を行うのが一般的であり得るが、画像を再構成して符号化/復号化を行う場合にも発生することがある。例えば、画像の符号化効率性を高めるための目的で画像の再構成を行うことができ、ネットワーク及びユーザの環境を考慮するための目的で画像の再構成を行うことができ、画像の種類、特性に応じて画像の再構成を行うことができる。
本発明において、画像再構成過程は、再構成過程を単独で行うことができるか、或いはそれに対する逆過程を行うことができる。後述する例では再構成過程を中心に説明するが、再構成逆過程についての内容は再構成過程から逆に誘導することができる。
図10は本発明の一実施形態に係る画像再構成に対する例示図である。
10aを入力された最初の画像とするとき、10a乃至10dは、画像に0度を含む回転(例えば、360度をk個の区間にサンプリングして生成された候補群を構成することができる。kは2、4、8などの値を持つことができ、本例では4を仮定して説明)を適用した例示図であり、10e乃至10hは10aを基準に、又は10b乃至10dを基準に反転(又は対称)を適用した例示図を示す。
画像の再構成に応じて画像の開始位置又はスキャン順序が変更できるか、或いは再構成か否かを問わずに所定の開始位置及びスキャン順序に従うことができる。これは、符号化/復号化の設定に応じて決定できる。後述する実施形態では、画像の再構成か否かに関係なく、所定の開始位置(例えば、画像の左上位置)とスキャン順序(例えば、ラスタースキャン)に従う場合を仮定して説明する。
本発明の一実施形態に係る画像符号化方法及び復号化方法では、次のような画像再構成段階を含むことができる。このとき、画像再構成過程は、画像再構成指示段階、画像再構成タイプ識別段階、及び画像再構成実行段階を含むことができる。また、画像符号化装置及び復号化装置は、画像再構成指示段階、画像再構成タイプ識別段階、画像再構成実行段階を実現する画像再構成指示部、画像再構成タイプ識別部、画像再構成実行部を含むように構成できる。符号化の場合、関連付けられた構文要素を生成することができ、復号化の場合、関連付けられた構文要素をパーシングすることができる。
画像再構成指示段階では、画像の再構成を行うかどうかを決定することができる。例えば、画像の再構成を指示する信号(例えば、convert_enabled_flag)が確認される場合には、再構成を行うことができ、画像の再構成を指示する信号が確認されない場合には、再構成を行わないか、或いは他の符号化/復号化情報を確認して再構成を行うことができる。また、画像の再構成を指示する信号が提供されなくても、符号化/復号化の設定(例えば、画像の特性、種類など)に応じて再構成を指示する信号が暗示的に活性化されても非活性化されてもよく、再構成を行う場合、それによる再構成関連情報を生成することができ、或いは再構成関連情報が暗示的に決定できる。
画像再構成を指示する信号が提供される場合、該当信号は、画像の再構成を行うかどうかを示すための信号であり、前記信号に応じて該当画像の再構成か否かを確認することができる。例えば、画像の再構成を指示する信号(例えば、convert_enabled_flag)が確認され、該当信号が活性化された場合(例えば、convert_enabled_flag=1)には、再構成を行ってもよく、該当信号が非活性化された場合(例えば、convert_enabled_flag=0)には、再構成を行わなくてもよい。
また、画像の再構成を指示する信号が提供されない場合に再構成を行わないか、或いは該当画像の再構成か否かは他の信号によって再構成か否かを確認することができる。例えば、画像の特性、種類など(例えば、360度画像)に応じて再構成を行うことができ、再構成情報は明示的に生成するか或いは所定の値に割り当てることができる。上記例の場合にのみ限定されず、他の例への変形も可能である。
画像再構成タイプ識別段階では、画像再構成タイプを識別することができる。画像再構成タイプは、再構成を行う方法、再構成モード情報などによって定義できる。再構成を行う方法(例えば、convert_type_flag)には、回転、反転などを含むことができ、再構成モード情報は、再構成を行う方法でのモード(例えば、convert_mode)を含むことができる。この場合、再構成関連情報は、再構成を行う方法とモード情報で構成できる。すなわち、少なくとも一つの構文要素で構成できる。このとき、各再構成を行う方法によるモード情報の候補群の個数は、同一でも異なってもよい。
一例として、回転の場合、10a~10dのように一定間隔の差(本例において、90度)を有する候補を含むことができ、10aを0度回転とするとき、10b乃至10dはそれぞれ90度、180度、270度回転を適用した例(本例において、時計回りに角度を測定)であり得る。
一例として、反転の場合、10a、10e、10fのような候補を含むことができ、10aを反転なしにするとき、10eと10fはそれぞれ左右反転及び上下反転を適用した例であり得る。
上記例は、一定の間隔を有する回転に対する設定と、一部の反転に対する設定の場合を説明するが、画像の再構成に対する一例に過ぎず、上記の場合に限定されず、他の間隔の差は、他の反転動作などの例を含むことができる。これは符号化/復号化の設定に応じて決定できる。
又は、再構成を行う方法とそれによるモード情報とを混合して生成される統合情報(例えば、convert_com_flag)を含むことができる。この場合、再構成関連情報は、再構成を行う方法とモード情報とが混合された情報で構成できる。
例えば、前記統合情報は10a~10fのような候補を含むことができる。これは10aを基準に0度回転、90度回転、180度回転、270度回転、左右反転、上下反転を適用した例であり得る。
又は、前記統合情報は10a~10hのような候補を含むことができる。これは、10aを基準に0度回転、90度回転、180度回転、270度回転、左右反転、上下反転、90度回転後の左右反転(又は左右反転後の90度回転)、90度回転後の上下反転(又は上下反転後の90度回転)を適用した例であるか、或いは0度回転、90度回転、180度回転、270度回転、左右反転、180度回転後の左右反転(左右反転後の180度回転)、90度回転後の左右反転(左右反転後の90度回転)、270度回転後の左右反転(左右反転後の270度回転)を適用した例であり得る。
前記候補群は、回転が適用されたモード、反転が適用されたモードに回転と反転が混合適用されたモードを含んで構成できる。前記混合構成されたモードは、再構成を行う方法でのモード情報を単純に含むものであり、各方法でのモード情報を混用して生成されるモードを含むことができる。このとき、一部の方法(例えば、回転)の少なくとも一つのモードと一部の方法(例えば、反転)の少なくとも一つのモードとを混用して生成されるモードを含むことができ、上記の例は、一部の方法の一つのモードと一部の方法の複数のモードが混用されて生成される場合(本例において、90度回転+複数の反転/左右反転+複数の回転)を含む。前記混合構成された情報は、再構成が適用されない場合{本例において、10a}を候補群として含んで構成でき、再構成が適用されない場合は、1番目の候補群(例えば、0番をインデックスに割り当て)として含むことができる。
又は、所定の再構成を行う方法によるモード情報を含むことができる。この場合、再構成関連情報は、所定の再構成を行う方法によるモード情報で構成できる。すなわち、再構成を行う方法についての情報は、省略することができ、モード情報に関連する一つの構文要素で構成できる。
例えば、回転に関する10a~10dのような候補を含んで構成できる。又は、反転に関する10a、10e、10fのような候補を含んで構成できる。
画像再構成過程の前と後の画像のサイズは、同一であってもよく、少なくとも一つの長さが異なってもよい。これは符号化/復号化の設定に応じて決定できる。画像の再構成過程は、画像内画素の再配置を行う過程(本例において、画像の再構成逆過程では画素再配置逆過程を行う。これは画素再配置過程から逆に誘導可能)であり、少なくとも一つの画素の位置が変更できる。前記画素の再配置は、画像再構成タイプ情報に基づいた規則に従って行われ得る。
このとき、画素の再配置過程は、画像のサイズ及び形状(例えば、正方形又は長方形)などに影響を受けることができる。詳細には、再構成過程前の画像の横幅、縦幅と再構成過程後の画像の横幅、縦幅が画素の再配置過程に変数として作用することができる。
例えば、再構成過程前の画像の横幅と再構成過程後の画像の横幅との比率、再構成過程前の画像の横幅と再構成過程後の画像の縦幅との比率、再構成過程前の画像の縦幅と再構成過程後の画像の横幅との比率、及び再構成過程前の画像の縦幅と再構成過程後の画像の縦幅との比率の少なくとも一つの比率情報(例えば、前者/後者又は後者/前者など)が画素の再配置過程に変数として作用することができる。
上記例において、再構成過程の前と後の画像のサイズが同一である場合には、画像の横幅と縦幅との比率が画素再配置過程で変数として作用することができる。また、画像の形状が正方形である場合には、画像再構成過程前の画像の長さと再構成過程後の画像の長さとの比率が画素再配置過程で変数として作用することができる。
画像再構成実行段階では、識別された再構成情報に基づいて画像の再構成を行うことができる。すなわち、再構成タイプ、再構成モードなどの情報に基づいて画像の再構成を行うことができ、取得された再構成済み画像に基づいて符号化/復号化を行うことができる。
次に、本発明の一実施形態に係る符号化/復号化装置で画像再構成を行う例を示す。
符号化の開始前に入力画像に対する再構成過程を行うことができる。再構成情報(例えば、画像再構成タイプ、再構成モードなど)を用いて再構成を行った後、再構成された画像を符号化することができる。符号化の完了後、メモリに保存することができ、画像符号化データをビットストリームに収録して伝送することができる。
復号化の開始前に再構成過程を行うことができる。再構成情報(例えば、画像再構成タイプ、再構成モードなど)を用いて再構成を行った後、画像復号化データをパーシングして復号化することができる。復号化の完了後、メモリに保存することができ、再構成逆過程を行って再構成前の画像に変更した後、画像を出力することができる。
符号化器では上記の過程で発生する情報をシーケンス、ピクチャ、スライス、タイルなどの単位のうちの少なくとも一つの単位でビットストリームに収録し、復号化器では関連情報をビットストリームからパーシングする。また、SEI又はメタデータの形式でビットストリームに含まれ得る。
表1は画像設定中の分割に関連する構文要素についての例を示す。後述する例では、追加された構文要素を中心に説明する。また、後述する例の構文要素は、ある特定の単位に限定されるものではなく、シーケンス、ピクチャ、スライス、タイルなどの様々な単位で支援される構文要素であり得る。又は、SEI、メタデータなどに含まれる構文要素であり得る。また、後述する例で支援される構文要素の種類、構文要素の順序、条件などは、本例でのみ限定されるだけで、符号化/復号化の設定に応じて変更され、決定され得る。
表1において、tile_header_enabled_flagは、タイルに符号化/復号化の設定を支援するかどうかに対する構文要素を意味する。活性化される場合(tile_header_enabled_flag=1)には、タイル単位の符号化/復号化の設定を持つことができ、非活性化される場合(tile_header_enabled_flag=0)には、タイル単位の符号化/復号化の設定を持つことができず、上位単位の符号化/復号化の設定の割り当てを受けることができる。
tile_coded_flagは、タイルの符号化/復号化を行うかどうかを示す構文要素を意味し、活性化される場合(tile_coded_flag=1)には、該当タイルの符号化/復号化を行うことができ、非活性化される場合(tile_coded_flag=0)には、符号化/復号化を行うことができない。ここで、符号化を行わないというのは、当該タイルでの符号化データを生成しないこと(本例において、該当領域は所定の規則などによって処理すると仮定。360度画像の一部投影フォーマットにおける無意味な領域で適用可能)を意味することができる。復号化を行わないというのは、該当タイルでの復号化データをもはやパーシングしない(本例において、該当領域は所定の規則などによって処理すると仮定)ことを意味する。また、復号化データをもはやパーシングしないというのは、該当単位に符号化データが存在しないため、もはやパーシングしないことを意味することができるが、符号化データが存在しても、前記フラグによってもはやパーシングしないことを意味することもできる。タイルの符号化/復号化を行うかどうかに応じて、タイル単位のヘッダ情報が支援できる。
上記の例はタイルを中心に説明したが、タイルに限定される例ではなく、本発明での他の分割単位に変更適用可能な例であり得る。また、タイルの分割設定の一例として、上記の場合に限定されず、他の例への変形も可能である。
表2は画像設定中の再構成に関連する構文要素についての例を示す。
表2を参照すると、convert_enabled_flagは再構成を行うかどうかについての構文要素を意味する。活性化される場合(convert_enabled_flag=1)には、再構成された画像を符号化/復号化することを意味し、追加的な再構成関連情報を確認することができる。非活性化される場合(convert_enabled_flag=0)には、既存の画像を符号化/復号化することを意味する。
convert_type_flagは、再構成を行う方法とモード情報に関する混合情報を意味する。回転を適用した方法、反転を適用した方法、及び回転と反転を混合適用した方法に関する複数の候補群のうちのいずれかに決定できる。
表3は画像設定中のサイズ調整に関連する構文要素についての例を示す。
表3を参照すると、pic_width_in_samples、pic_height_in_samplesは、画像の横幅、縦幅に関する構文要素を意味し、前記構文要素によって画像のサイズを確認することができる。
img_resizing_enabled_flagは、画像のサイズを調整するかどうかについての構文要素を意味する。活性化される場合(img_resizing_enabled_flag=1)には、サイズ調整後の画像を符号化/復号化することを意味し、追加的なサイズ調整関連情報を確認することができる。非活性化される場合(img_resizing_enabled_flag=0)には、既存の画像を符号化/復号化することを意味する。また、画面内予測のためのサイズ調整を意味する構文要素であり得る。
resizing_met_flagは、サイズ調整方法についての構文要素を意味する。スケールファクタを用いたサイズ調整を行う場合(resizing_met_flag=0)、オフセットファクタを用いたサイズ調整を行う場合(resizing_met_flag=1)、その他のサイズ調整方法などの候補群のうちのいずれかに決定できる。
resizing_mov_flagは、サイズ調整動作についての構文要素を意味する。例えば、拡張及び縮小のいずれかに決定できる。
width_scaleとheight_scaleは、スケールファクタを用いたサイズ調整のうちの横サイズ調整、縦サイズ調整に関するスケールファクタを意味する。
top_height_offsetとbottom_height_offsetは、オフセットファクタを用いたサイズ調整のうちの横サイズ調整に関連する上方向、下方向のオフセットファクタを意味し、left_width_offsetとright_width_offsetは、オフセットファクタを用いたサイズ調整のうちの縦サイズ調整に関連する左方向、右方向のオフセットファクタを意味する。
前記サイズ調整関連情報と画像サイズ情報を介して、サイズ調整後の画像のサイズが更新できる。
resizing_type_flagは、サイズ調整される領域のデータ処理方法についての構文要素を意味する。サイズ調整方法、サイズ調整動作に応じて、データ処理方法に対する候補群の個数は同一でも異なってもよい。
前述する画像符号化/復号化装置に適用される画像設定過程は、個別に行われるか、或いは複数の画像設定過程が混合されて行われ得る。後述する例では、複数の画像設定過程が混合されて行われる場合についての説明をする。
図11は本発明の一実施形態に係る画像設定過程の前と後の画像を示す例示図である。詳細には、11aは分割された画像に画像の再構成を行う前の例(例えば、360度画像符号化で投影された画像)であり、11bは分割された画像に画像再構成を行った後の例(例えば、360度画像符号化でパッキングされた画像)を示す。すなわち、11aは画像設定過程を行う前、11bは画像設定過程を行った後の例示図として理解することができる。
本例における画像設定過程は、画像分割(本例において、タイルと仮定)と画像再構成に対する場合を説明する。
後述する例において画像分割が行われた後に画像の再構成が行われる場合についての説明をするが、符号化/復号化の設定に応じて画像の再構成が行われた後に画像分割が行われる場合も可能であり、他の場合への変形も可能である。また、前述した画像再構成過程(逆過程を含む)は、本実施形態における画像内の分割単位の再構成過程と同一又は類似の適用が可能である。
画像の再構成は、画像内のすべての分割単位に対して行われても行われなくてもよく、一部の分割単位に対して行われてもよい。したがって、再構成前の分割単位(例えば、P0乃至P5の一部)は、再構成後の分割単位(例えば、S0乃至S5の一部)と同一でも同一でなくてもよい。後述する例を介して様々な画像再構成の実行に関する場合を説明する。また、説明の便宜のために、画像の単位はピクチャ、分割画像の単位はタイル、分割単位は正方形の形状であると仮定して説明する。
一例として、画像の再構成を行うかどうかは、一部の単位(例えば、sps_convert_enabled_flag又はSEIやメタデータなど)で決定できる。又は、画像の再構成を行うかどうかは、一部の単位(例えば、pps_convert_enabled_flag)で決定できる。これは、該当単位(本例において、ピクチャ)で最初に発生するか、或いは上位単位で活性化(例えば、sps_convert_enabled_flag=1)された場合に可能である。又は、画像の再構成を行うかどうかは、一部の単位(例えば、tile_convert_flag[i]。iは分割単位インデックス)で決定できる。これは、該当単位(本例において、タイル)で最初に発生するか、或いは上位単位で活性化(例えば、pps_convert_enabled_flag=1)された場合に可能である。また、前記一部画像の再構成を行うかどうかは、符号化/復号化の設定に応じて暗示的に決定でき、それにより関連情報は省略できる。
一例として、画像の再構成を指示する信号(例えば、pps_convert_enabled_flag)に応じて、画像内の分割単位の再構成を行うかどうかが決定できる。詳細には、前記信号に応じて、画像内のすべての分割単位の再構成を行うかどうかが決定できる。このとき、画像に一つの画像の再構成を指示する信号が発生することができる。
一例として、画像の再構成を指示する信号(例えば、tile_convert_flag[i])に応じて、画像内の分割単位の再構成を行うかどうかが決定できる。詳細には、前記信号に応じて、画像内の一部分割単位の再構成を行うかどうかが決定できる。このとき、少なくとも一つの画像の再構成を指示する信号(例えば、分割単位の個数だけ発生)が発生することができる。
一例として、画像の再構成を指示する信号(例えば、pps_convert_enabled_flag)に応じて、画像の再構成を行うかどうかが決定でき、画像の再構成を指示する信号(例えば、tile_convert_flag[i])に応じて、画像内の分割単位の再構成を行うかどうかが決定できる。詳細には、一部の信号が活性化された場合(例えば、pps_convert_enabled_flag=1)にさらに一部の信号(例えば、tile_convert_flag[i])を確認することができ、前記信号(本例において、tile_convert_flag[i])に応じて、画像内の一部分割単位の再構成を行うかどうかが決定できる。このとき、複数の画像の再構成を指示する信号が発生することができる。
画像の再構成を指示する信号が活性化される場合、画像再構成関連情報が発生することができる。後述する例においてさまざまな画像再構成関連情報に関する場合を説明する。
一例として、画像に適用される再構成情報が発生することができる。詳細には、一つの再構成情報が画像内のすべての分割単位の再構成情報として使用できる。
一例として、画像内の分割単位に適用される再構成情報が発生することができる。詳細には、少なくとも一つの再構成情報が画像内の一部分割単位の再構成情報として使用できる。すなわち、一つの再構成情報が一つの分割単位の再構成情報として使用できるか、或いは一つの再構成情報が複数の分割単位の再構成情報として使用できる。
後述する例は、画像の再構成を行う例との組み合わせによって説明できる。
例えば、画像の再構成を指示する信号(例えば、pps_convert_enabled_flag)が活性化される場合、画像内の分割単位に共通に適用される再構成情報が発生することができる。又は、画像の再構成を指示する信号(例えば、pps_convert_enabled_flag)が活性化される場合、画像内の分割単位に個別に適用される再構成情報が発生することができる。又は、画像の再構成を指示する信号(例えば、tile_convert_flag[i])が活性化される場合、画像内の分割単位に個別に適用される再構成情報が発生することができる。又は、画像の再構成を指示する信号(例えば、tile_convert_flag[i])が活性化される場合、画像内の分割単位に共通に適用される再構成情報が発生することができる。
前記再構成情報の場合、符号化/復号化の設定に応じて暗示的又は明示的な処理をすることができる。暗示的な場合は、画像の特性、種類などに応じて所定の値に再設定情報を割り当てることができる。
11aのP0乃至P5は、11bのS0乃至S5に対応することができ、分割単位に再構成過程が行われ得る。例えば、P0に再構成を行わずにSOに割り当てることができ、P1に90度の回転を適用してS1に割り当てることができ、P2に180度の回転を適用してS2に割り当てることができ、P3に左右反転を適用してS3に割り当てることができ、P4に90度回転後の左右反転を適用してS4に割り当てることができ、P5に180度回転後の左右反転を適用してS5に割り当てることができる。
ただし、前述した例示に限定されず、様々な変形の例も可能である。上記例のように画像の分割単位に対して再構成を行わないか、或いは回転を適用した再構成、反転を適用した再構成、回転と反転を混合適用した再構成のうちの少なくとも一つの再構成方法を行うことができる。
画像の再構成が分割単位に適用される場合、分割単位再配置などの追加的な再構成過程が行われ得る。すなわち、本発明の画像再構成過程は、画像内画素の再配置を行う以外に、分割単位の画像内再配置を含んで構成でき、表4のような一部の構文要素(例えば、part_top、part_left、part_width、part_heightなど)で表現できる。これは、画像分割と画像再構成過程が混合されて理解できることを意味する。上記の説明は、画像が複数の単位に分割される場合に可能な例であり得る。
11aのP0乃至P5は、11bのS0乃至S5に対応することができ、分割単位に再構成過程が行われ得る。例えば、P0に再構成を行わずS0に割り当てることができ、P1に再構成を行わずS2に割り当てることができ、P2に90度の回転を適用してS1に割り当てることができ、P3に左右反転を適用してS4に割り当てることができ、P4に90度回転後の左右反転を適用してS5に割り当てることができ、P5に左右反転後の180度回転を適用してS3に割り当てることができ、これに限定されず、様々な変形への例も可能である。
また、図7のP_WidthとP_Heightは図11のP_WidthとP_Heightと対応することができ、図7のP’_WidthとP’_Heightは図11のP’_WidthとP’_Heightと対応することができる。図7におけるサイズ調整後の画像サイズは、P’_Width×P’_Heightであって、(P_Width+Exp_L+Exp_R)×(P_Height+Exp_T+Exp_B)で表現することができ、図11におけるサイズ調整後の画像サイズは、P’_Width×P’_Heightであって、(P_Width+Var0_L+Var1_L+Var2_L+Var0_R+Var1_R+Var2_R)×(P_Height+Var0_T+Var1_T+Var0_B+Var1_B)であるか、或いは(Sub_P0_Width+Sub_P1_Width+Sub_P2_Width+Var0_L+Var1_L+Var2_L+Var0_R+Var1_R+Var2_R)×(Sub_P0_Height+Sub_P1_Height+Var0_T+Var1_T+Var0_B+Var1_B)で表現することができる。
上記例のように、画像の再構成は、画像の分割単位内の画素再配置を行うことができ、画像内の分割単位の再配置を行うことができ、画像の分割単位内の画素再配置だけでなく、画像内の分割単位の再配置を行うことができる。このとき、分割単位の画素再配置を行った後に分割単位の画像内再配置を行うことができるか、或いは、分割単位の画像内再配置を行った後に分割単位の画素再配置を行うことができる。
画像内の分割単位の再配置は、画像の再構成を指示する信号に応じて、行うかどうかが決定できる。或いは、画像内の分割単位の再配置に対する信号が発生することができる。詳細には、画像の再構成を指示する信号が活性化された場合に前記信号が発生することができる。或いは、符号化/復号化の設定に応じて暗示的又は明示的な処理をすることができる。暗示的な場合は、画像の特性、種類などに応じて決定できる。
また、画像内の分割単位の再配置についての情報は、符号化/復号化の設定に応じて暗示的又は明示的な処理をすることができ、画像の特性、種類などに応じて決定できる。すなわち、所定の分割単位の配置情報に応じて各分割単位を配置することができる。
次に、本発明の一実施形態に係る符号化/復号化装置で画像内の分割単位の再構成を行う例を示す。
符号化の開始前に入力画像に対して分割情報を用いて分割過程を行うことができる。分割単位に再構成情報を用いて再構成過程を行うことができ、分割単位に再構成された画像を符号化することができる。符号化の完了後にメモリに保存することができ、画像符号化データをビットストリームに収録して伝送することができる。
復号化の開始前に分割情報を用いて分割過程を行うことができる。分割単位に再構成情報を用いて再構成過程を行い、再構成が行われた分割単位で画像復号化データをパーシングして復号化することができる。復号化の完了後にメモリに保存することができ、分割単位の再構成逆過程を行った後に分割単位を一つに併合して画像を出力することができる。
図12は本発明の一実施形態に係る画像内の分割単位それぞれを対象としたサイズ調整の例示図である。図12のP0乃至P5は図11のP0乃至P5に対応し、図12のS0乃至S5は図11のS0乃至S5に対応する。
後述する例において、画像の分割を行った後に画像サイズ調整を行う場合を中心に説明するが、符号化/復号化の設定に応じて画像サイズ調整を行った後に画像分割を行う場合も可能であり、他の場合への変形も可能である。また、前述した画像サイズ調整過程(逆過程を含む)は、本実施形態における画像内の分割単位のサイズ調整過程と同一か類似の適用が可能である。
例えば、図7のTL~BRは図12の分割単位SX(S0~S5)のTL~BRに対応することができ、図7のS0とS1は図12のPXとSXに対応することができ、図7のP_WidthとP_Heightは図12のSub_PX_WidthとSub_PX_Heightに対応することができ、図7のP’_WidthとP’_Heightは図12のSub_SX_WidthとSub_SX_Heightに対応することができ、図7のExp_L、Exp_R、Exp_T、Exp_Bは図12のVarX_L、VarX_R、VarX_T、VarX_Bに対応することができ、その他の要因も対応することができる。
12a乃至12fの画像内の分割単位のサイズ調整過程では、分割単位の個数に比例して画像サイズ拡大又は縮小に関する設定が存在しうるという点で、図7の7a及び図7bでの画像サイズ拡大又は縮小と区別できる。また、画像内の分割単位に共通に適用される設定を持つか、或いは画像内の分割単位に個別に適用される設定を持つ差異点が存在することができる。後述する例でさまざまな場合のサイズ調整についての場合を説明し、上記の事項を考慮してサイズ調整過程が行われ得る。
本発明における画像サイズ調整は、画像内のすべての分割単位に行われても行われなくてもよく、一部分割単位に行われてもよい。後述する例を介して、さまざまな画像サイズ調整に関する場合を説明する。また、説明の便宜のために、サイズ調整動作は拡張、サイズ調整を行う方法はオフセットファクタ、サイズ調整方向は上、下、左、右方向、サイズ調整方向はサイズ調整情報によって動作する設定、画像の単位はピクチャ、分割画像の単位はタイルであると仮定して説明する。
一例として、画像のサイズ調整を行うかどうかは、一部の単位(例えば、sps_img_resizing_enabled_flag、又はSEIやメタデータなど)で決定できる。又は、画像のサイズ調整を行うかどうかは、一部の単位(例えば、pps_img_resizing_enabled_flag)で決定できる。これは、該当単位(本例において、ピクチャ)で最初に発生するか、或いは上位単位で活性化(例えば、sps_img_resizing_enabled_flag=1)された場合に可能である。又は、画像のサイズ調整を行うかどうかは、一部の単位(例えば、tile_resizing_flag[i]。iは分割単位インデックス)で決定できる。これは、該当単位(本例において、タイル)で最初に発生するか、或いは上位単位で活性化された場合に可能である。また、前記一部の画像のサイズ調整を行うかどうかは、符号化/復号化の設定に応じて暗示的に決定でき、それにより関連情報は省略できる。
一例として、画像のサイズ調整を指示する信号(例えば、pps_img_resizing_enabled_flag)に応じて、画像内の分割単位のサイズ調整を行うかどうかが決定できる。詳細には、前記信号に応じて、画像内のすべての分割単位のサイズ調整を行うかどうかが決定できる。このとき、一つの画像のサイズ調整を指示する信号が発生することができる。
一例として、画像のサイズ調整を指示する信号(例えば、tile_resizing_flag[i])に応じて、画像内の分割単位のサイズ調整を行うかどうかが決定できる。詳細には、前記信号に応じて、画像内の一部分割単位のサイズ調整を行うかどうかが決定できる。このとき、少なくとも一つの画像のサイズ調整を指示する信号(例えば、分割単位の個数だけ発生)が発生することができる。
一例として、画像のサイズ調整を指示する信号(例えば、pps_img_resizing_enabled_flag)に応じて、画像のサイズ調整を行うかどうかが決定でき、画像のサイズ調整を指示する信号(例えば、tile_resizing_flag[i])に応じて、画像内の分割単位のサイズ調整を行うかどうかが決定できる。詳細には、一部の信号が活性化された場合(例えば、pps_img_resizing_enabled_flag=1)にさらに一部の信号(例えば、tile_resizing_flag[i])を確認することができ、前記信号(本例において、tile_resizing_flag[i])に応じて、画像内の一部の分割単位のサイズ調整を行うかどうかが決定できる。このとき、複数の画像のサイズ調整を指示する信号が発生することができる。
画像のサイズ調整を指示する信号が活性化される場合、画像のサイズ調整関連情報が発生することができる。後述する例で様々な画像サイズ調整関連情報に関する場合を説明する。
一例として、画像に適用されるサイズ調整情報が発生することができる。詳細には、一つのサイズ調整情報又はサイズ調整情報セットが画像内のすべての分割単位のサイズ調整情報として使用できる。例えば、画像内の分割単位の上、下、左、右方向に共通に適用される一つのサイズ調整情報(又は、分割単位で支援されるか許容されるサイズ調整方向に全て適用されるサイズ調整値など。本例において一つの情報)又は上、下、左、右方向にそれぞれ適用される一つのサイズ調整情報セット(又は、分割単位で支援されるか許容されるサイズ調整方向の個数だけ。本例において最大4つの情報)が発生することができる。
一例として、画像内の分割単位に適用されるサイズ調整情報が発生することができる。詳細には、少なくとも一つのサイズ調整情報又はサイズ調整情報セットが画像内の一部分割単位のサイズ調整情報として使用できる。すなわち、一つのサイズ調整情報又はサイズ調整情報セットが一つの分割単位のサイズ調整情報として使用できるか、或いは複数の分割単位のサイズ調整情報として使用できる。例えば、画像内の一つの分割単位の上、下、左、右方向に共通に適用される一つのサイズ調整情報又は上、下、左、右方向にそれぞれ適用される一つのサイズ調整情報セットが発生することができる。又は、画像内の複数の分割単位の上、下、左、右方向に共通に適用される一つのサイズ調整情報又は上、下、左、右方向にそれぞれ適用される一つのサイズ調整情報セットが発生することができる。サイズ調整セットの構成は、少なくとも一つのサイズ調整方向に対するサイズ調整値情報を意味する。
まとめると、画像内の分割単位に共通に適用されるサイズ調整情報が発生することができる。又は、画像内の分割単位に個別に適用されるサイズ調整情報が発生することができる。後述する例は、画像サイズ調整を行う例との組み合わせによって説明できる。
例えば、画像のサイズ調整を指示する信号(例えば、pps_img_resizing_enabled_flag)が活性化される場合、画像内の分割単位に共通に適用されるサイズ調整情報が発生することができる。又は、画像のサイズ調整を指示する信号(例えば、pps_img_resizing_enabled_flag)が活性化される場合、画像内の分割単位に個別に適用されるサイズ調整情報が発生することができる。又は、画像のサイズ調整を指示する信号(例えば、tile_resizing_flag[i])が活性化される場合、画像内の分割単位に個別に適用されるサイズ調整情報が発生することができる。又は、画像のサイズ調整を指示する信号(例えば、tile_resizing_flag[i])が活性化される場合、画像内の分割単位に共通に適用されるサイズ調整情報が発生することができる。
画像のサイズ調整方向やサイズ調整情報などは、符号化/復号化の設定に応じて暗示的又は明示的な処理をすることができる。暗示的な場合は、画像の特性、種類などに応じて所定の値にサイズ調整情報を割り当てることができる。
前述した本発明のサイズ調整過程でのサイズ調整方向は、上、下、左、右方向のうちの少なくとも一つの方向であり、サイズ調整方向とサイズ調整情報は、明示的又は暗示的な処理が可能であるという説明をした。すなわち、一部の方向は暗示的にサイズ調整値(0を含む。すなわち、調整なし)が予め決定され、一部の方向は明示的にサイズ調整値(0を含む。すなわち、調整なし)が割り当てられる。
画像内の分割単位でも、サイズ調整方向とサイズ調整情報は暗示的又は明示的な処理が可能な設定を置くことができ、これは画像内の分割単位に適用できる。例えば、画像内の一つの分割単位に適用される設定(本例において、分割単位だけ発生)が発生することができるか、或いは画像内の複数の分割単位に適用される設定が発生することができるか、或いは画像内のすべての分割単位に適用される設定(本例において、一つの設定が発生)が発生することができ、画像に少なくとも一つの設定が発生することができる(例えば、一つの設定から分割単位個数だけの設定が発生可能)。前記画像内の分割単位に適用される設定情報を集めて一つの設定セットが定義できる。
図13は画像内の分割単位のサイズ調整又は設定セットに対する例示図である。
詳細には、画像内の分割単位のサイズ調整方向とサイズ調整情報の暗示的又は明示的な処理の様々な例を示す。後述する例において、説明の便宜のために、暗示的な処理は一部のサイズ調整方向のサイズ調整値が0である場合と仮定して説明する。
13aのように分割単位の境界が画像の境界と一致する場合(本例において、太い実線)には、サイズ調整の明示的な処理を、一致しない場合(細い実線)には、暗示的な処理をすることができる。例えば、P0は上方向及び左方向(a2、a0)、P1は上方向(a2)、P2は上方向及び右方向(a2、a1)、P3は下方向及び左方向(a3、a0)、P4は下方向(a3)、P5は下方向及び右方向(a3、a1)にサイズ調整が可能であり、その他の方向にサイズ調整が不可能である。
13bのように、分割単位の一部の方向(本例において、上、下)は、サイズ調整の明示的な処理をすることができ、分割単位の一部の方向(本例において、左、右)は、分割単位の境界が画像の境界と一致する場合には明示的な処理(本例において、太い実線)を、一致しない場合(本例において、細い実線)には暗示的な処理をすることができる。例えば、P0は上、下、左方向(b2、b3、b0)、P1は上、下方向(b2、b3)、P2は上、下、右方向(b2、b3、b1)、P3は上、下、左方向(b3、b4、b0)、P4は上、下方向(b3、b4)、P5は上、下、右方向(b3、b4、b1)にサイズ調整が可能であり、その他の方向はサイズ調整が不可能である。
13cのように、分割単位の一部の方向(本例において、左、右)は、サイズ調整の明示的な処理をすることができ、分割単位の一部の方向(本例において、上、下)は、分割単位の境界が画像の境界と一致する場合(本例において、太い実線)には明示的な処理を、一致しない場合(本例において、細い実線)には暗示的な処理をすることができる。例えば、P0は上、左、右方向(c4、c0、c1)、P1は上、左、右方向(c4、c1、c2)、P2は上、左、右方向(c4、c2、c3)、P3は下、左、右方向(c5、c0、c1)、P4は下、左、右方向(c5、c1、c2)、P5は下、左、右方向(c5、c2、c3)にサイズ調整が可能であり、その他の方向はサイズ調整が不可能である。
上記例のように画像のサイズ調整に関連する設定は、さまざまな場合を持つことができる。複数の設定セットが支援されて明示的に設定セット選択情報が発生することができるか、或いは符号化/復号化の設定(例えば、画像の特性、種類など)に応じて所定の設定セットが暗示的に決定できる。
図14は画像サイズ調整過程と画像内の分割単位のサイズ調整過程を一緒に表現した例示図である。
図14を参照すると、画像サイズ調整過程及び逆過程はeとfの方向に進行することができ、画像内の分割単位のサイズ調整過程及び逆過程はdとgの方向に進行することができる。すなわち、画像にサイズ調整過程を行うことができ、画像内の分割単位のサイズ調整を行うことができ、サイズ調整過程の順序は固定的ではない。これは複数のサイズ調整過程が可能であることを意味する。
まとめると、画像のサイズ調整過程は、画像のサイズ調整(又は分割前の画像のサイズ調整)と画像内の分割単位のサイズ調整(又は分割後の画像のサイズ調整)に分類することができ、画像のサイズ調整と画像内の分割単位のサイズ調整を両方行わなくてもよく、両方のうちのいずれかを行ってもよく、両方ともを行ってもよい。これは符号化/復号化の設定(例えば、画像の特性、種類など)に応じて決定できる。
上記の例で複数のサイズの調整過程を行う場合、画像のサイズ調整は画像の上、下、左、右方向のうちの少なくとも一つの方向にサイズ調整を行うことができ、画像内の分割単位のうちの少なくとも一つの分割単位のサイズ調整を行うことができる。この時、サイズ調整を行う分割単位の上、下、左、右方向のうちの少なくとも一つの方向にサイズ調整を行うことができる。
図14を参照すると、サイズ調整前の画像AのサイズはP_Width×P_Height、1次サイズ調整後の画像(又は2次サイズ調整前の画像、B)のサイズはP’_Width×P’_Height、2次サイズ調整後の画像(又は最終サイズ調整後の画像、C)のサイズはP’’_Width×P’’_Heightと定義することができる。サイズ調整前の画像Aは、いずれのサイズ調整も行われない画像を意味し、1次サイズ調整後の画像Bは、一部のサイズ調整が行われた画像を意味し、2次サイズ調整後の画像Cは、すべてのサイズ調整が行われた画像を意味する。例えば、1次サイズ調整後の画像Bは、図13a~図13cに示すように画像内の分割単位のサイズ調整が行われた画像を意味し、2次サイズ調整後の画像Cは、図7aに示すように1次サイズ調整された画像B全体に対してサイズ調整が行われた画像を意味することができ、その逆の場合も可能である。上記の例に限定されず、様々な変形の例が可能である。
1次サイズ調整後の画像Bのサイズにおいて、P’_WidthはP_Widthと横にサイズ調整可能な左又は右方向の少なくとも一つのサイズ調整値を介して取得でき、P’_HeightはP_Heightと縦にサイズ調整可能な上又は下方向の少なくとも一つのサイズ調整値を介して取得できる。このとき、前記サイズ調整値は、分割単位で発生するサイズ調整値であり得る。
2次サイズ調整後の画像Cのサイズにおいて、P’’_WidthはP’_Widthと横にサイズ調整可能な左又は右方向の少なくとも一つのサイズ調整値を介して取得でき、P’’_HeightはP’_Heightと縦にサイズ調整可能な上又は下方向の少なくとも一つのサイズ調整値を介して取得できる。このとき、前記サイズ調整値は、画像から発生するサイズ調整値であり得る。
まとめると、サイズ調整後の画像のサイズは、サイズ調整前の画像のサイズと少なくとも一つのサイズ調整値を介して取得できる。
画像のサイズ調整される領域にデータ処理方法に関する情報が発生することができる。後述する例を介してさまざまなデータ処理方法に関する場合を説明し、サイズ調整逆過程で発生するデータ処理方法の場合も、サイズ調整過程の場合と同じか類似の適用が可能であり、サイズ調整過程とサイズ調整逆過程でのデータ処理方法が後述する場合のさまざまな組み合わせを介して説明できる。
一例として、画像に適用されるデータ処理方法が発生することができる。詳細には、一つのデータ処理方法又はデータ処理方法セットが画像内のすべての分割単位(本例において、すべての分割単位がサイズ調整される場合と仮定)のデータ処理方法として使用できる。例えば、画像内の分割単位の上、下、左、右方向に共通に適用される一つのデータ処理方法(又は、分割単位で支援されるか許容されるサイズ調整方向に全て適用されるデータ処理方法など。本例において一つの情報)又は上、下、左、右方向にそれぞれ適用される一つのデータ処理方法セット(又は、分割単位で支援されるか許容されるサイズ調整方向の個数だけ。本例において最大4つの情報)が発生することができる。
一例として、画像内の分割単位に適用されるデータ処理方法が発生することができる。詳細には、少なくとも一つのデータ処理方法又はデータ処理方法セットが画像内の一部の分割単位(本例において、サイズ調整される分割単位と仮定)のデータ処理方法として使用できる。すなわち、一つのデータ処理方法又はデータ処理方法セットが一つの分割単位のデータ処理方法として使用できるか、或いは複数の分割単位のデータ処理方法として使用できる。例えば、画像内の一つの分割単位の上、下、左、右方向に共通に適用される一つのデータ処理方法又は上、下、左、右方向にそれぞれ適用される一つのデータ処理方法セットが発生することができる。又は、画像内の複数の分割単位の上、下、左、右方向に共通に適用される一つのデータ処理方法又は上、下、左、右方向にそれぞれ適用される一つのデータ処理方法情報セットが発生することができる。データ処理方法セットの構成は、少なくとも一つのサイズ調整方向に対するデータ処理方法を意味する。
まとめると、画像内の分割単位に共通に適用されるデータ処理方法を使用することができる。又は、画像内の分割単位に個別に適用されるデータ処理方法を使用することができる。前記データ処理方法は所定の方法を使用することができる。所定のデータ処理方法は少なくとも一つの方法を置くことができる。これは、暗示的な場合に該当し、明示的にデータ処理方法に関する選択情報が発生することができる。これは符号化/復号化の設定(例えば、画像の特性、種類など)に応じて決定できる。
すなわち、画像内の分割単位に共通に適用されるデータ処理方法を使用することができ、所定の方法を使用するか、或いは複数のデータ処理方法のいずれかを選択することができる。又は、画像内の分割単位に個別に適用されるデータ処理方法を使用することができ、分割単位に応じて所定の方法を使用するか、或いは複数のデータ処理方法のいずれかを選択することができる。
後述する例は、画像内の分割単位のサイズ調整(本例において、拡張と仮定)に関する一部の場合(本例において、画像の一部データを用いてサイズ調整領域を充填する。)を説明する。
一部の単位(例えば、図12a乃至図12fのS0乃至S5)の一部領域TL~BRは、一部の単位(図12a乃至図12fのP0乃至P5)の一部領域tl~brのデータを用いてサイズ調整を行うことができる。この時、前記一部単位は、同一(例えばS0とP0)又は同一でない領域(例えば、S0とP1)であり得る。すなわち、サイズ調整される領域TL乃至BRは、当該分割単位の一部データtl乃至brを用いて充填することができ、サイズ調整される領域は、当該分割単位とは異なる分割単位の一部データを用いて充填することができる。
一例として、現在分割単位のサイズ調整される領域TL~BRは、現在分割単位のtl~brデータを用いてサイズ調整を行うことができる。例えば、S0のTLは、P0のtlデータを、S1のRCはP1のtr+rc+brデータを、S2のBL+BCはP2のbl+bc+brデータを、S3のTL+LC+BLはP3のtl+lc+blのデータを用いて充填することができる。
一例として、現在分割単位のサイズ調整される領域TL~BRは、現在分割単位に空間的に隣接した分割単位のtl~brデータを用いてサイズ調整を行うことができる。例えば、S4のTL+TC+TRは上方向のP1のb1+bc+brデータを、S2のBL+BCは下方向のP5のtl+tc+trデータを、S2のLC+BLは左方向のP1のtl+rc+blデータを、S3のRCは右方向のP4のtl+lc+blデータを、S0のBRは左下方向のP4のtlデータを用いて充填することができる。
一例として、現在分割単位のサイズ調整される領域TL~BRは、現在分割単位に空間的に隣接していない分割単位のtl~brデータを用いてサイズ調整を行うことができる。例えば、画像の両端境界(例えば、左右、上下など)領域のデータを取得することができる。S3のLCはS5のtr+rc+brデータ、S2のRCはS0のtl+lcデータ、S4のBCはS1のtc+trデータ、S1のTCはS4のbcデータを用いて取得することができる。
又は、画像の一部領域のデータ(空間的に隣接しないが、サイズ調整される領域との相関性が高いと判断される領域)を取得することができる。S1のBCはS3のtl+lc+blデータを、S3のRCはS1のtl+tcデータを、S5のRCはS0のbcデータを用いて取得することができる。
また、画像内の分割単位のサイズ調整(本例において、縮小と仮定)に関する一部の場合(本例において、画像の一部データを用いて復元又は補正して除去)は、次のとおりである。
一部単位(例えば、図12a乃至図12fのS0乃至S5)の一部領域TL~BRは、一部単位P0乃至P5の一部領域tl~brの復元又は補正過程に使用できる。この時、前記一部単位は、同一(例えばS0とP0)または同一でない領域(例えば、S0とP2)であり得る。すなわち、サイズ調整される領域は、該当分割単位の一部データの復元に使用及び除去でき、サイズ調整される領域は、該当分割単位とは異なる分割単位の一部データの復元に使用及び除去できる。詳細な例は拡張過程から逆に誘導可能なので省略する。
上記の例は、サイズ調整される領域との相関性が高いデータが存在する場合に適用される例であり、サイズ調整に参照される位置に対する情報は、明示的に生成できるか或いは暗示的に所定の規則に基づいて取得できるか、或いはこれらを混合して関連情報を確認することができる。これは、360度画像の符号化において連続性が存在する他の領域からデータを取得する場合に適用される例であり得る。
次に、本発明の一実施形態に係る符号化/復号化装置で画像内の分割単位のサイズ調整を行う例を示す。
符号化の開始前に入力画像に対する分割過程を行うことができる。分割単位にサイズ調整情報を用いてサイズ調整過程を行うことができ、分割単位のサイズ調整後の画像を符号化することができる。符号化の完了後にメモリに保存することができ、画像符号化データをビットストリームに収録して伝送することができる。
復号化の開始前に分割情報を用いて分割過程を行うことができる。分割単位にサイズ調整情報を用いてサイズ調整過程を行い、サイズ調整の行われた分割単位で画像復号化データをパーシングして復号化することができる。復号化の完了後にメモリに保存することができ、分割単位のサイズ調整逆過程を行った後に分割単位を一つに併合して画像を出力することができる。
前述した画像サイズ調整過程での他の場合も、上記例のように変更適用でき、これに限定されず、他の例への変更も可能である。
前記画像設定過程で画像サイズ調整と画像再構成との組み合わせが可能である。画像サイズ調整が行われた後に画像再構成が実行できるか、或いは画像再構成が行われた後に画像サイズ調整が実行できる。また、画像分割、画像再構成及び画像サイズ調整の組み合わせが可能である。画像分割が行われた後に画像サイズ調整と画像再構成が実行でき、画像設定の順序は固定的ではなく変更可能であり、これは符号化/復号化の設定に応じて決定できる。本例において、画像設定過程は画像分割が行われた後に画像再構成が行われ、画像のサイズ調整が行われる場合についての説明をするが、符号化/復号化の設定に応じて他の順序も可能であり、他の場合への変更も可能である。
例えば、分割→再構成、再構成→分割、分割→サイズ調整、サイズ調整→分割、サイズ変調整→再構成、再構成→サイズ調整、分割→再構成→サイズ調整、分割→サイズ調整→再構成、サイズ調整→分割→再構成、サイズ調整→再構成→分割、再構成→分割→サイズ調整、再構成→サイズ調整→分割などの順序で行われてもよく、追加的な画像設定との組み合わせも可能である。前述したように画像設定過程が順次行われてもよいが、全部又は一部の設定過程は同時に行うことも可能である。また、一部の画像設定過程は、符号化/復号化の設定(例えば、画像の特性、種類など)に応じて複数の過程が行われ得る。次に、画像設定過程の多様な組み合わせの場合の例を示す。
一例として、図11aのP0~P5は、図11bのS0~S5に対応することができ、分割単位に再構成過程(本例において、画素の再配置)、サイズ調整過程(本例において、分割単位に同じサイズ調整)が行われ得る。例えば、P0乃至P5にオフセットを用いたサイズ調整を適用してS0乃至S5に割り当てることができる。また、P0に再構成を行わずにS0に割り当てることができ、P1に90度回転を適用してS1に割り当てることができ、P2に180度回転を適用してS2に割り当てることができ、P3に270度回転を適用してS3に割り当てることができ、P4に左右反転を適用してS4に割り当てることができ、P5に上下反転を適用してS5に割り当てることができる。
一例として、図11aのP0~P5は、図11bのS0~S5と同じか異なる位置同士に対応することができ、分割単位に再構成過程(本例において、画素と分割単位の再配置)、サイズ調整過程(本例において、分割単位に同じサイズ調整)が行われ得る。例えば、P0乃至P5にスケールを用いたサイズ調整を適用してS0乃至S5に割り当てることができる。また、P0に再構成を行わずにS0に割り当てることができ、P1に再構成を行わずにS2に割り当てることができ、P2に90度回転を適用してS1に割り当てることができ、P3に左右反転を適用してS4に割り当てることができ、P4に90度回転後の左右反転を適用してS5に割り当てることができ、P5に左右反転後の180度回転を適用してS3に割り当てることができる。
一例として、図11aのP0~P5は、図5eのE0~E5に対応することができ、分割単位に再構成過程(本例において、画素と分割単位の再配置)、サイズ調整過程(本例において、分割単位に同一でないサイズ調整)が行われ得る。例えば、P0にサイズ調整と再構成は行わずにE0に割り当てることができ、P1にスケールを用いたサイズ調整は行い且つ再構成は行わずにE1に割り当てることができ、P2にサイズ調整は行わず且つ再構成は行ってE2に割り当てることができ、P3にオフセットを用いたサイズ調整は行い且つ再構成は行わずにE4に割り当てることができ、P4にサイズ調整は行わず且つ再構成は行ってE5に割り当てることができ、P5にオフセットを用いたサイズ調整は行い且つ再構成は行ってE3に割り当てることができる。
上記例のように画像設定過程の前と後の分割単位の画像内の絶対的な位置又は相対的な位置が維持されてもよく変更されてもよい。これは、符号化/復号化の設定(例えば、画像の特性、種類など)に応じて決定できる。また、様々な画像設定過程の組み合わせが可能であり、上記例に限定されず、様々な例への変形も可能である。
符号化器では上記の過程で発生する情報をシーケンス、ピクチャ、スライス、タイルなどの単位のうちの少なくとも一つの単位でビットストリームに収録し、復号化器では関連情報をビットストリームからパーシングする。また、SEI又はメタデータの形式でビットストリームに含まれ得る。
次に、複数の画像設定に関連付けられた構文要素に対する例を示す。後述する例では、追加される構文要素を中心に説明する。また、後述する例の構文要素は、ある特定の単位に限定されるものではなく、シーケンス、ピクチャ、スライス、タイルなどの様々な単位で支援される構文要素であり得る。又は、SEIやメタデータなどに含まれる構文要素であり得る。
表4を参照すると、parts_enabled_flagは、一部単位の分割か否かに対する構文要素を意味する。活性化される場合(parts_enabled_flag=1)には、複数の単位に分割して符号化/復号化を行うことを意味し、追加的な分割情報を確認することができる。非活性化される場合(parts_enabled_flag=0)には、既存の画像を符号化/復号化することを意味する。本例は、タイルなどの長方形の分割単位を中心に説明し、既存のタイルと分割情報に対する異なる設定を持つことができる。
num_partitionsは分割単位個数に対する構文要素を意味し、1を加えた値は分割単位の個数を意味する。
part_top[i]とpart_left[i]は、分割単位の位置情報に対する構文要素を意味し、分割単位の横、縦の開始位置(例えば、分割単位の左上端の位置)を意味する。part_width[i]とpart_height[i]は、分割単位のサイズ情報に対する構文要素を意味し、分割単位の横幅、縦幅を意味する。このとき、開始位置とサイズ情報は画素単位又はブロック単位で設定できる。また、前記構文要素は、画像再構成過程で発生可能な構文要素であるか、或いは画像分割過程と画像再構成過程とが混合構成される場合に発生可能な構文要素であり得る。
part_header_enabled_flagは、分割単位に符号化/復号化の設定を支援するかどうかに対する構文要素を意味する。活性化される場合(part_header_enabled_flag=1)には、分割単位の符号化/復号化の設定を持つことができ、非活性化される場合(part_header_enabled_flag=0)には、符号化/復号化の設定を持つことができず、上位単位の符号化/復号化設定の割り当てを受けることができる。
上記の例は、後述する画像設定のうち、分割単位でサイズ調整と再構成に関連付けられた構文要素に対する一例であって、これに限定されず、本発明の他の分割単位及び設定などの変更適用が可能である。本例は、分割が行われた後にサイズ調整及び再構成を行うという仮定の下に説明されるが、これに限定されず、他の画像設定順序などによって変更適用可能である。また、後述する例で支援される構文要素の種類、構文要素の順序、条件などは、本例でのみ限定されるだけで、符号化/復号化の設定に応じて変更され、決定され得る。
表5は画像設定における分割単位の再構成に関連する構文要素についての例を示す。
表5を参照すると、part_convert_flag[i]は、分割単位の再構成か否かに対する構文要素を意味する。前記構文要素は、分割単位ごとに発生することができ、活性化される場合(part_convert_flag[i]=1)には、再構成された分割単位を符号化/復号化することを意味し、追加的な再構成関連情報を確認することができる。非活性化場合(part_convert_flag[i]=0)には、既存の分割単位を符号化/復号化することを意味する。convert_type_flag[i]は、分割単位の再構成に関するモード情報を意味し、画素の再配置に関する情報であり得る。
また、分割単位の再配置などの追加的な再構成に対する構文要素が発生しうる。本例では、前述した画像分割に関する構文要素であるpart_topとpart_leftを介して分割単位の再配置を行うこともでき、或いは分割単位の再配置に関連する構文要素(例えば、インデックス情報など)が発生することもできる。
表6は画像設定における分割単位のサイズ調整に関連する構文要素についての例を示す。
表6を参照すると、part_resizing_flag[i]は、分割単位の画像サイズ調整を行うかどうかに対する構文要素を意味する。前記構文要素は、分割単位ごとに発生することができ、活性化される場合(part_resizing_flag[i]=1)には、サイズ調整後の分割単位を符号化/復号化することを意味し、追加的なサイズ関連情報を確認することができる。非活性化される場合(part_resiznig_flag[i]=0)には、既存の分割単位を符号化/復号化することを意味する。
width_scale[i]とheight_scale[i]は、分割単位でスケールファクタを用いたサイズ調整における横サイズ調整、縦サイズ調整に関するスケールファクタを意味する。
top_height_offset[i]とbottom_height_offset[i]は、分割単位でオフセットファクタを用いたサイズ調整に関連する上方向、下方向のオフセットファクタを意味し、left_width_offset[i]とright_width_offset[i]は、分割単位でオフセットファクタを用いるサイズ調整に関連する左方向、右方向のオフセットファクタを意味する。
resizing_type_flag[i][j]は、分割単位でサイズ調整される領域のデータ処理方法に対する構文要素を意味する。前記構文要素は、サイズ調整される方向への個別のデータ処理方法を意味する。例えば、上、下、左、右方向にサイズ調整される領域の個別のデータ処理方法に対する構文要素が発生することができる。これは、サイズ調整情報(例えば、一部の方向にサイズ調整される場合にのみ発生可能)に基づいて生成されることもできる。
前述する画像設定過程は、画像の特性、種類などに応じて適用される過程であり得る。後述する例では、特別な言及がなくても、前述した画像設定過程を同様に適用することができるか、或いは変更された適用が可能である。後述する例では、前述した例で追加的であるか変更適用される場合を中心に説明をする。
例えば、360度のカメラを介して生成される画像{360度画像(360-degree Video)又は全方位画像(Omnidirectional Video)}の場合は、一般カメラを介して取得される画像とは異なる特性を有し、一般な画像の圧縮とは異なる符号化環境を持つ。
一般な画像とは異なり、360度画像は、不連続的な特性を有する境界部分は存在せず、すべての領域のデータは連続性を持つことができる。また、HMDなどの装置では、レンズを介して目の前で画像が再生され、高画質の画像を要求することができ、ステレオスコープ(Stereoscopic)カメラを介して画像が取得される場合、処理される画像データは増加することができる。上記の例を含めて効率的な符号化環境を提供するための目的で、360度の画像を考慮した様々な画像設定過程が行われ得る。
前記360度のカメラは、複数のカメラ又は複数のレンズとセンサーを有するカメラであり、前記カメラ又はレンズは、カメラでキャプチャーする任意の中央点を中心に周囲のすべての方向を扱うことができる。
360度画像は、さまざまな方法を用いて符号化を行うことができる。例えば、3次元空間での様々な画像処理アルゴリズムを用いて符号化を行うことができ、2次元空間に変換して様々な画像処理アルゴリズムを用いて符号化を行うこともできる。本発明では、360度画像を2次元空間に変換して符号化/復号化を行う方法を中心に説明する。
本発明の一実施形態に係る360度画像符号化装置は、図1による構成の全部又は一部を含んで構成でき、入力画像に対して前処理(Stitching、Projection、Region-wise Packing)を行う前処理部をさらに含むことができる。一方、本発明の一実施形態に係る360度画像復号化装置は、図2による構成の全部又は一部を含むことができ、復号化されて出力画像として再生される前に後処理(Rendering)を行う後処理部をさらに含むことができる。
再度説明すると、符号化器で入力画像に対する前処理過程(Pre-processing)を経た後に符号化を行ってこれに対するビットストリームを伝送することができ、復号化器から伝送されたビットストリームをパーシングして復号化を行い、後処理過程(Post-processing)を経た後に出力画像を生成することができる。このとき、ビットストリームには、前処理過程で発生する情報と符号化過程で発生する情報が収録されて伝送でき、復号化器でこれをパーシングして復号化過程と後処理過程で使用することができる。
次に、360度画像符号化器の動作方法についてより詳細に説明し、360度画像復号化器の動作方法は、360度画像符号化器の逆動作であるため、通常の技術者が容易に導出することができて詳細な説明は省略する。
入力画像は、球(Sphere)単位の3次元投影構造(Projection Structure)にステッチング(Stitching)及び投影(Projection)過程が行われ得る。前記過程を介して、3次元投影構造上の画像データは2次元画像に投影できる。
投影された画像(Projected Image)は、符号化の設定に応じて360度のコンテンツの全部又は一部を含んで構成できる。このとき、投影された画像の中央に配置される領域(又は画素)の位置情報を暗示的に所定の値として生成するか、或いは明示的に位置情報を生成することができる。また、360度のコンテンツのうちの一部領域を含んで投影された画像を構成する場合、含まれる領域の範囲、位置情報を生成することができる。また、投影画像における関心領域(Region of Interest。ROI)に対する範囲情報(例えば、縦幅、横幅)、位置情報(例えば、画像の左上側を基準に測定)を生成することができる。このとき、360度のコンテンツのうち高い重要度を持つ一部の領域を関心領域として設定することができる。360度の画像は上、下、左、右方向のすべてのコンテンツを見ることができるが、ユーザの視線は画像の一部に限定でき、これを考慮して関心領域として設定することができる。効率の良い符号化のために、関心領域には良い品質、解像度を持つように設定することができ、その他の領域は関心領域よりは低い品質、解像度を持つように設定することができる。
360度画像伝送方式の中でも、単一ストリーム伝送方式(Single Stream)は、ユーザに対する個別単一ビットストリームで全体画像又はビューポート(Viewport)画像を伝送することができる。多重ストリーム伝送方式(Multi Stream)は、画像の品質が異なる複数の全体画像を多重ビットストリームで伝送することにより、ユーザの環境、通信状況に応じて画像画質を選択することができる。タイルストリーム(Tiled Stream)伝送方式は、個別的に符号化されたタイル単位の部分画像を多重ビットストリームで伝送することにより、ユーザの環境、通信状況に応じてタイルを選択することができる。したがって、360度画像符号化器は、二つ以上の品質を持つビットストリームを生成して伝送し、360度画像復号化器は、ユーザの視線に応じて関心領域を設定し、関心領域に応じて選択的に復号化することができる。すなわち、ヘッドトラッキング(Head Tracking)又はアイトラッキング(Eye Tracking)システムを介してユーザの視線が留まる所を関心領域として設定し、必要な部分のみレンダリング(Rendering)を行うことができる。
投影された画像は、地域別パッキング(Region-wise Packing)過程を行い、パッキングされた画像(Packed Image)に変換できる。地域別パッキング過程は、投影された画像を複数の地域に分割する段階を含むことができる。この時、分割された各地域は、地域別パッキングの設定に応じて、パッキングされた画像に配置(又は再配置)できる。地域別パッキングは、360度画像を2次元画像(又は投影された画像)に変換するときに空間的な連続性を高めるための目的で行われ得る。地域別パッキングを介して画像のサイズを減らすことができる。また、レンダリングの際に発生する画質劣化を低減することができ、ビューポートベースの投影を可能にし、他のタイプの投影フォーマットを提供するための目的で行われ得る。地域別パッキングは、符号化の設定に応じて行われても行われなくてもよく、行うかどうかを指示する信号(例えば、regionwise_packing_flag、後述する例において、地域別パッキング関連情報は、regionwise_packing_flagが活性化される場合にのみ発生可能)に基づいて決定できる。
地域別パッキングが行われる場合には、投影された画像の一部領域がパッキングされた画像の一部領域として割り当てられる(又は配置される)設定情報(又はマッピング情報)などを表示(又は生成)することができる。地域別パッキングが行われない場合には、投影された画像とパッキングされた画像は同じ画像であり得る。
上述では、ステッチング、投影、地域別パッキング過程を個別の過程として定義したが、前記過程の一部(例えば、ステッチング+投影、投影+地域別パッキング)又は全部(例えば、ステッチング+投影+地域別パッキング)が一つの過程として定義できる。
前記ステッチング、投影、地域別パッキング過程などの設定に応じて、同じ入力画像に対して少なくとも一つのパッキングされた画像を生成することができる。また、地域別パッキング過程の設定に応じて、同一の投影画像に対する少なくとも一つの符号化データを生成することができる。
タイリング(Tiling)過程を行って、パッキングされた画像を分割することができる。このとき、タイリングは、画像を複数の領域に分割、伝送する過程であって、前記360度画像伝送方式の一例であり得る。タイリングは、前述したように、ユーザの環境などを考慮して部分的な復号化(Partial Decoding)のための目的で行うことができ、360度画像の膨大なデータの効率的な処理のための目的で行うことができる。例えば、画像が一つの単位で構成される場合、関心領域に対する復号化のために画像の全てを復号化することができるが、画像が複数の単位領域で構成される場合、関心領域のみを復号化することが効率的である。このとき、前記分割は、既存の符号化方式による分割単位であるタイルに分割されるか、或いは本発明で説明する各種の分割単位(正方形の分割、ブロックなど)に分割されることにより行われ得る。また、前記分割単位は、独立的な符号化/復号化を行う単位であり得る。タイリングは、投影された画像又はパッキングされた画像に基づいて行われるか、或いは独立して行われ得る。すなわち、投影された画像の表面境界、パッキングされた画像の表面境界、パッキングの設定などに基づいて分割することができ、各分割単位ごとに独立して分割することができる。これはタイリング過程における分割情報の生成に影響を与えることができる。
次に、投影された画像又はパッキングされた画像を符号化することができる。符号化データと前処理過程で発生する情報を含めてビットストリームに収録し、これを360度画像復号化器に伝送することができる。前処理過程で発生する情報は、SEI又はメタデータの形式でビットストリームに収録されてもよい。このとき、ビットストリームには、符号化過程の一部の設定又は前処理過程の一部の設定を異ならせる少なくとも一つの符号化データと少なくとも一つの前処理情報を含めてビットストリームに収録することができる。これは、復号化器でユーザの環境に応じて複数の符号化データ(符号化データ+前処理情報)を混合して復号化画像を構成するための目的であり得る。詳細には、複数の符号化データを選択的に組み合わせて復号化画像を構成することができる。また、ステレオスコープシステムでの適用のために二つに分離して前記過程が行われてもよく、追加的な深さ画像に対して前記過程が行われてもよい。
図15は3次元画像を示す3次元空間及び2次元平面空間を示す例示図である。
一般に、360度の3次元仮想空間のためには、3DoF(Degree of Freedom)が必要であり、X(Pitch)、Y(Yaw)、Z(Roll)軸を中心に3つの回転を支援することができる。DoFは、空間での自由度を意味し、3DoFは、15aのようにX、Y、Z軸を中心とした回転を含む自由度を意味し、6DoFは、3DoFにX、Y、Z軸に沿った移動動きをさらに許容する自由度を意味する。本発明の画像符号化装置及び復号化装置は、3DoFに対する場合を中心に説明し、3DoF以上(3DoF+)を支援する場合、本発明で図示されていない追加の過程又は装置などと結合されるか或いは変更適用され得る。
15aを参照すると、Yawは-π(-180度)からπ(180度)までの範囲、Pitchは-π/2rad(又は-90度)からπ/2rad(又は90度)までの範囲、Rollは-π/2rad(又は-90度)からπ/2rad(又は90度)までの範囲を持つことができる。このとき、ψ、θは地球の地図表現での経度(Longitude)と緯度(Latitude)と仮定すると、3次元空間の(x、y、z)は2次元空間の(ψ、θ)から変換できる。例えば、x=cos(θ)cos(ψ)、y=sin(θ)、z=-cos(θ)sin(ψ)の変換式に基づいて3次元空間の座標が2次元空間座標から誘導できる。
また、(ψ、θ)は(x、y、z)に変換できる。例えば、ψ=tan-1(-Z/X)、θ=sin-1(Y/(X2+Y2+Z2)1/2)の変換式に基づいて3次元空間座標から2次元空間座標を誘導することができる。
3次元空間の画素が2次元空間に正確に変換される場合(例えば、2次元空間の整数単位画素)には、3次元空間の画素が2次元空間の画素にマッピングできる。3次元空間の画素が2次元空間に正確に変換されない場合(例えば、2次元空間の少数単位画素)には、補間(Interpolation)を行って取得された画素に2次元画素をマッピングすることができる。このとき、使用される補間は、Nearest neighbor補間法、Bi-linear補間法、B-spline補間法、Bi-cubic補間法などが使用できる。このとき、複数の補間候補の中からいずれかを選択して、関連情報が明示的に生成できるか、或いは所定の規則に基づいて暗示的に補間方法が決定できる。例えば、3次元モデル、投影フォーマット、カラーフォーマット、スライス/タイルタイプなどに応じて所定の補間フィルタを使用することができる。また、明示的に補間情報を生成する場合、フィルタ情報(例えば、フィルタ係数など)についての情報も含まれ得る。
15bは3次元空間から2次元空間(2次元平面座標系)に変換された例を示す。(ψ、θ)は画像のサイズ(横幅、縦幅)に基づいてサンプリング(i、j)でき、iは0からP_Width-1の範囲、jは0からP_Height-1の範囲を持つことができる。
(ψ、θ)は投影された画像の中心に360度画像の配置のための中央点{又は基準点、図15のCで表記された点、座標は(ψ、θ)=(0、0)}であり得る。中央点に対する設定は3次元空間で指定することができ、中央点に対する位置情報は明示的に生成するか或いは暗示的に既に設定された値に定めることができる。例えば、Yawにおける中央位置情報、Pitchにおける中央位置情報、Rollにおける中央位置情報などを生成することができる。前記情報に対する値が特に明示されない場合には、各値を0と仮定することができる。
上記の例では、360度画像の全体を3次元空間から2次元空間に変換する例を説明したが、360度画像の一部領域を対象とすることができ、一部領域に対する位置情報(例えば、領域に属する一部の位置。本例において、中央点に対する位置情報)、範囲情報などを明示的に生成するか、暗示的に既に設定された位置、範囲情報に従うことができる。例えば、Yawにおける中央位置情報、Pitchにおける中央位置情報、Rollにおおける中央位置情報、Yawにおける範囲情報、Pitchにおける範囲情報、Rollにおける範囲情報などを生成することができ、一部領域の場合は少なくとも一つの領域であり、これにより複数の領域の位置情報、範囲情報などが処理できる。前記情報に対する値が特に明示されていない場合には、360度画像全体と仮定することができる。
15aにおけるH0乃至H6とW0乃至W5は、それぞれ15bにおける一部の緯度と経度を示しており、15bの座標としては(C、j)、(i、C)で表現することができる(Cは経度又は緯度成分)。一般な画像とは異なり、360度画像は、2次元空間に転換される場合には、歪みが発生したり画像内のコンテンツの反りなどが発生したりすることができる。これは、画像の領域に応じて異なり、前記画像の位置又は前記位置に応じて区画される領域に符号化/復号化の設定を異ならせておくことができる。本発明における符号化/復号化情報に基づいて符号化/復号化の設定を適応的に置く場合、前記位置情報(例えば、x、y成分、又はxとyで定義される範囲など)が符号化/復号化情報の一例として含まれ得る。
前記3次元と2次元空間での説明は、本発明における実施形態の説明を助けるために定義された内容であり、これに限定されず、詳細内容の変形又は他の場合の適用が可能である。
前述したように、360度のカメラで取得された画像は、2次元空間に変換できる。このとき、3次元モデルを用いて360度画像をマッピングさせることができ、球、立方体(Cube)、円柱(Cylinder)、ピラミッド(Pyramid)、多面体(Polyhedron)などの様々な3次元モデルが使用できる。前記モデルに基づいてマッピングされた360度画像を2次元空間に変換するとき、前記モデルに基づいた投影フォーマット(Projection Format)による投影過程を行うことができる。
図16a乃至図16dは本発明の一実施形態に係る投影フォーマットを説明するための概念図である。
図16aは360度画像を2次元平面に投影させたERP(Equi-Rectangular Projection)フォーマットを示す。図16bは360度画像を立方体に投影させた(CMP CubeMap Projection)フォーマットを示す。図16cは360度画像を八面体に投影させたOHP(OctaHedron Projection)フォーマットを示す。図16dは360度画像を多面体に投影させたISP(IcoSahedral Projection)フォーマットを示す。ただし、これに限定されず、様々な投影フォーマットが使用できる。図16a乃至図16dの左側は3次元モデルを示し、右側は投影過程を介して2次元空間に変換された例を示す。投影フォーマットに応じて様々なサイズ、形状を有し、各形状は面又は表面(Face)で構成でき、表面は円形、三角形、四角形などで表現できる。
本発明において、投影フォーマットは、3次元モデル、表面の設定(例えば、表面の個数、表面の形態、表面の形態構成など)、投影過程の設定などによって定義できる。前記定義のうちの少なくとも一つの要素が異なる場合は、別の投影フォーマットとしてみなすことができる。例えば、ERPの場合、球モデル(3次元モデル)、一つの表面(表面の個数)、四角形の表面(表面の模様)で構成されているが、投影過程における設定の一部(例えば、3次元空間から2次元空間に変換するときに使用される数式など。すなわち、残りの投影設定は同一であり、投影過程で投影画像の少なくとも一つの画素の差を作る要素)が異なる場合、ERP1、EPR2などの別のフォーマットに分類できる。別の例として、CMPの場合、立方体モデル、6つの表面、正方形の表面で構成されているが、投影過程における設定の一部(例えば、3次元空間から2次元に変換するときのサンプリング方法など)が異なる場合、CMP1、CMP2などの別のフォーマットに分類できる。
既に設定された一つの投影フォーマットではなく、複数の投影フォーマットを使用する場合には、明示的に投影フォーマット識別情報(又は投影フォーマット情報)を生成することができる。投影フォーマット識別情報はさまざまな方法で構成できる。
一例として、複数の投影フォーマットにインデックス情報(例えば、proj_format_flag)を割り当てて投影フォーマットを識別することができる。例えば、ERPには0番、CMPには1番、OHPには2番、ISPには3番、ERP1には4番、CMP1には5番、OHP1には6番、ISP1には7番、CMP compactには8番、OHP compactには9番、ISP compactには10番、その他のフォーマットには11番以上を割り当てることができる。
一例として、投影フォーマットを構成する少なくとも一つの要素情報から投影フォーマットを識別することができる。このとき、投影フォーマットを構成する要素情報としては、3次元モデル情報(例えば、3d_model_flag。0番は球、1番は立方体、2番は円柱、3番はピラミッド、4番は多面体1、5番は多面体2など)、表面の個数情報(例えば、num_face_flag。1から始まって1ずつ増加する方式、又は投影フォーマットで発生する表面の個数をインデックス情報として割り当てて0番は1つ、1番は3つ、2番は6つ、3番は8つ、4番は20個など)、表面の形態情報(例えば、shape_face_flag。0番は四角形、1番は円形、2番は三角形、3番は四角形+円形、4番は四角形+三角形など)、投影過程設定情報(例えば、3d_2d_convert_idxなど)などが含まれ得る。
一例として、投影フォーマットインデックス情報と投影フォーマットを構成する要素情報で投影フォーマットを識別することができる。例えば、投影フォーマットインデックス情報は、ERPには0番、CMPには1番、OHPには2番、ISPには3番、その他のフォーマットには4番以上を割り当てることができ、投影フォーマットを構成する要素情報(本例において、投影過程設定情報)と一緒に投影フォーマット(例えば、ERP、ERP1、CMP、CMP1、OHP、OHP1、ISP、ISP1など)を識別することができる。又は、投影フォーマットを構成する要素情報(本例において、地域別パッキングか否か)と一緒に投影フォーマット(例えば、ERP、CMP、CMP compact、OHP、OHP compact、ISP、ISP compactなど)を識別することができる。
まとめると、投影フォーマットは、投影フォーマットインデックス情報で識別することができ、少なくとも一つの投影フォーマット要素情報で識別することができ、投影フォーマットインデックス情報と少なくとも一つの投影フォーマット要素情報で識別することができる。これは、符号化/復号化の設定に応じて定義でき、本発明では、投影フォーマットインデックスで識別される場合を仮定して説明する。また、本例では、同じ大きさと形状を有する表面で表現される投影フォーマットに対する場合を中心に説明するが、各表面のサイズ及び形状が同一でない構成も可能である。また、各表面の構成は、図16a乃至図16dと同じでも異なってもよく、各表面の数字は、各表面を識別する記号として使用されており、特定の順序に限定されない。説明の便宜のために、後述する例において、投影画像を基準に、ERPは一つの表面+四角形、CMPは6つの表面+四角形、OHPは8つの表面+三角形、ISPは20個の表面+三角形の投影フォーマットであり、表面が同じサイズ及び形状を有する場合を仮定して説明するが、他の設定にも同じか類似の適用が可能である。
図16a乃至図16dのように、投影フォーマットは一つの表面(例えば、ERP)又は複数の表面(例えば、CMP、OHP、ISPなど)に区分できる。また、各表面が四角形と三角形などの形状に区分できる。前記区分は、投影フォーマットによる符号化/復号化の設定とは異ならせる場合に適用できる、本発明における画像の種類、特性などの一例であり得る。例えば、画像の種類は360度画像、画像の特性は前記区分(例えば、各投影フォーマット、一つの表面又は複数の表面である投影フォーマット、表面が四角形又は四角形でない投影フォーマットなど)のいずれかであり得る。
2次元平面座標系{例えば、(i、j)}は、2次元投影画像の各表面に定義でき、座標系の特性は、投影フォーマット、各表面の位置などに応じて異なり得る。ERPのような場合、一つの2次元平面座標系、その他の投影フォーマットは表面の個数に応じて複数の2次元平面座標系を持つことができる。このとき、座標系は(k、i、j)で表現できるが、kは各表面のインデックス情報であり得る。
図17は本発明の一実施形態に係る投影フォーマットが長方形の画像内に含まれることを実現した概念図である。
すなわち、17a乃至17cは図16b乃至図16dの投影フォーマットを長方形の画像として実現したものと理解できる。
17a乃至17cを参照すると、360度画像の符号化/復号化のために、各画像フォーマットを長方形の形状に構成することができる。ERPの場合、一つの座標系でそのまま使用することができるが、別の投影フォーマットの場合、各表面の座標系を一つの座標系に統合することができ、これについての詳細な説明は省略する。
17a乃至17cを参照すると、長方形の画像を構成する過程で、空白や背景などのように無意味なデータで充填される領域が発生することを確認することができる。すなわち、実際のデータを含む領域(本例において、表面。Active Area)と長方形の画像を構成するために充填された無意味な領域(本例において、任意の画素値で充填されると仮定。Inactive Area)で構成できる。これは、実際の画像データの符号化/復号化だけでなく、前記無意味な領域による画像のサイズ増加に起因する符号化データ量の増加により性能が低下するおそれがある。
したがって、無意味な領域を排除し、実際のデータを含む領域で画像を構成するための過程がさらに行われ得る。
図18は本発明の一実施形態に係る投影フォーマットを長方形の形状に変換する方法であって、無意味な領域を排除するように表面を再配置する方法についての概念図である。
18a乃至18cを参照すると、17a乃至17cを再配置した一例示を確認することができ、このような過程を地域別パッキング過程(CMP compact、OHP compact、ISP compactなど)として定義することができる。このとき、表面自体の再配置だけでなく、表面が分割されて再配置(OHP compact、ISP compactなど)されることも可能である。これは、無意味な領域を除去するだけでなく、表面の効率的な配置を介して符号化性能を向上させる目的で行われ得る。例えば、表面間で画像が連続性を持つ配置(例えば、18aにおけるB2-B3-B1、B5-B0-B4など)をする場合、符号化時の予測精度が向上することにより、符号化性能が向上し得る。ここで、投影フォーマットによる地域別パッキングは、本発明における一例に過ぎず、これに限定されない。
図19は本発明の一実施形態に係るCMP投影フォーマットを長方形の画像にして地域別パッキング過程を行うことを示す概念図である。
19a乃至19cを参照すると、CMP投影フォーマットを6×1、3×2、2×3、1×6のように配置することができる。また、一部の表面にサイズ調整が行われると、19d乃至19eのように配置することができる。19a乃至19eではCMPを例として挙げたが、CMPに限定されず、別の投影フォーマットへの適用が可能である。前記地域別パッキングを介して取得される画像の表面配置は、投影フォーマットによる所定の規則に従うか、或いは明示的に配置に関する情報を生成することができる。
本発明の一実施形態に係る360度画像符号化/復号化装置は、図1及び図2による画像符号化/復号化装置の全部又は一部を含んで構成でき、特に、投影フォーマットを変換及び逆変換するフォーマット変換部及びフォーマット逆変換部がそれぞれ画像符号化装置と画像復号化装置にさらに含まれ得る。すなわち、図1の画像符号化装置で入力画像に対してフォーマット変換部を経て符号化でき、図2の画像復号化装置でビットストリームが復号化された後にフォーマット逆変換部を経て出力画像が生成できる。以下では、前記過程に対する符号化器(本例において、「入力画像」~「符号化」)を中心に説明し、復号化器での過程は符号化器から逆に誘導することができる。また、前述した内容と重複する説明は省略する。
次に、入力画像は、前述した360度符号化装置で前処理過程を行って取得された2次元投影画像又はパッキング画像と同一の画像と前提として説明する。すなわち、入力画像は、一部の投影フォーマットによる投影過程又は地域別パッキング過程を行って取得された画像であり得る。入力画像に既に適用された投影フォーマットは、様々な投影フォーマットのいずれかであり、共通フォーマットとしてみなされることもあり、第1フォーマットと呼ばれることもある。
フォーマット変換部は、第1フォーマット以外の他の投影フォーマットへの変換を行うことができる。このとき、変換を行おうとするフォーマットを第2フォーマットと呼ぶことができる。例えば、ERPを第1フォーマットとして設定し、第2フォーマット(例えば、ERP2、CMP、OHP、ISPなど)へ変換することができる。このとき、ERP2は、同じ3次元モデル、表面の構成などの条件を持つが、一部の設定が異なるEPRフォーマットであり得る。又は、投影フォーマットの設定が同じである同一のフォーマット(例えば、ERP=ERP2)であってもよく、画像のサイズ又は解像度が異なる場合もある。又は、後述する画像設定過程の一部が適用される場合もある。説明の便宜のために、上述したような例を挙げたが、第1フォーマット、第2フォーマットは様々な投影フォーマットの一つであり、上記の例に限定されず、他の場合への変更も可能である。
フォーマット間の変換過程で投影フォーマット間の異なる座標系の特性により、変換後の画像の画素(整数画素)は、変換前の画像での整数単位画素だけでなく、少数単位画素から取得される場合が発生するため、補間を行うことができる。このとき、使用される補間フィルタは、前述したのと同じか類似のフィルタを使用することができる。補間フィルタは、複数の補間フィルタ候補の中からいずれかを選択し、関連情報が明示的に生成できるか、或いは既に設定された規則によって暗示的に決定できる。例えば、投影フォーマット、カラーフォーマット、スライス/タイルタイプなどに応じて所定の補間フィルタを使用することができる。また、明示的に補間フィルタを送る場合、フィルタ情報(例えば、フィルタ係数など)についての情報も含まれ得る。
フォーマット変換部における投影フォーマットは地域別パッキングなどが含まれて定義されてもよい。つまり、フォーマット変換過程に投影、地域別パッキング過程が行われ得る。又は、フォーマット変換の後、符号化を行う前に、地域別パッキングなどの過程が行われ得る。
符号化器では、上記の過程に発生する情報をシーケンス、ピクチャ、スライス、タイルなどの単位のうちの少なくとも一つの単位でビットストリームに収録し、復号化器では関連情報をビットストリームからパーシングする。また、SEI又はメタデータの形式でビットストリームに含まれ得る。
次に、本発明の一実施形態に係る360度画像符号化/復号化装置に適用される画像設定過程について説明する。本発明での画像設定過程は、一般な符号化/復号化過程だけでなく、360度画像符号化/復号化装置における前処理過程、後処理過程、フォーマット変換過程、フォーマット逆変換過程などに適用できる。後述する画像設定過程は、360度画像符号化装置を中心に説明し、前述した画像設定での内容を含めて説明できる。前述した画像設定過程での重複説明は省略する。また、後述する例は画像設定過程を中心に説明し、画像設定逆過程は画像設定過程から逆に誘導でき、一部の場合は前述した本発明の様々な実施形態を介して確認できる。
本発明における画像設定過程は、360度画像の投影段階で行われてもよく、地域別パッキング段階で行われてもよく、フォーマット変換段階で行われてもよく、その他の段階で行われてもよい。
図20は本発明の一実施形態に係る360度画像分割に対する概念図である。図20では、ERPで投影された画像の場合を仮定して説明する。
20aはERPで投影された画像を示し、さまざまな方法を用いて分割を行うことができる。本例ではスライス、タイルを中心に説明し、W0~W2とH0、H1はスライス又はタイルの分割境界線と仮定し、ラスタースキャン順序に従うと仮定する。後述する例は、スライスとタイルを中心に説明するが、これに限定されず、他の分割方法が適用できる。
例えば、スライス単位で分割を行うことができ、H0、H1の分割境界を持つことができる。又は、タイル単位で分割を行うことができ、W0~W2とH0、H1の分割境界を持つことができる。
20bはERPで投影された画像をタイルに分割した例{図20aと同じタイル分割境界(W0~W2、H0、H1が全て活性化)を持つと仮定}を示す。P領域は全体画像であり、V領域はユーザの視線が留まる領域又はビューポートであると仮定するとき、ビューポートに該当する画像を提供するためには様々な方法が存在できる。例えば、全体画像(例えば、タイルa~l)の復号化を行い、ビューポートに該当する領域を取得することができる。このとき、全体画像を復号化することができ、分割されている場合、タイルa~l(本例において、A+B領域)を復号化することができる。又は、ビューポートに属する領域の復号化を行うことにより、ビューポートに該当する領域を取得することができる。このとき、分割されている場合、タイルf、g、j、k(本例において、B領域)を復号化することにより、復元された画像からビューポートに該当する領域を取得することができる。前者の場合は全体復号化(又はViewport Independent Coding)と呼び、後者の場合は部分復号化(又はViewport Dependent Coding)と呼ぶことができる。後者の場合は、データ量の多い360度画像で発生可能な例であり、柔軟に分割領域を取得することができるということから、スライス単位の分割よりもタイル単位の分割方法がよく使用できる。部分復号化の場合、ビューポートがどこから発生するか分かることができないため、分割単位の参照可能性が空間的又は時間的に制限(本例において、暗示的に処理)でき、これを考慮する符号化/復号化が行われ得る。後述する例は、全体復号化の場合を中心に説明するが、部分復号化の場合に備えるための目的でタイル(または本発明の四角形の分割方法)を中心に360度画像の分割について説明する。後述する例の内容は他の分割単位に同様に或いは変更されて適用できる。
図21は本発明の実施形態に係る360度画像分割と画像再構成の例示図である。図21では、CMPで投影された画像の場合を仮定して説明する。
21aはCMPで投影された画像を示し、さまざまな方法を用いて分割を行うことができる。W0~W2とH0、H1は、表面、スライス、タイルの分割境界線と仮定し、ラスタースキャン順序に従うと仮定する。
例えば、スライス単位で分割を行うことができ、H0、H1の分割境界を持つことができる。又は、タイル単位で分割を行うことができ、W0~W2とH0、H1の分割境界を持つことができる。又は、表面単位で分割を行うことができ、W0~W2とH0、H1の分割境界を持つことができる。本例において、表面は分割単位の一部と仮定して説明する。
このとき、表面は、画像の特性、種類(本例において、360度画像、投影フォーマット)などに応じて同一画像内の異なる性質(例えば、各表面の平面座標系など)を有する領域を分類又は区分しようとする目的で行われた分割単位(本例において、依存的な符号化/復号化)であり、スライス、タイルは、ユーザの定義に応じて画像を分割しようとする目的で行われた分割単位(本例において、独立的な符号化/復号化)であり得る。また、表面は投影フォーマットによる投影過程で所定の定義(又は投影フォーマット情報から誘導)によって分割された単位であり、スライス、タイルはユーザの定義に応じて明示的に分割情報を生成し、分割された単位であり得る。また、表面は、投影フォーマットに応じて四角形を含む多角形の形状に分割形状を持つことができ、スライスは、四角形又は多角形に定義することができない任意の分割形状を持つことができ、タイルは、正方形の分割形状を持つことができる。前記分割単位の設定は、本例の説明のために限定されて定義された内容であり得る。
上記の例において、表面は、領域区分のための目的で分類された分割単位と説明したが、符号化/復号化の設定に応じて、少なくとも一つの表面単位で独立的な符号化/復号化を行う単位であるか、或いはタイル、スライスなどと結合して独立的な符号化/復号化を行う設定を持つことができる。このとき、タイル、スライスなどとの結合においてタイル、スライスの明示的な情報が生成される場合が発生することができるか、或いは表面情報に基づいてタイル、スライスが結合される暗示的な場合が発生することができる。又は、表面情報に基づいてタイル、スライスの明示的な情報が生成される場合が発生することがある。
第1例示として、一つの画像分割過程(本例において、表面)が行われ、画像分割は暗示的に分割情報(投影フォーマット情報から分割情報を取得)を省略することができる。本例は、依存的な符号化/復号化の設定に対する例であって、表面単位間の参照可能性は制限されない場合に該当する例であり得る。
第2例示として、一つの画像分割過程(本例において、表面)が行われ、画像分割は明示的に分割情報を生成することができる。本例は、依存的な符号化/復号化の設定に対する例であって、表面単位間の参照可能性は制限されない場合に該当する例であり得る。
第3例示として、複数の画像分割過程(本例において、表面、タイル)が行われ、一部の画像分割(本例において、表面)は、分割情報を暗示的に省略するか或いは明示的に生成することができ、一部の画像分割(本例において、タイル)は明示的に分割情報を生成することができる。本例は、一部の画像分割過程(本例において、表面)が一部の画像分割過程(本例において、タイル)に先行する。
第4例示として、複数の画像分割過程が行われ、一部の画像分割(本例において、表面)は分割情報を暗示的に省略するか或いは明示的に生成することができ、一部の画像分割(本例において、タイル)は一部の画像分割(本例において、表面)に基づいて明示的に分割情報を生成することができる。本例は、一部の画像分割過程(本例において、表面)が一部の画像分割過程(本例において、タイル)に先行する。本例は、一部の場合{第2例の場合と仮定}に分割情報が明示的に生成されることは同一であるが、分割情報構成の違いが存在し得る。
第5例示として、複数の画像分割処理が行われ、一部の画像分割(本例において、表面)は暗示的に分割情報を省略することができ、一部の画像分割(本例において、タイル)は一部の画像分割(本例において、表面)に基づいて暗示的に分割情報を省略することができる。例えば、個別表面単位がタイル単位で設定可能であるか、或いは複数の表面単位(本例において、隣接した表面が連続的な表面である場合にはグループ化され、そうでない場合にはグループ化されない。18aにおけるB2-B3-B1とB4-B0-B5)がタイル単位で設定可能である。既に設定された規則によって、表面単位のタイル単位への設定が可能である。本例は、独立的な符号化/復号化の設定に対する例であって、表面単位間の参照可能性は制限される場合に該当する例であり得る。すなわち、一部の場合{第1例示の場合と仮定}に分割情報が暗示的に処理されることは同一であるが、符号化/復号化の設定の違いが存在し得る。
上記例は、投影段階、地域別パッキング段階、符号化/復号化初期段階などで分割過程が行われ得る場合についての説明であり、これ以外の符号化/復号化器内で発生する画像分割過程であり得る。
21aにおける、データを含む領域Aに、データを含んでいない領域Bを含むことにより、長方形の画像を構成することができる。このとき、AとB領域の位置、大きさ、形状、個数などは、投影フォーマットなどによって確認することができる情報であるか、或いは投影された画像に対する情報を明示的に生成する場合に確認することができる情報であり、前述した画像分割情報、画像再構成情報などで関連情報を示すことができる。例えば、表4、表5に示すように投影された画像の一部領域に対する情報(例えば、part_top、part_left、part_width、part_height、part_convert_flagなど)を示すことができ、本例に限定されず、他の場合(例えば、他の投影フォーマット、他の投影設定など)に適用可能な例であり得る。
B領域をA領域と一緒に一つの画像に構成して符号化/復号化を行うことができる。又は、領域別の特性を考慮して分割を行うことにより、異なる符号化/復号化の設定を置くことができる。例えば、符号化/復号化を行うかどうかについての情報(例えば、分割単位がタイルと仮定する場合、tile_coded_flag)を介してB領域に対する符号化/復号化を行わなくてもよい。このとき、該当領域は、既に設定された規則によって、一定のデータ(本例において、任意の画素値)に復元できる。又は、前述した画像分割過程での符号化/復号化の設定をB領域はA領域とは異なるようにすることができる。又は、地域別パッキング過程を行って該当領域を除去することができる。
21bはCMPでパッキングされた画像をタイル、スライス、表面に分割した例を示す。この時、パッキングされた画像は、表面の再配置過程又は地域別パッキング過程が行われた画像であり、本発明の画像分割、画像再構成を行って取得された画像であり得る。
21bにおいてデータを含む領域を含んで長方形の形状を構成することができる。このとき、各領域の位置、大きさ、形状、個数などは、既に設定された設定により確認することができる情報であるか、或いはパッキングされた画像に対する情報を明示的に生成する場合に確認することができる情報であり、前述した画像分割情報、画像再構成情報などで関連情報を示すことができる。例えば、表4、表5に示すようにパッキングされた画像の一部領域に対する情報(例えば、part_top、part_left、part_width、part_height、part_convert_flagなど)を示すことができる。
パッキングされた画像は、様々な分割方法を用いて分割を行うことができる。例えば、スライス単位で分割を行うことができ、H0の分割境界を持つことができる。又は、タイル単位で分割を行うことができ、W0、W1とH0の分割境界を持つことができる。又は、表面単位で分割を行うことができ、W0、W1とH0の分割境界を持つことができる。
本発明の画像分割、画像再構成過程は、投影された画像に対して行われ得る。このとき、再構成過程は、表面内の画素だけでなく、画像内の表面を再配置することができる。これは、画像が複数の表面に分割又は構成される場合に可能な例であり得る。後述する例は、表面単位に基づいてタイルに分割される場合を中心に説明する。
21aのSX,Y(S0,0~S3,2)は21bのS’U,V(S’0,0~S’2,1。本例において、X,YはU,Vと同じでも異なってもよい。)と対応することができ、表面単位に再構成過程が行われ得る。例えば、S2,1、S3,1、S0,1、S1,2、S1,1、S1,0はS’0,0、S’1,0、S’2,0、S’0,1、S’1,1、S’2,1に割り当て(又は表面再配置)られ得る。また、S2,1、S3,1、S0,1は再構成(又は画素再配置)を行わず、S1,2、S1,1、S1,0は90度回転を適用して再構成を行うことができ、これを図21cのように示すことができる。21cにおいて横に表示された記号(S1,0、S1,1、S1,2)は、画像の連続性を維持するために記号に合わせて横に寝かせた画像であり得る。
表面の再構成は、符号化/復号化の設定に応じて暗示的又は明示的な処理をすることができる。暗示的な場合は、画像の種類(本例において、360度画像)、特性(本例において、投影フォーマットなど)を考慮して、既に設定された規則によって行われ得る。
例えば、21cにおけるS’0,0とS’1,0、S’1,0とS’2,0、S’0,1とS’1,1、S’1,1とS’2,1は表面の境界を基準に両表面間の画像連続性(又は相関性)が存在し、21cは上側の3つの表面と下側の3つの表面間には連続性が存在するように構成された例であり得る。3次元空間から2次元空間への投影過程を介して複数の表面に分けられ、これを地域別パッキング過程を経る過程で効率的な表面の再構成のために表面間の画像連続性を高めるための目的で再構成が行われ得る。このような表面の再構成は既に設定されて処理できる。
又は、明示的な処理によって再構成過程を行い、これについての再構成情報を生成することができる。
例えば、地域別パッキング過程を介してM×Nの構成(例えば、CMP compactの場合、6×1、3×2、2×3、1×6など。本例において、3×2の構成と仮定)に対する情報(例えば、暗示的に取得される情報又は明示的に生成される情報のいずれか)を確認する場合は、M×Nの構成に合わせて表面の再構成を行った後、それに対する情報を生成することができる。例えば、表面の画像内再配置の場合は各表面にインデックス情報(又は画像内の位置情報)を割り当て、表面内の画素再配置の場合は再構成に対するモード情報を割り当てることができる。
インデックス情報は、図18の18a乃至18cのように既に定義でき、21a乃至21cにおけるSX,Y又はS’U,Vは、各表面を、横、縦を示した位置情報(例えば、S[i][j])又は一つの位置情報(例えば、位置情報は画像の左上側表面からラスタースキャン順序で割り当てられるという仮定。S[i])で表現することができ、これに各表面のインデックスを割り当てることができる。
例えば、横、縦を示した位置情報にインデックスを割り当てるとき、図21cの場合、S’0,0は2番の表面、S’1,0は3番の表面、S’2,0は1番の表面、S’0,1は5番の表面、S’1,1は0番の表面、S’2,1は4番の表面のインデックスを割り当てることができる。又は、一つの位置情報にインデックスを割り当てるとき、S[0]は2番の表面、S[1]は3番の表面、S[2]は1番の表面、S[3]は5番の表面、S[4]は0番の表面、S[5]は4番の表面のインデックスを割り当てることができる。説明の便宜のために、後述する例において、S’0,0~S’2,1はa乃至fと称する。又は、画像の左上側を基準に画素又はブロック単位の横、縦を示した位置情報で表現することもできる。
画像の再構成過程(又は地域別パッキング過程)を介して取得された、パッキングされた画像の場合、再構成設定に応じて、表面のスキャン順序が画像で同一でも同一でなくてもよい。例えば、21aに一つのスキャン順序(例えば、ラスタースキャン)が適用される場合、a、b、cのスキャン順序は同一でもよく、d、e、fのスキャン順序は同一でなくてもよい。例えば、21a、a、b、cの場合、スキャン順序は(0、0)→(1、0)→(0、1)→(1、1)の順序に従うとき、d、e、fの場合、スキャン順序は(1、0)→(1、1)→(0、0)→(0、1)の順序に従うことができる。これは画像の再構成設定に応じて決定でき、別の投影フォーマットにもこのような設定を持つことができる。
21bにおける画像分割過程は、個別表面単位をタイルに設定することができる。例えば、表面a~fはそれぞれタイル単位で設定できる。又は、複数の表面の単位をタイルに設定することができる。例えば、表面a~cは一つのタイル、d~fは一つのタイルに設定できる。前記構成は、表面特性(例えば、表面間の連続性など)に基づいて決定でき、上記の例とは異なる表面のタイル設定が可能である。
次に、複数の画像分割過程による分割情報についての例を示す。本例では、表面に対する分割情報は省略され、表面以外の単位はタイル、分割情報は様々に処理される場合を仮定して説明する。
第1例示として、画像分割情報は、表面情報に基づいて取得されて暗示的に省略できる。例えば、個別表面がタイルに設定されるか、或いは複数の表面がタイルに設定され得る。このとき、少なくとも一つの表面がタイルに設定される場合は、表面情報(例えば、連続性又は相関性など)に基づいて所定の規則によって決定できる。
第2例示として、画像分割情報は、表面情報とは関係なく明示的に生成することができる。例えば、タイルの横列の数(本例において、num_tile_columns)と縦列の数(本例においてnum_tile_rows)で分割情報を生成する場合、前述した画像分割過程における方法で分割情報を生成することができる。例えば、タイルの横列の数と縦列の数が持つことが可能な範囲は、0から画像の横幅/ブロックの横幅(本例において、ピクチャ分割部から取得される単位)まで、0から画像の縦幅/ブロックの縦幅までであり得る。また、追加的な分割情報(例えば、uniform_spacing_flagなど)が生成できる。このとき、前記分割設定に応じて、表面の境界と分割単位の境界とが一致するか或いは一致しない場合が発生することもある。
第3例示として、画像分割情報は、表面情報に基づいて明示的に生成することができる。例えば、タイルの横列の数と縦列の数で分割情報を生成する場合、表面情報(本例では、横列の数が持つ範囲は0~2、縦列の数が持つ範囲は0、1。画像内表面の構成が3x2なので)に基づいて分割情報を生成することができる。例えば、タイルの横列の数と縦列の数が持つことが可能な範囲は、0から2まで、0から1までであり得る。また、追加的な分割情報(例えば、uniform_spacing_flagなど)が生成されなくてもよい。このとき、表面の境界と分割単位の境界とが一致することができる。
一部の場合{第2例示と第3例示の場合と仮定}に分割情報の構文要素が異なるように定義されるか、或いは同一の構文要素を使用しても、構文要素の設定(例えば、二値化設定など。構文要素が持つ候補群の範囲が限定され且つ少ない範囲の場合、他の二値化を使用することができるなど)を異ならせることができる。上記の例は、分割情報の様々な構成のうちの一部分について説明をしたが、これに限定されるものではなく、表面情報に基づいて分割情報が生成されるかどうかに応じて異なる設定が可能な例として理解できる。
図22はCMPで投影された画像又はパッキングされた画像をタイルに分割した例示図である。
この時、図21の21aと同じタイル分割境界(W0~W2、H0、H1がすべて活性化)を持つと仮定し、図21の21bと同じタイル分割境界(W0、W1、H0がすべて活性化)を持つと仮定する。P領域は全体画像、V領域はビューポートと仮定するとき、全体復号化又は部分復号化を行うことができる。本例は部分復号化を中心に説明する。22aにおいて、CMP(左)の場合にはタイルe、f、gを復号化し、CMP compact(右)の場合にはタイルa、c、eを復号化することにより、ビューポートに該当する領域を取得することができる。22bにおいて、CMPの場合にはタイルb、f、iを復号化し、CMP compactの場合にはタイルd、e、fを復号化することにより、ビューポートに該当する領域を取得することができる。
上記例では、表面単位(又は表面境界)に基づいてスライス、タイルなどの分割を行う場合を説明したが、図20の20aのように、表面の内部(例えば、ERPは画像が一つの表面で構成。別の投影フォーマットは複数の表面で構成)で分割を行う場合、又は表面の境界を含んで分割を行う場合も可能である。
図23は本発明の一実施形態に係る360度画像のサイズ調整の例を説明するための概念図である。このとき、ERPで投影された画像の場合を仮定して説明する。また、後述する例では、拡張の場合を中心に説明する。
投影された画像は、画像サイズ調整タイプに応じて、スケールファクタを用いたサイズ調整、オフセットファクタを用いたサイズ調整を行うことができ、サイズ調整前の画像はP_Width×P_Heightであり、サイズ調整後の画像はP’_Width×P’_Heightであり得る。
スケールファクタの場合、画像の横幅と縦幅に対するスケールファクタ(本例において、横a、縦b)を用いたサイズ調整の後、画像の横幅(P_Width×a)と縦幅(P_Height×b)を取得することができる。オフセットファクタの場合、画像の横幅と縦幅に対するオフセットファクタ(本例において、横L、R、縦T、B)を用いたサイズ調整の後、画像の横幅(P_Width+L+R)と縦幅(P_Height+T+B)を取得することができる。既に設定された方法を用いてサイズ調整を行うことができるか、或いは複数の方法の中からいずれかを選択してサイズ調整を行うことができる。
後述する例におけるデータ処理方法は、オフセットファクタの場合を中心に説明する。オフセットファクタの場合、データ処理方法では、所定の画素値を用いて充填する方法、外郭画素をコピーして充填する方法、画像の一部領域をコピーして充填する方法、画像の一部領域を変換して充填する方法などが存在し得る。
360度画像の場合、画像の境界に連続性が存在する特性を考慮してサイズ調整を行うことができる。ERPの場合、3次元空間では外郭の境界が存在しないが、投影過程を経て2次元空間に変換する場合、外郭境界領域が存在することができる。境界領域のデータは境界の外側に連続性のあるデータが存在するが、空間特性上、境界を持つことができる。このような特性を考慮してサイズ調整を行うことができる。このとき、連続性は投影フォーマットなどに応じて確認することができる。例えば、ERPの場合、両端の境界が互いに連続的な特性を持つ画像であり得る。本例では、画像の左、右境界が連続的な場合と、画像の上、下境界が連続的な場合を仮定して説明し、データ処理方法は、画像の一部領域をコピーして充填する方法、画像の一部領域を変換して充填する方法を中心に説明する。
画像の左側へサイズ調整を行う場合、サイズ調整される領域(本例において、LC又はTL+LC+BL)は、画像の左側との連続性がある画像の右側領域(本例において、tr+rc+br)のデータを用いて充填することができる。画像の右側へサイズ調整を行う場合、サイズ調整される領域(本例において、RC又はTR+RC+BR)は、右側との連続性がある画像の左側領域(本例において、tl+lc+bl)のデータを用いて充填することができる。画像の上側へサイズ調整を行う場合、サイズ調整される領域(本例において、TC又はTL+TC+TR)は、上側との連続性がある画像の下側領域(本例において、bl+bc+br)のデータを用いて充填することができる。画像の下側へサイズ調整を行う場合、サイズ調整される領域(本例において、BC又はBL+BC+BR)のデータを用いて充填することができる。
サイズ調整される領域のサイズ又は長さがmである場合、サイズ調整される領域は、サイズ調整前の画像の座標基準(本例において、xは0~P_Width-1)に(-m、y)~(-1、y)の範囲(左側へサイズ調整)又は(P_Width、y)~(P_Width+m-1、y)の範囲(右側へサイズ調整)を持つことができる。サイズ調整される領域のデータを取得するための領域の位置x’はx’=(x+P_Width)%P_Widthによる数式で導出できる。このとき、xはサイズ調整前の画像座標を基準にサイズ調整される領域の座標を意味し、x’はサイズ調整前の画像座標を基準にサイズ調整される領域に参照される領域の座標を意味する。例えば、左側にサイズ調整を行い、mが4で画像の横幅が16である場合、(-4、y)は(12、y)、(-3、y)は(13、y)、(-2、y)は(14、y)、(-1、y)は(15、y)から該当データを取得することができる。又は、右側にサイズ調整を行い、mが4で画像の横幅が16である場合、(16、y)は(0、y)、(17、y)は(1、y)、(18、y)は(2、y)、(19、y)は(3、y)から該当データを取得することができる。
サイズ調整される領域のサイズ又は長さがnである場合、サイズ調整される領域は、サイズ調整前の画像の座標を基準(本例において、yは0~P_Height-1)に(x、-n)~(x、-1)の範囲(上側へサイズ調整)又は(x、P_Height)~(x、P_Height+n-1)の範囲(下側へサイズ調整)を持つことができる。サイズ調整される領域のデータを取得するための領域の位置y’は、y’=(y+P_Height)%P_Heightのような数式で導出できる。このとき、yはサイズ調整前の画像座標を基準にサイズ調整される領域の座標を意味し、y’はサイズ調整前の画像座標を基準にサイズ調整される領域に参照される領域の座標を意味する。例えば、上側へサイズ調整を行い、nが4で画像の縦幅が16である場合、(x、-4)は(x、12)、(x、-3)は(x、13)、(x、-2)は(x、14)、(x、-1)は(x、15)からデータを取得することができる。又は、下側へサイズ調整を行い、nが4で画像の縦幅が16である場合、(x、16)は(x、0)、(x、17)は(x、1)、(x、18)は(x、2)、(x、19)は(x、3)からデータを取得することができる。
サイズ調整領域のデータを充填した後、サイズ調整後の画像座標を基準(本例において、xは0~P’_Width-1、yは0~P’_Height-1)に調整できる。上記の例は、緯度、経度の座標系に適用できる例であり得る。
次のさまざまなサイズ調整の組み合わせを持つことができる。
一例として、画像の左側へmだけサイズ調整が行われ得る。又は、画像の右側へnだけサイズ調整が行われ得る。又は、画像の上側へoだけサイズ調整が行われ得る。又は、画像の下側へpだけサイズ調整が行われ得る。
一例として、画像の左側へmだけ、右側へnだけサイズ調整が行われ得る。又は、画像の上側へoだけ、下側へpだけサイズ調整が行われ得る。
一例として、画像の左側へmだけ、右側へnだけ、上側へoだけサイズ調整が行われ得る。又は、画像の左側へmだけ、右側へnだけ、下側へpだけサイズ調整が行われ得る。又は、画像の左側へmだけ、上側へoだけ、下側へpだけサイズ調整が行われ得る。又は、画像の右側へnだけ、上側へoだけ、下側へpだけサイズ調整が行われ得る。
一例として、画像の左側へmだけ、右側へnだけ、上側へoだけ、下側へpだけサイズ調整が行われ得る。
上記例のように少なくとも一つのサイズ調整が行われ、符号化/復号化の設定に応じて暗示的に画像のサイズ調整が行われ得るか、或いは明示的にサイズ調整情報を生成し、それに基づいて画像のサイズ調整が行われ得る。すなわち、上記例のm、n、o、pは、所定の値に決定できるか、或いは明示的にサイズ調整情報として生成できるか、或いは一部は所定の値に決定され、一部は明示的に生成できる。
上記例は、画像の一部領域からデータを取得する場合を中心に説明したが、その他の方法も適用可能である。前記データは、符号化前の画素であるか或いは符号化後の画素であり、サイズ調整が行われる画像又は段階の特性に応じて決定できる。例えば、前処理過程、符号化前段階でサイズ調整を行うとき、前記データは投影画像、パッキング画像などの入力画素を意味し、後処理過程、画面内予測参照画素生成段階、参照画像生成段階、フィルタ段階などでサイズ調整を行うとき、前記データは復元画素を意味することができる。また、各サイズ調整される領域に個別にデータ処理方法を用いてサイズ調整を行うことができる。
図24は本発明の一実施形態に係る投影フォーマット(例えば、CMP、OHP、ISP)で表面間の連続性を説明するための概念図である。
詳細には、複数の表面からなる画像に対する例であり得る。連続性は3次元空間での隣接領域で発生する特性であり、図24a乃至図24cは投影過程を介して2次元空間に変換されたときに空間的に隣接し且つ連続性が存在する場合(A)、空間的に隣接し且つ連続性が存在しない場合(B)、空間的に隣接せず且つ連続性が存在する場合(C)、空間的に隣接せず且つ連続性が存在しない場合(D)に区分することができる。一般な画像は、空間的に隣接し且つ連続性が存在する場合(A)、空間的に隣接せず且つ連続性が存在しない場合(D)に区分されるのとは差異点が存在する。このとき、連続性が存在する場合は、前記一部の例(A又はC)が該当する。
すなわち、24a乃至24cを参照すると、空間的に隣接し且つ連続性が存在する場合(本例において、24aを基準に説明)がb0乃至b4のように表示され、空間的に隣接せず且つ連続性が存在する場合がB0な乃至B6のように表示され得る。すなわち、3次元空間で隣接した領域に対する場合を意味し、b0乃至b4とB0乃至B6が連続性を持つ特性を用いて符号化過程で使用することにより、符号化性能を向上させることができる。
図25はCMP投影フォーマットでの画像再構成過程又は地域別パッキング過程を介して取得された画像である図21cの表面の連続性を説明するための概念図である。
ここで、図21の21cは360度画像を立方体(cube)の形状に広げた21aを再配置したものなので、この時にも、図21の21aで持つ表面の連続性が維持される。すなわち、25aでの如く、表面S2,1は、左右にS1,1及びS3,1と互いに連続し、上下には90度回転したS1,0及び-90度回転したS1,2表面と互いに連続することができる。
同様の方法で、表面S3,1、表面S0,1、表面S1,2、表面S1,1、表面S1,0に対する連続性を25b乃至25fから確認することができる。
表面間の連続性は、投影フォーマット設定などに応じて定義でき、上記の例に限定されず、他の変形の例が可能である。後述する例は、図24、図25のような連続性が存在するという仮定の下で説明する。
図26は本発明の一実施形態に係るCMP投影フォーマットでの画像のサイズ調整を説明するための例示図である。
26aは画像のサイズ調整を行う例を示し、26bは表面単位(又は分割単位)でサイズ調整を行う例を示し、26cは画像と表面単位でサイズ調整(又は複数のサイズ調整)を行う例を示す。
投影された画像は、画像サイズ調整タイプに応じて、スケールファクタを用いたサイズ調整、オフセットファクタを用いたサイズ調整を行うことができ、サイズ調整前の画像はP_Width×P_Heightであり、サイズ調整後の画像はP’_Width×P’_Heightであり、表面のサイズはF_Width×F_Heightであり得る。表面によってサイズが同じでも異なってもよく、表面の横幅と縦幅は同じでも異なってもよいが、本例では、説明の便宜のために、画像内のすべての表面のサイズは同一であり、正方形の形状を持つという仮定の下で説明する。また、サイズ調整値(本例において、WX、HY)は同一であるという仮定の下で説明する。後述する例におけるデータ処理方法は、オフセットファクタの場合を中心に説明し、データ処理方法は、画像の一部領域をコピーして充填する方法、画像の一部領域を変換して充填する方法を中心に説明する。上記の設定は図27にも同様に適用できる。
26a乃至26cの場合、表面の境界(本例において、図24の24aによる連続性を持つと仮定)は、他の表面の境界との連続性を持つことができる。このとき、2次元平面で空間的に隣接し且つ画像の連続性が存在する場合(第1例示)と、2次元平面で空間的に隣接せず且つ画像の連続性が存在する場合(第2例示)に区分できる。
例えば、図24の24aの連続性を前提とすると、S1,1の上側、左側、右側、下側領域は、S1,0、S0,1、S2,1、S1,2の下側、右側、左側、上側領域と空間的に隣接するとともに、画像も連続的(第1例示の場合)であり得る。
又は、S1,0の左側領域と右側領域は、S0,1とS2,1の上側領域と空間的に隣接しないが、互いの画像が連続的(第2例示の場合)であり得る。また、S0,1の左側領域とS3,1の右側領域とが空間的に隣接しないが、互いの画像が連続的(第2例示の場合)であり得る。また、S1,2の左側領域と右側領域がS0,1とS2,1の下側領域と互いに連続的(第2例示の場合)であり得る。これは、本例で限定的な例であり、投影フォーマットの定義及び設定に応じて、上記とは異なる構成であり得る。説明の便宜のために、図26aのS0,0~S3,2はa~lと称する。
26aは画像の外側境界方向に連続性が存在する領域のデータを用いて充填する例であり得る。データが存在しないA領域からサイズ調整される領域(本例において、a0~a2、c0、d0~d2、i0~i2、k0、l0~l2)は、所定の任意の値又は外郭画素パディングを介して充填することができ、実際のデータを含むB領域からサイズ調整される領域(本例において、b0、e0、h0、j0)は、画像の連続性が存在する領域(又は表面)のデータを用いて充填することができる。例えば、b0は表面hの上側、e0は表面hの右側、h0は表面eの左側、j0は表面hの下側のデータを用いて充填することができる。
詳細には、b0は表面hに180度回転を適用して得られた表面の下側データを用いて充填する例であり、j0は表面hに180度回転を適用して得られた表面の上側データを用いて充填する例であり得るが、本例(又は後述する例を含む)において、参照される表面の位置だけを示し、サイズ調整される領域に取得されるデータは、図24、図25に示すように、表面間の連続性を考慮した調整過程(例えば、回転など)を経た後に取得できる。
26bは画像の内部境界方向に連続性が存在する領域のデータを用いて充填する例であり得る。本例では、表面に沿って行われるサイズ調整動作が異なり得る。A領域は縮小過程、B領域は拡張過程を行うことができる。例えば、表面aの場合は、右側へw0だけサイズ調整(本例において、縮小)が行われ、表面bの場合は、左側へw0だけサイズ調整(本例において、拡張)が行われ得る。又は、表面aの場合は、下側へh0だけサイズ調整(本例において、縮小)が行われ、表面eの場合は、上側へh0だけのサイズ調整(本例において、拡張)が行われ得る。本例において、表面a、b、c、dから画像の横幅の変化を見ると、表面aがw0だけ縮小され、表面bがw0とw1だけ拡張され、表面cがw1だけ縮小されるため、サイズ調整前の画像の横幅とサイズ調整後の画像の横幅とは同じである。表面a、e、iから画像の縦幅の変化を見ると、表面aがh0だけ縮小され、表面eがh0とh1だけ拡張され、表面iがh1だけ縮小されるため、サイズ調整前の画像の縦幅とサイズ調整後の画像の縦幅とは同じである。
サイズ調整される領域(本例において、b0、e0、be、b1、bg、g0、h0、e1、ej、j0、gi、g1、j1、h1)は、データが存在しないA領域から縮小されることを考慮して、単純除去することもでき、実際のデータを含むB領域から拡張されることを考慮して、連続性が存在する領域のデータで新たに充填することができる。
例えば、b0は表面eの上側、e0は表面bの左側、beは表面bの左側、又は表面eの上側、又は表面bの左側と表面eの上側との重み付け和、b1は表面gの上側、bgは表面bの左側、又は表面gの上側、又は表面bの右側と表面gの上側との重み付け和、g0は表面bの右側、h0は表面bの上側、e1は表面jの左側、ejは表面eの下側、又は表面jの左側、又は表面eの下側と表面jの左側との重み付け和、j0は表面eの下側、gjは表面gの下側、又は表面jの左側、又は表面gの下側と表面jの右側との重み付け和、g1は表面jの右側、j1は表面gの下側、h1は表面jの下側のデータを用いて充填することができる。
上記例でサイズ調整される領域に画像の一部領域のデータを用いて充填するとき、該当領域のデータをコピーして充填することができるか、或いは、該当領域のデータを画像の特性、種類などに基づいて変換過程を経た後に取得されるデータを充填することができる。例えば、360度画像が2次元空間に投影フォーマットに応じて変換するとき、各表面の座標系(例えば、2次元平面座標系)が定義できる。説明の便宜のために、3次元空間の(x、y、z)で各表面に(x、y、C)又は(x、C、z)又は(C、y、z)に変換されたと仮定する。上記の例は、一部表面のサイズ調整される領域に該当表面とは異なる表面のデータを取得する場合を示す。すなわち、現在表面を中心にサイズ調整をするが、他の座標系特性を持つ他の表面のデータをそのままコピーして充填する場合、サイズ調整の境界を基準に連続性が歪む可能性が存在する。このため、現在表面の座標系特性に合わせて取得される他の表面のデータを変換してサイズ調整される領域に充填することもできる。変換する場合もデータ処理方法の一例に過ぎず、これに限定されない。
サイズ調整される領域に画像の一部領域のデータをコピーして充填するとき、サイズ調整する領域(e)とサイズ調整される領域(e0)との境界領域に歪んだ連続性(又は、急進的に変化する連続性)を含むことができる。例えば、境界を基準に連続的な特徴が変わる場合が発生することがあり、エッジが直線形状を持っていたものが、境界を基準に折られた形状になるのと同様である。
サイズ調整される領域に画像の一部領域のデータを変換して充填するとき、サイズ調整する領域とサイズ調整される領域との境界領域に、漸次変化する連続性を含むことができる。
上記の例は、サイズ調整過程(本例において、拡張)で画像の一部領域のデータを画像の特性、種類などに基づいて変換処理し、取得されたデータをサイズ調整される領域に充填する本発明のデータ処理方法の一例であり得る。
26cは、26aと26bによる画像サイズ調整過程を組み合わせて画像の境界(内側境界及び外側境界)方向に連続性が存在する領域のデータを用いて充填する例であり得る。本例のサイズ調整過程は、26aと26bから誘導できるので、詳細な説明は省略する。
26aは画像のサイズ調整過程、26bは画像内の分割単位のサイズ調整過程の一例であり得る。26cは画像のサイズ調整過程と画像内の分割単位のサイズ調整が行われる複数のサイズ調整過程の一例であり得る。
例えば、投影過程を介して取得した画像(本例において、第1フォーマット)にサイズ調整(本例において、C領域)を行うことができ、フォーマット変換過程を介して取得した画像(本例において、第2フォーマット)にサイズ調整(本例において、D領域)を行うことができる。本例では、ERPで投影された画像にサイズ調整(本例において、画像全体)を行い、これはフォーマット変換部を介してCMPで投影された画像を取得した後にサイズ調整(本例において、表面単位)を行った例であり得る。上記例は、複数のサイズ調整を行う一例であり、これに限定されず、他の場合への変形も可能である。
図27は本発明の一実施形態に係るCMP投影フォーマットに変換され、パッキングされた画像を対象としたサイズ調整を説明するための例示図である。図27でも図25による表面間の連続性を前提に説明するので、表面の境界は他の表面の境界との連続性を持つことができる。
本例において、W0乃至W5とH0乃至H3のオフセットファクタ(本例において、オフセットファクタがサイズ調整値のまま使用される場合と仮定)は、さまざまな値を持つことができる。例えば、所定の値、画面間予測の動き探索範囲、ピクチャ分割部から取得される単位などから誘導でき、それ以外の場合も可能である。この時、前記ピクチャ分割部から取得される単位は表面を含むことができる。すなわち、F_Width、F_Heightに基づいてサイズ調整値が決定できる。
27aは、一つの表面それぞれに対してサイズ調整(本例において、各表面の上、下、左、右方向)を行うことにより、拡張されるそれぞれの領域に連続性が存在する領域のデータを用いて充填する例示である。例えば、表面aに対して、その外郭であるa0乃至a6に連続的なデータを充填することができ、表面bの外郭であるb0乃至b6に連続的なデータを充填することができる。
27bは、複数の表面に対してサイズ調整(本例において、複数の表面の上、下、左、右方向)を行うことにより、拡張される領域に連続性が存在する領域のデータを用いて充填する例示である。例えば、表面a、b及びcを基準に、その外郭に対してa0~a4、b0~b1、c0~c4に拡張することができる。
27cは、画像全体に対するサイズ調整(本例において、全体画像の上、下、左、右方向)を行うことにより、拡張される領域に連続性が存在する領域のデータを用いて充填する例であり得る。例えば、表面a乃至fからなる画像全体の外郭に対してa0~a2、b0、c0~c2、d0~d2、e0、f0~f2に拡張することができる。
つまり、一つの表面単位でサイズ調整を行うことができ、連続性が存在する複数の表面単位でサイズ調整を行うことができ、全体表面単位でサイズ調整を行うことができる。
前記例のサイズ調整される領域(本例において、a0~f7)は、図24aの如く連続性が存在する領域(又は表面)のデータを用いて充填することができる。すなわち、表面a~fの上側、下側、左側、右側のデータを用いてサイズ調整される領域に充填することができる。
図28は本発明の一実施形態に係る360度画像のサイズ調整におけるデータ処理方法を説明するための例示図である。
図28を参照すると、サイズ調整される領域であるB領域(a0~a2、ad0、b0、c0~c2、cf1、d0~d2、e0、f0~f2)は、a乃至fに属する画素データのうち、連続性が存在する領域のデータで充填することができる。また、別のサイズ調整される領域であるC領域(ad1、be、cf0)は、サイズ調整を行う領域のデータと空間的に隣接し且つ連続性が存在しない領域のデータを混合して充填することができる。又は、C領域は、a乃至fの中から選択された2つの領域(例えば、aとd、bとe、cとf)の間にサイズ調整を行うので、前記2つの領域のデータを混合して充填することができる。例えば、表面bと表面eとは、空間的に隣接し且つ連続性が存在しない関係を持つことができる。表面bと表面eの間のサイズ調整される領域beに表面bのデータと表面eのデータを用いてサイズ調整を行うことができる。例えば、be領域に表面bのデータと表面eのデータを平均して取得された値で充填するか、或いは距離による重み付け和を介して取得された値で充填することができる。このとき、表面bと表面eでサイズ調整される領域に充填するデータのために使用される画素は、各表面の境界画素であり得るが、表面の内部画素であってもよい。
まとめると、画像の分割単位の間にサイズ調整される領域は、両方の単位のデータを混合使用して生成されたデータで充填することができる。
前記データ処理方法は、一部の状況(本例において、複数の領域でサイズ調整を行う場合)で支援される方法であり得る。
図27a、27bは分割単位の間に互いにサイズ調整が行われる領域を、それぞれの分割単位ごとに個別に構成(図27aを例として挙げると、aとdに対してそれぞれa6とd1が構成される)したが、図28では、分割単位の間に互いにサイズ調整が行われる領域は、隣接した分割単位に対して一つずつ(aとdに対して一つのad1)を構成することができる。もちろん、図27a乃至27cでもデータ処理方法の候補群に前記方法を含むことができ、図28でも上記の例とは異なるデータ処理方法を用いてサイズ調整を行うことができる。
本発明の画像のサイズ調整過程でサイズ調整される領域に暗示的に所定のデータ処理方法を用いることができるか、或いは複数のデータ処理方法のいずれかを用いて明示的に関連情報を生成することができる。所定のデータ処理方法は、任意の画素値を用いて充填する方法、外郭画素をコピーして充填する方法、画像の一部領域をコピーして充填する方法、画像の一部領域を変換して充填する方法、画像の複数の領域から誘導されたデータを充填する方法などのデータ処理方法のうちのいずれかであり得る。例えば、サイズ調整される領域が画像の内部(例えば、パッキングされた画像)に位置し、両側の領域(例えば、表面)が空間的に隣接し且つ連続性が存在しない場合、複数の領域から誘導されたデータを充填するデータ処理方法が適用されてサイズ調整される領域を充填することができる。また、前記複数のデータ処理方法の中からいずれかを選択してサイズ調整を行うことができ、これに対する選択情報は明示的に生成できる。これは360度画像だけでなく、一般な画像にも適用できる例であり得る。
符号化器では、上記の過程で発生する情報をシーケンス、ピクチャ、スライス、タイルなどの単位のうちの少なくとも一つの単位でビットストリームに収録し、復号化器では、関連情報をビットストリームからパーシングする。また、SEI又はメタデータの形式でビットストリームに含まれ得る。360度画像での分割、再構成、サイズ調整過程をERP、CMPなどの一部投影フォーマットを中心に説明したが、これに限定されず、別の投影フォーマットにも前記内容と同じか変更されて適用され得る。
前述する360度画像符号化/復号化装置に適用される画像設定過程は、符号化/復号化過程だけでなく、前処理過程、後処理過程、フォーマット変換過程、フォーマット逆変換過程などに適用できるという説明をした。
まとめると、投影過程は、画像設定過程が含まれて構成できる。詳細には、少なくとも一つの画像設定過程が含まれて投影過程が行われ得る。投影された画像に基づいて領域(又は表面)単位で分割を行うことができる。投影フォーマットに応じて一つの領域又は複数の領域に分割を行うことができる。前記分割による分割情報が生成できる。また、投影された画像のサイズを調整することができるか、或いは投影された領域のサイズ調整を行うことができる。このとき、少なくとも一つの領域へサイズ調整を行うことができる。前記サイズ調整によるサイズ調整情報が生成できる。また、投影された画像の再構成(又は表面配置)を行うことができるか、或いは投影された領域の再構成を行うことができる。このとき、少なくとも一つの領域で再構成を行うことができる。前記再構成による再構成情報が生成できる。
まとめると、地域別パッキング過程は、画像設定過程が含まれて構成できる。詳細には、少なくとも一つの画像設定過程が含まれて地域別パッキング過程が行われ得る。パッキングされた画像に基づいて領域(又は表面)単位で分割過程を行うことができる。地域別パッキング設定に応じて一つの領域又は複数の領域に分割することができる。前記分割による分割情報が生成できる。また、パッキングされた画像のサイズ調整を行うことができるか、或いはパッキングされた領域のサイズ調整を行うことができる。このとき、少なくとも一つの領域でサイズ調整を行うことができる。前記サイズ調整によるサイズ調整情報が生成できる。また、パッキングされた画像の再構成を行うことができるか、或いはパッキングされた領域の再構成を行うことができる。このとき、少なくとも一つの領域で再構成を行うことができる。前記再構成による再構成情報が生成できる。
前記投影過程は、画像設定過程の全部又は一部が行われ、画像設定情報を含むことができる。これは投影された画像の設定情報であり得る。詳細には、投影された画像内領域の設定情報であり得る。
前記地域別パッキング過程は、画像設定過程の全部又は一部が行われ、画像設定情報を含むことができる。これはパッキングされた画像の設定情報であり得る。詳細には、パッキングされた画像内領域の設定情報であり得る。又は、投影された画像とパッキングされた画像とのマッピング情報(例えば、図11に関連した説明を参照。P0乃至P1は投影された画像、S0乃至S5はパッキングされた画像であると仮定して理解できる)であり得る。詳細には、投影された画像内の一部領域とパッキングされた画像内の一部領域とのマッピング情報であり得る。つまり、投影された画像内の一部領域から、パッキングされた画像内の一部領域に割り当てられる設定情報であり得る。
前記情報は、本発明の画像設定過程で前述の様々な実施形態を介して取得される情報で表すことができる。例えば、表1~表6で少なくとも一つの構文要素を用いて関連情報を示す場合、投影された画像の設定情報は、pic_width_in_samples、pic_height_in_samples、part_top[i]、part_left[i]、part_width[i]、part_height[i]などを含むことができ、パッキングされた画像の設定情報は、pic_width_in_samples、pic_height_in_samples、part_top[i]、part_left[i]、part_width[i]、part_height[i]、convert_type_flag[i]、part_resizing_flag[i]、top_height_offset[i]、bottom_height_offset[i]、left_width_offset[i]、right_width_offset[i]、resizing_type_flag[i]などを含むことができる。上記例は、表面に対する情報(例えば、投影された画像の設定情報のうちpart_top[i]、part_left[i]、part_width[i]、part_height[i])を明示的に生成する一例であり得る。
画像設定過程の一部は、所定の動作で投影フォーマットによる投影過程又は地域別パッキング過程に含まれ得る。
例えば、ERPの場合、左右方向にそれぞれm、nだけ拡張された領域に画像のサイズ調整方向の反対方向(本例において、右、左方向)の領域のデータをコピーして充填する方法を用いてサイズ調整を行う過程が暗示的に含まれ得る。又は、CMPの場合、上、下、左、右方向にそれぞれm、n、o、pだけ拡張された領域にサイズ調整を行う領域との連続性が存在する領域のデータを変換して充填する方法を用いてサイズ調整を行う過程が暗示的に含まれ得る。
上記例の投影フォーマットは、既存の投影フォーマットを代替する例であるか、或いは既存の投影フォーマットに追加的な投影フォーマット(例えば、ERP1、CMP1)の例であり得る。上記例に限定されず、本発明の様々な画像設定過程の例が代替的に組み合わせられ得る。別のフォーマットの場合もこれと類似の適用が可能である。
一方、図1及び図2の画像符号化装置及び画像復号化装置に図示していないが、ブロック分割部がさらに含まれ得る。ピクチャ分割部から基本符号化単位に対する情報を取得することができ、基本符号化単位は、画像符号化/復号化過程での予測、変換、量子化などに対する基本(又は開始)単位を意味することができる。このとき、符号化単位は、カラーフォーマット(本例において、YCbCr)に応じて一つの輝度符号化ブロックと二つの色差符号化ブロックで構成でき、カラーフォーマットに応じて各ブロックのサイズが決定できる。後述する例では、ブロック(本例において、輝度成分)を基準に説明する。このとき、ブロックは、各単位が決定された後に取得できる単位であることを前提とし、他の種類のブロックに同様の設定が適用可能であると仮定して説明する。
ブロック分割部は、画像符号化装置及び復号化装置の各構成部に関わって設定でき、この過程を介してブロックのサイズと形状が決定できる。このとき、設定されるブロックは、構成部によって異ならせて定義でき、予測部の場合には予測ブロック、変換部の場合には変換ブロック、量子化部の場合には量子化ブロックなどがこれに該当することができる。これに限定されず、他の構成部によるブロック単位が追加的に定義できる。ブロックのサイズ及び形状は、ブロックが持つ横幅、縦幅によって定義できる。
ブロック分割部において、ブロックは、M×Nで表現でき、各ブロックの最大値と最小値が範囲内で取得できる。例えば、ブロックの形状は正方形を支援し、ブロックの最大値を256×256、最小値を8×8と定める場合には、サイズ2m×2mのブロック(本例において、mは3~8の整数。例えば、8×8、16×16、32×32、64×64、128×128、256×256)又はサイズ2m×2mのブロック(本例において、mは4~128の整数)又はサイズm×mのブロック(本例において、mは8~256の整数)を取得することができる。又は、ブロックの形状は正方形と長方形を支援し、上記の例と同じ範囲を持つ場合には、サイズ2m×2nのブロック(本例において、mとnは3~8の整数。横と縦の比率が最大2:1である場合を仮定して、例えば、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64、64×128、128×64、128×128、128×256、256×128、256×256。符号化/復号化の設定に応じて、横と縦の比率に対する制限がないか、比率の最大値が存在することがある)を取得することができる。又は、サイズ2m×2nのブロック(本例において、mとnは4~128の整数)を取得することができる。又は、サイズm×nのブロック(本例において、mとnは8~256の整数)を取得することができる。
符号化/復号化の設定(例えば、ブロックの種類、分割方式、分割設定など)に応じて取得可能なブロックが決定できる。例えば、符号化ブロックは、サイズ2m×2nのブロック、予測ブロックはサイズ2m×2n又はm×nのブロック、変換ブロックはサイズ2m×2nのブロックを取得することができる。前記設定に基づいて、ブロックサイズ、範囲などの情報(例えば、指数、倍数関連情報など)が生成できる。
ブロックの種類に応じて前記範囲(本例において、最大値及び最小値で定められる)が決定できる。また、一部のブロックはブロックの範囲情報が明示的に生成でき、一部のブロックはブロックの範囲情報が暗示的に決定できる。例えば、符号化、変換ブロックは明示的に関連情報が生成でき、予測ブロックは暗示的に関連情報が処理できる。
明示的な場合には、少なくとも一つの範囲情報が生成できる。例えば、符号化ブロックの場合、範囲に関する情報は、最大値と最小値に関する情報を生成することができる。又は、最大値と所定の最小値(例えば、8)との差(例えば、前記設定に基づいて生成。最大値と最小値との指数の差異値情報など)に基づいて生成できる。また、長方形のブロックの横幅、縦幅のための複数の範囲に関する情報が生成できる。
暗示的な場合には、符号化/復号化の設定(例えば、ブロックの種類、分割方式、分割設定など)に基づいて範囲情報が取得できる。例えば、予測ブロックの場合、上位単位である符号化ブロック(本例において、符号化ブロックの最大サイズM×N。最小サイズm×n)で予測ブロックの分割設定(本例において、四分木分割+分割深さ0)から取得可能な候補群(本例において、M×Nとm/2×n/2)に応じて最大値及び最小値の情報を取得することができる。
ブロック分割部の初期(又は開始)ブロックのサイズ及び形状は上位単位から決定できる。符号化ブロックの場合は、ピクチャ分割部から取得された基本符号化ブロックが初期ブロックであり、予測ブロックの場合は、符号化ブロックが初期ブロックであり、変換ブロックの場合は、符号化ブロック又は予測ブロックが初期ブロックであり、これは符号化/復号化の設定に応じて決定できる。例えば、符号化モードがIntraである場合には、予測ブロックは変換ブロックの上位単位であり、符号化モードがInterである場合には、予測ブロックは変換ブロックに独立的な単位であり得る。初期ブロックは分割の開始単位で小さいサイズのブロックに分割することができる。各ブロックの分割による最適なサイズ及び形状が決定されると、そのブロックは下位単位の初期ブロックと決定できる。例えば、前者の場合は符号化ブロック、後者の場合(下位単位)は予測ブロック又は変換ブロックであり得る。上記例のように下位単位の初期ブロックが決定されると、上位単位のように最適なサイズ及び形状のブロックを探すための分割過程が行われ得る。
まとめると、ブロック分割部は、基本符号化単位(又は最大符号化単位)を少なくとも一つの符号化単位(又は下位符号化単位)で分割することができる。また、符号化単位は、少なくとも一つの予測単位で分割を行うことができ、少なくとも一つの変換単位で分割を行うことができる。符号化単位は、少なくとも一つの符号化ブロックに分割を行うことができ、符号化ブロックは、少なくとも一つの予測ブロックに分割を行うことができ、少なくとも一つの変換ブロックに分割を行うことができる。予測単位は少なくとも一つの予測ブロックに分割を行うことができ、変換単位は少なくとも一つの変換ブロックに分割を行うことができる。
上記例のように、モード決定過程を介して最適なサイズ及び形状のブロックを探した場合、これに対するモード情報(例えば、分割情報など)が生成できる。モード情報は、ブロックの属する構成部から発生する情報(例えば、予測関連情報、変換関連情報など)と一緒にビットストリームに収録されて復号化器へ伝送でき、同じレベルの単位でパーシングして画像復号化過程で使用することができる。
後述する例は、分割方式について、初期ブロックが正方形の形状であることを仮定して説明するが、長方形の形状である場合、同一又は類似の適用が可能である。
ブロック分割部は様々な分割方式を支援することができる。例えば、ツリーベースの分割又はタイプベースの分割を支援することができ、その他の方法が適様できる。ツリーベースの分割の場合は、分割フラグで分割情報を生成することができ、タイプベースの分割の場合は、既に設定された候補群に含まれているブロック形状に対するインデックス情報で分割情報を生成することができる。
図29はツリーベースのブロック形状を示す例示図である。
29aは分割が行われていない一つの2N×2N、29bは一部分割フラグ(本例において、二分木の横分割)を介して2つの2N×N、29cは一部分割フラグ(本例において、二分木の縦分割)を介して2つのN×2N、29dは一部分割フラグ(本例において、四分木の4分割又は二分木の横分割と縦分割)を介して4つのN×Nが取得される例を示す。分割に使用されるツリーの種類によって、取得されるブロックの形状が決定できる。例えば、四分木分割を行う場合、取得可能な候補ブロックは29a、29dであり得る。二分木分割を行う場合、取得可能な候補ブロックは29a、29b、29c、29dであり得る。四分木の場合、一つの分割フラグを支援し、該当フラグが「0」である場合には29a、「1」である場合には29dを取得することができる。二分木の場合、複数の分割フラグを支援し、その中の一つは分割かどうかを示すフラグであり、その中の一つは縦分割か横分割かを示すフラグであり、その中の一つは横/縦分割の重複を許容するかどうかを示すフラグであり得る。重複が許容される場合に取得可能な候補ブロックは29a、29b、29c、29dであり、重複が許容されない場合に取得可能な候補ブロックは29a、29b、29cであり得る。四分木の場合、基本的なツリーベースの分割方式であり、これに追加的にツリー分割方式(本例において、二分木)がツリーベースの分割方式に含まれ得る。追加的なツリー分割を許容するフラグが暗示的又は明示的に活性化される場合、複数のツリー分割を行うことができる。ツリーベースの分割は、再帰的な分割(Recursive Partition)が可能な方式であり得る。すなわち、分割されたブロックが再び初期ブロックとして設定されてツリーベースの分割が行われ得る。これは分割範囲、分割許容深さなどの分割設定に応じて決定できる。これは階層的分割方式の一例であり得る。
図30はタイプベースのブロック形状を示す例示図である。
図30を参照すると、タイプに基づいて分割した後、ブロックは、1分割(本例において、30a)、2分割(本例において、30b、30c、30d、30e、30f、30g)、4分割された形状(本例において、30h)を有することができる。さまざまな構成によって候補群を構成することができる。例えば、図31のa、b、c、n、又はa、b~g、n又はa、n、qなどで候補群を構成することができ、これに限定されず、後述する例を含めて様々な変形の例が可能である。対称分割(Symmetric Partition)を許容するフラグが活性化される場合に支援されるブロックは、図30a、30b、30c、30hであり、非対称分割(Asymmetric Partition)を許容するフラグが活性化される場合に支援されるブロックは、図30a~30hであり得る。前者の場合は、関連情報(本例において、対称分割を許容するフラグ)が暗示的に活性化でき、後者の場合は、明示的に関連情報(本例において、非対称分割を許容するフラグ)が生成できる。タイプベースの分割は、一度の分割を支援する方式であり得る。ツリーベースの分割と比較すると、タイプベースの分割を介して取得されたブロックはそれ以上の追加分割はできない。これは、分割許容深さが0である例(例えば、単一階層分割)であり得る。
図31は本発明のブロック分割部で取得することができる様々なブロックの形状を示す例示図である。
図31を参照すると、分割設定、分割方式に応じて31a乃至31sのブロックを取得することができ、図示されていない追加的なブロック形状も可能である。
一例として、ツリーベースの分割に非対称分割を許容することができる。例えば、二分木の場合は、図31b、31cのようなブロック(本例において、複数のブロックに分割された場合)が可能であるか、或いは図31b~31gのようなブロック(本例において、複数のブロックに分割された場合)が可能である。非対称分割を許容するフラグが符号化/復号化の設定に応じて明示的又は暗示的に非活性化される場合、取得可能な候補ブロックは31b又は31c(本例は、横と縦の重複分割を許容しないと仮定)であり、非対称分割を許容するフラグが活性化される場合、取得可能な候補ブロックは31b、31d、31e(本例において、横分割)であるか或いは31c、31f、31g(本例において、縦分割)であり得る。本例では、横又は縦分割フラグによって分割方向が決定され、非対称許容フラグに応じてブロック形状が決定される場合に該当することができ、これに限定されず、他の例への変形も可能である。
一例として、ツリーベースの分割に追加的なツリー分割を許容することができる。例えば、三分木、四分木、八分木などの分割が可能であり、これによりn個の分割ブロック(本例において、3、4、8。nは整数)を取得することができる。三分木の場合、支援されるブロック(本例において、複数のブロックに分割された場合)は31h~31mであり、四分木の場合、支援されるブロックは31n~31pであり、八分木の場合、支援されるブロックは31qであり得る。前記ツリーベースの分割を支援するかどうかは、符号化/復号化の設定に応じて、暗示的に決定されるか或いは明示的に関連情報が生成され得る。また、符号化/復号化の設定に応じて、単独で使用されるか、或いは二分木、四分木分割が混合使用され得る。例えば、二分木の場合には、図31b、31cのようなブロックが可能であり、二分木と三分木とが混合使用される場合には(本例は、二分木の使用範囲と三分木の使用範囲とが一部重複する場合と仮定)、31b、31c、31i、31lのようなブロックが可能である。既存のツリー以外の追加分割を許容するフラグが符号化/復号化の設定に応じて明示的又は暗示的に非活性化される場合、取得可能な候補ブロックは31b又は31cであり、活性化される場合、取得可能な候補ブロックは31b、31i又は31b、31h、31i、31j(本例において、横分割)であるか、或いは31c、31l又は31c、31k、31l、31m(本例において、縦分割)であり得る。本例は、横又は縦分割フラグによって分割方向が決定され、追加分割を許容するフラグに応じてブロック形状が決定される場合に該当することができ、これに限定されず、他の例への変形も可能である。
一例として、タイプベースのブロックに非長方形分割(Non-RectangularPartition)を許容することができる。例えば、31r、31sのような形状の分割が可能である。前述したタイプベースのブロック候補群と結合する場合、31a、31b、31c、31h、31r、31s又は31a~31h、31r、31sのブロックが支援されるブロックであり得る。また、31h~31mのようなn個の分割(例えば、nは整数、本例は1、2、4を除く3)を支援するブロックが候補群に含まれ得る。
符号化/復号化の設定に応じて分割方式が決定できる。
一例として、ブロックの種類に応じて分割方式が決定できる。例えば、符号化ブロックと変換ブロックはツリーベースの分割を使用し、予測ブロックはタイプベースの分割方式を使用することができる。又は、2方式の組み合わせ形態の分割方式を使用することができる。例えば、予測ブロックは、ツリーベースの分割とタイプベースの分割とを混合する分割方式を使用することができ、ブロックの少なくとも一つの範囲に応じて、適用される分割方式が異なり得る。
一例として、ブロックのサイズに応じて分割方式が決定できる。例えば、ブロックの最大値と最小値との間で一部の範囲(例えば、a×b~c×d。後者がより大きいサイズの場合)にはツリーベースの分割、一部の範囲(例えば、e×f~g×h)にはタイプベースの分割が可能である。この場合、分割方式による範囲情報が明示的に生成できるか或いは暗示的に決定できる。
一例として、ブロック(又は分割前のブロック)の形状によって分割方式が決定できる。例えば、ブロックの形状が正方形である場合、ツリーベースの分割とタイプベースの分割が可能である。又は、ブロックの形状が長方形である場合、ツリーベースの分割が可能である。
符号化/復号化の設定に応じて分割設定が決定できる。
一例として、ブロックの種類に応じて分割設定が決定できる。例えば、ツリーベースの分割において、符号化ブロックと予測ブロックは四分木分割、変換ブロックは二分木分割を使用することができる。又は、符号化ブロックの場合における分割許容深さはm、予測ブロックの場合における分割許容深さはn、変換ブロックの場合における分割許容深さはoにそれぞれ設定することができ、mとnとoは同一でも同一でなくてもよい。
一例として、ブロックのサイズに応じて分割設定が決定できる。例えば、ブロックの一部の範囲(例えば、a×b~c×d)には四分木分割、一部の範囲(例えば、e×f~g×h。本例において、c×dはg×hよりも大きいと仮定)には二分木分割が可能である。この際、上記の範囲でブロックの最大値と最小値との間のすべての範囲を含むことができ、上記の範囲は、互いにオーバーラップしない設定を持つか、或いはオーバーラップする設定を持つことができる。例えば、一部の範囲の最小値は一部の範囲の最大値と同一であるか、或いは一部の範囲の最小値は一部の範囲の最大値よりも小さい。オーバーラップする範囲を持つ場合、さらに高い最大値を有する分割方式が優先順位を持つことができる。すなわち、優先順位を持つ分割方式において、分割結果に応じて、後順位を持つ分割方式が行われるかどうかが決定できる。この場合、ツリーの種類による範囲情報が明示的に生成できるか或いは暗示的に決定できる。
他の例として、ブロックの一部の範囲(上記例と同じ)には、一部の候補群を有するタイプベースの分割を、一部の範囲(上記例と同じ)には、一部の候補群(本例において、前者の候補群とは少なくとも一つの構成が異なる)を有するタイプベースの分割が可能である。この際、上記の範囲でブロックの最大値と最小値との間のすべての範囲を含むことができ、上記の範囲は互いにオーバーラップしない設定を持つことができる。
一例として、ブロックの形状によって分割設定が決定できる。例えば、ブロックの形状が正方形である場合、四分木分割が可能である。又は、ブロックの形状が長方形である場合、二分木分割が可能である。
一例として、符号化/復号化情報(例えば、スライスタイプ、カラー成分、符号化モードなど)に応じて分割設定が決定できる。例えば、四分木(又は二分木)分割は、スライスタイプがIである場合には一部の範囲(例えば、a×b~c×d)、スライスタイプがPである場合には一部の範囲(例えば、e×f~g×h)、スライスタイプがBである場合には一部の範囲(例えば、i×j~k×l)で可能である。また、スライスタイプがIである場合には四分木(又は二分木)分割の分割許容深さm、スライスタイプがPである場合には分割許容深さn、スライスタイプがBである場合には分割許容深さoに設定することができ、mとnとoは同一でも同一でなくてもよい。一部のスライスタイプの場合、他のスライス(例えば、PとBスライス)と同一の設定を持つことができる。
他の例として、四分木(又は二分木)分割許容深さは、カラー成分が輝度成分である場合にはmに設定し、カラー成分が色差成分である場合にはnに設定することができ、mとnは同一でも同一でなくてもよい。また、カラー成分が輝度成分である場合の四分木(又は二分木)分割の範囲(例えば、a×b~c×d)と、カラー成分が色差成分である場合の四分木(又は二分木)分割の範囲(例は、e×f~g×h)とは、同一でも同一でなくてもよい。
別の例として、四分木(又は二分木)分割許容深さは、符号化モードがIntraである場合にはmであり、符号化モードがInterである場合にはn(本例において、nはmよりも大きいと仮定)であり、mとnは同一でも同一でなくてもよい。また、符号化モードがIntraである場合の四分木(又は二分木)分割の範囲と、符号化モードがInterである場合の四分木(又は二分木)分割の範囲とは、同一でも同一でなくてもよい。
上記例の場合、符号化/復号化情報に基づく適応的な分割候補群の構成支援か否かに対する情報が明示的に生成できるか、或いは暗示的に決定できる。
上記例を用いて、符号化/復号化の設定に応じて分割方式と分割設定が決定される場合を説明した。上記例は、各要素による一部の場合を示し、他の場合への変形も可能である。また、複数の要素による組み合わせに応じて分割方式と分割設定が決定されることもある。例えば、ブロックの種類、サイズ、形状、符号化/復号化情報などによって分割方式と分割設定が決定できる。
また、上記例において分割方式、設定などに関与する要素は、暗示的に決定されるか或いは明示的に情報を生成して上記例のような適応的な場合の許容か否かを決定することができる。
前記分割設定中の分割深さは、初期ブロックを基準に空間的に分割した回数(本例において、初期ブロックの分割深さは0)を意味し、分割深さが増加するほど、さらに小さいブロックに分割できる。これは、分割方式に応じて深さ関連設定を異ならせることができる。例えば、ツリーベースの分割を行う方式のうち、四分木の分割深さと二分木の分割深さは共通する一つの深さを使用することができ、ツリーの種類による個別深さを使用することができる。
上記例においてツリーの種類に応じて個別の分割深さを使用する場合、ツリーの分割開始位置(本例において、分割を行う前のブロック)で分割深さ0に設定することができる。各ツリーの分割範囲(本例において、最大値)に基づくことなく、分割開始位置を中心に分割深さが計算できる。
図32は本発明の一実施形態に係るツリーベースの分割を説明するための例示図である。
32aは四分木分割と二分木分割の例を示す。詳細には、32aの左上ブロックは四分木分割、右上ブロックと左下ブロックは四分木分割と二分木分割、右下ブロックは二分木分割の例を示す。図面において、実線(本例において、Quad1)は四分木状に分割された境界線を、破線(本例において、Binary1)は二分木状に分割された境界線を意味し、太い実線(本例において、Binary2)は二分木状に分割された境界線を意味する。破線と太い実線との差は分割方法の差である。
一例として、(左上ブロックは、四分木分割許容深さが3である。現在ブロックがN×Nである場合、横及び縦のいずれかが(N>>3)に到達するまで分割を行うが、分割情報は(N>>2)までの分割情報を生成する。これは、後述する例に共通適用する。四分木の最大値と最小値はN×N、(N>>3)×(N>>3)と仮定する。)左上ブロックは、四分木の分割が行われる場合、横幅、縦幅の1/2ずつの長さを有する4つのブロックに分割できる。分割フラグは、分割が活性化された場合には「1」、分割が非活性化された場合には「0」の値を持つことができる。前記設定に応じて、左上ブロックの分割フラグは32bの左上ブロックのように発生することができる。
一例として、(右上ブロックは、四分木分割許容深さが0であり、二分木分割許容深さが4である。四分木分割の最大値と最小値はN×N、(N>>2)×(N>>2)。二分木の最大値と最小値は(N>>1)×(N>>1)、(N>>3)×(N>>3)と仮定する。)右上ブロックは、初期ブロックで四分木分割を行う場合、横幅、縦幅の1/2ずつの長さを有する4つのブロックに分割できる。分割されたブロックのサイズは(N>>1)×(N>>1)であり、これは、本例の設定に応じて、二分木分割(本例において、四分木分割の最小値よりも大きいが、分割許容深さが制限される場合)が可能である。すなわち、本例は、四分木分割と二分木分割のオーバーラップ使用が不可能な例であり得る。本例の二分木の分割情報は、複数の分割フラグで構成できる。一部のフラグは横分割フラグ(本例において、x/yのxに該当する)であり、一部のフラグは縦分割フラグ(本例において、x/yのyに該当する)であり得る。分割フラグの構成は、四分木分割と類似の設定(例えば、活性化かどうか)を持つことができる。本例では、前記2つのフラグは重複して活性化できる。図において「-」でフラグ情報が生成された場合、「-」はツリー分割による最大値、最小値、分割許容深さなどの条件に応じて追加的に分割が不可能な場合に発生しうるフラグの暗示的な処理に該当することができる。前記設定に応じて、右上ブロックの分割フラグは32bの右上ブロックのように発生することができる。
一例として、(左下ブロックは、四分木分割許容深さが3であり、二分木分割許容深さが2である。四分木分割の最大値と最小値はN×N、(N>>3)×(N>>3)である。二分木分割の最大値と最小値は(N>>2)×(N>>2)、(N>>4)×(N>>4)である。オーバーラップする範囲における分割優先順位は、四分木分割に与えられると仮定)。左下ブロックは、初期ブロックで四分木分割を行う場合、横幅、縦幅の1/2ずつの長さを有する4つのブロックに分割できる。分割されたブロックのサイズは(N>>1)×(N>>1)であり、これは本例の設定に応じて四分木分割と二分木分割が可能である。すなわち、本例は、四分木分割と二分木分割のオーバーラップ使用が可能な例であり得る。この場合、優先順位が与えられる四分木分割の結果に応じて、二分木分割が行われるかどうかが決定できる。四分木分割が行われる場合には、二分木分割は行われず、四分木分割が行われない場合には、二分木分割が行われ得る。四分木分割が行われない場合、上記の設定に応じて分割が可能な条件であっても、それ以上の四分木分割は不可能である。本例の二分木分割情報は複数の分割フラグで構成できる。一部のフラグは分割フラグ(本例において、x/yのxに該当する)、一部のフラグは分割方向フラグ(本例において、x/yのyに該当する。xに応じてy情報生成か否かが決定できる。)であり、分割フラグは、四分木分割と類似の設定を持つことができる。本例では、横分割と縦分割が重複して活性化できない。図面において「-」でフラグ情報が生成された場合、「-」は上記例と類似の設定を持つことができる。前記設定に応じて、左下ブロックの分割フラグは32bの左下ブロックのように発生することができる。
一例として、(右下ブロックは、二分木分割許容深さが5であり、二分木分割の最大値と最小値はN×N、(N>>2)×(N>>3)と仮定する。)右下ブロックは、初期ブロックで二分木分割を行う場合、横幅又は縦幅の1/2の長さを有する2つのブロックに分割できる。本例の分割フラグ設定は左下ブロックと同様であってもよい。図面において「-」でフラグ情報が生成された場合、「-」は上記例と類似の設定を持つことができる。本例において、二分木の横、縦の最小値が異なるように設定される場合を示す。前記設定に応じて、右下ブロックの分割フラグは32bの右下ブロックのように発生することができる。
上記例のようにブロック情報(例えば、ブロックの種類、サイズ、形状、位置、スライスタイプ、カラー成分など)を確認した後、それによる分割方式と分割設定を定めることができ、それによる分割過程を行うことができる。
図33は本発明の一実施形態に係るツリーベースの分割を説明するための例示図である。
33aと33bのブロックを参照すると、太い実線L0は最大符号化ブロックを意味し、太い実線とは異なる線L1~L5で区画されたブロックは分割された符号化ブロックを意味し、ブロック内の数字は分割されたサブブロックの位置(本例において、ラスタースキャン(Raster Scan)順序に従う)を意味し、「-」の個数は、該当ブロックが持つ分割深さを意味し、ブロック間の境界線の数字は分割された回数を意味することができる。例えば、4分割された場合(本例において、四分木)には、UL(0)-UR(1)-DL(2)-DR(3)の順序、2分割された場合(本例において、二分木)には、L又はU(0)-R又はD(1)の順序を持つことができる。これは、各分割深さで定義できる。後述する例は、取得可能な符号化ブロックが制限的な場合を示す。
一例として、33aの最大符号化ブロックが64×64であり、最小符号化ブロックは16×16であり、四分木分割を使用すると仮定する。この場合、2-0、2-1、2-2ブロック(本例において、サイズ16×16)が最小符号化ブロックのサイズと同じであるため、2-3-0、2-3-1、2-3-2、2-3-3ブロック(本例において、サイズ8×8)のような、より小さいブロックに分割されなくてもよい。この場合、2-0、2-1、2-2、2-3ブロックでは、取得可能なブロックは16×16ブロック、すなわち一つの候補群を持つため、ブロック分割情報が生成されない。
一例として、33bの最大符号化ブロックが64×64であり、最小符号化ブロックは、横幅又は縦幅が8であり、許容可能な分割深さが3であると仮定する。この場合、1-0-1-1(本例において、サイズ16×16。分割深さは3)ブロックが最小符号化ブロック条件を満たすため、より小さいブロックに分割できる。しかし、許容可能な分割深さと同じであるため、さらに高い分割深さのブロック(本例において、1-0-1-0-0、1-0-1-0-1ブロック)に分割されなくてもよい。この場合、1-0-1-0、1-0-1-1ブロックでは、取得可能なブロックは16×8ブロック、すなわち一つの候補群を持つため、ブロック分割情報が生成されない。
上記例のように符号化/復号化の設定に応じて四分木分割を支援するか或いは二分木分割を支援することができる。又は、四分木分割と二分木分割とを混合して支援することもできる。例えば、ブロックサイズ、分割深さなどに応じて、前記方式のいずれか又はそれらの組み合わせを支援することができる。ブロックが第1ブロックの範囲に属する場合には四分木分割、第2ブロックの範囲に属する場合には二分木分割を支援することができる。複数の分割方式が支援される場合、各方式による最大符号化ブロックのサイズ、最小符号化ブロックのサイズ、許容可能な分割深さなどの少なくとも一つの設定を持つことができる。上記の範囲は、互いの範囲がオーバーラップして設定されてもよく、そうでなくてもよい。又は、いずれかの範囲が別の範囲を含む設定も可能である。これに対する設定は、スライスタイプ、符号化モード、カラー成分などの個別的又は混合的な要素に応じて決定できる。
一例として、スライスタイプに応じて分割設定が決定できる。Iスライスの場合に支援される分割設定は、四分木の場合には128×128~32×32の範囲における分割を支援し、二分木の場合には32×32~8×8の範囲での分割を支援することができる。P/Bスライスの場合に支援されるブロック分割設定は、四分木の場合には128×128~32×32の範囲における分割を支援し、二分木の場合には64×64~8×8の範囲における分割を支援することができる。
一例として、符号化モードに応じて分割設定が決定できる。符号化モードがIntraである場合に支援される分割設定は、二分木の場合には64×64~8×8の範囲における分割と許容可能な分割深さ2を支援することができる。符号化モードがInterである場合に支援される分割設定は、二分木の場合には32×32~8×8の範囲における分割と許容可能な分割深さ3を支援することができる。
一例として、カラー成分に応じて分割設定が決定できる。カラー成分が輝度成分であれば、四分木の場合には256×256~64×64の範囲における分割を支援し、二分木の場合には64×64~16×16の範囲における分割を支援することができる。カラー成分が色差成分であれば、四分木の場合には輝度成分と同じ設定(本例において、色差フォーマットに応じて各ブロックの長さが比例する設定)を支援し、二分木の場合には64×64~4×4の範囲(本例において、これと同じ輝度成分での範囲は128×128~8×8である。4:2:0における仮定)における分割を支援することができる。
上記例は、ブロックの種類に応じて分割設定を異ならせる場合を説明した。また、一部ブロックの場合、他のブロックと結合して一つの分割過程を行うことができる。例えば、符号化ブロックと変換ブロックとが一つの単位に結合する場合、最適なブロックのサイズ及び形状を取得するための分割過程が行われる。これは、符号化ブロックの最適なサイズ及び形状だけでなく、変換ブロックの最適なサイズ及び形状であり得る。又は、符号化ブロックと変換ブロックとが一つの単位に結合することができ、予測ブロックと変換ブロックとが一つの単位に結合することができ、符号化ブロックと予測ブロックと変換ブロックとが一つの単位に結合することができ、その他のブロックの結合が可能である。
本発明において、各ブロックに個別的な分割設定を置く場合を中心に説明したが、複数の単位が一つに結合して一つの分割設定を持つ場合も可能である。
符号化器では上記の過程で発生する情報をシーケンス、ピクチャ、スライス、タイルなどの単位のうちの少なくとも一つの単位でビットストリームに収録し、復号化器では関連情報をビットストリームからパーシングする。
本発明において、予測部は画面内予測と画面間予測に分類することができ、画面内予測と画面間予測は次のとおり定義することができる。
画面内予測は、現在画像(例えば、ピクチャ、スライス、タイルなど)の符号化/復号化が完了した領域から予測値を生成する技術であり、画面間予測は、現在画像の前に少なくとも一つの符号化/復号化が完了した画像(例えば、ピクチャ、スライス、タイルなど)から予測値を生成する技術であり得る。
又は、画面内予測は、現在画像の符号化/復号化が完了した領域から予測値を生成する技術であり得るが、一部の予測方法{例えば、参照画像から予測値を生成する方法。ブロックマッチング(Block Matching)、テンプレートマッチング(Template Matching)など}は除く予測であり、画面間予測は、少なくとも一つの符号化/復号化が完了した画像から予測値を生成する技術であり、前記符号化/復号化が完了した画像は現在画像を含んで構成できる。
符号化/復号化の設定に応じて前記定義のいずれかに従うことができ、後述する例では、2番目の定義に従うことを仮定して説明する。また、予測値は空間領域で予測を介して取得される値であると仮定して説明するが、これに限定されない。
次に、本発明における予測部の画面間予測について説明する。
本発明の一実施形態に係る画像符号化方法において、画面間予測は次のとおり構成できる。予測部の画面間予測は、参照ピクチャ構成段階、動き推定段階、動き補償段階、動き情報決定段階及び動き情報符号化段階を含むことができる。また、画像符号化装置は、参照ピクチャ構成段階、動き推定段階、動き補償段階、動き情報決定段階及び動き情報符号化段階を実現する参照ピクチャ構成部、動き推定部、動き補償部、動き情報決定部及び動き情報符号化部を含むように構成することができる。前述した過程の一部は省略されてもよく、他の過程が追加されてもよく、前記記載された段階ではなく他の順序に変更されてもよい。
図34は画面間予測を介して予測ブロックを取得する様々な場合を示す例示図である。
図34を参照すると、単方向予測は、以前に符号化された参照ピクチャT-1、T-2から予測ブロックAを取得することができるか、或いは以後に符号化された参照ピクチャT+1、T+2から予測ブロックBを取得することができる。双方向予測は、以前に符号化された複数の参照ピクチャT-2乃至T+2から予測ブロックC、Dを生成することができる。一般に、P画像タイプは単方向を支援し、B画像タイプは双方向予測を支援することができる。
上記例のように現在ピクチャの符号化/復号化に参照されるピクチャは、メモリから取得することができ、現在ピクチャTを基準に、時間順序又はディスプレイ順序(Display Order)が現在ピクチャ以前の参照ピクチャと以後の参照ピクチャを含んで参照ピクチャリストを構成することができる。
現在画像を基準に以前又は以後の画像だけでなく、現在画像で画面間予測Eを行うことができる。現在画像で画面間予測を行うことを無方向予測(Non-directional Prediction)と呼ぶことができる。これは、I画像タイプで支援されるか或いはP/B画像タイプで支援され、符号化/復号化の設定に応じて支援される画像タイプが決定され得る。現在画像で画面間予測を行うことは、空間的相関性を用いて予測ブロックを生成することであり、時間的相関性を用いるための目的で他の画像で画面間予測を行うことが異なるばかりで、予測方法(例えば、参照画像、動きベクトルなど)は同一であり得る。
参照ピクチャ構成部では、参照ピクチャリストを介して現在ピクチャの符号化に使用される参照ピクチャを構成し、管理することができる。符号化/復号化の設定(例えば、画像タイプ、予測方向など)に応じて、少なくとも一つの参照ピクチャリストを構成することができ、参照ピクチャリストに含まれている参照ピクチャから予測ブロックを生成することができる。例えば、単方向予測の場合、参照ピクチャリスト0(L0)又は参照ピクチャリスト1(L1)に含まれている少なくとも一つの参照ピクチャで画面間予測を行うことができる。また、双方向予測の場合、L0とL1とを結合して生成される複合リストLCに含まれている少なくとも一つの参照ピクチャで画面間予測を行うことができる。
一般に、符号化するピクチャに対する最適な参照ピクチャを符号化器で決定し、該当参照ピクチャに対する情報を復号化器へ明示的に伝送する方法を使用することができる。このため、参照ピクチャ構成部は、現在ピクチャの画面間予測に参照されるピクチャリストに対する管理を行うことができ、制限的なメモリの大きさを考慮して参照ピクチャを管理するための規則を設定することができる。
前記伝送される情報をRPS(Reference Picture Set)と定義することができ、RPSに選択されたピクチャは参照ピクチャとして区分されてメモリ(又はDPB)に保存され、RPSに選択されていないピクチャは非参照ピクチャとして区分されて一定時間後にメモリから除去され得る。メモリには所定の数のピクチャ(例えば、HEVCは16個のピクチャ)を保存することができ、レベルと画像の解像度に応じてメモリの大きさが設定できる。
図35は本発明の一実施形態に係る参照ピクチャリストを構成する例示図である。
図35を参照すると、一般に、現在ピクチャの以前に存在する参照ピクチャT-1、T-2はL0に割り当てられ、現在ピクチャの以後に存在する参照ピクチャT+1、T+2はL1に割り当てられて管理できる。L0を構成するとき、L0の参照ピクチャ許容個数まで充填できない場合にはL1の参照ピクチャを割り当てることができる。これと同様に、L1を構成するとき、L1の参照ピクチャ許容個数まで充填できない場合にはL0の参照ピクチャを割り当てることができる。
また、現在ピクチャを少なくとも一つの参照ピクチャリストに含むことができる。例えば、L0又はL1に現在ピクチャを含むことができ、現在ピクチャ以前の参照ピクチャに、時間的順序がTである参照ピクチャ(又は現在ピクチャ)を追加してL0を構成することができ、現在ピクチャ以後の参照ピクチャに、時間的順序がTである参照ピクチャを追加してL1を構成することができる。
参照ピクチャリストの構成は、符号化/復号化の設定に応じて決定できる。例えば、現在ピクチャを参照してピクチャリストに含まないか、或いは少なくとも一つの参照ピクチャリストに含むことができる。これは、現在ピクチャを参照ピクチャリストに含むかどうかを指示する信号(又は現在ピクチャでブロックマッチングなどの方法を許容する信号)によって決定できる。前記信号はシーケンス、ピクチャ、スライス、タイルなどの単位で支援できる。
また、現在ピクチャは、図35に示すように、参照ピクチャリストの最初又は最後の順番に位置することができ、符号化/復号化の設定(例えば、画像のタイプ情報など)に応じてリスト内の配置順序が決定できる。例えば、Iタイプの場合には最初に位置することができ、P/Bタイプの場合には最後に位置することができ、これに限定されず、他の変形の例が可能である。
参照ピクチャ構成部は参照ピクチャ補間部を含むことができ、画面間予測の補間精度に応じて少数単位の画素のための補間過程を行うかどうかが決定できる。例えば、整数単位の補間精度を有する場合には参照ピクチャ補間過程を省略し、少数単位の補間精度を有する場合には参照ピクチャ補間過程を行うことができる。
参照ピクチャ補間過程に使用される補間フィルタの場合は、符号化/復号化の設定に応じて決定でき、所定の一つの補間フィルタ{例えば、DCT-IF(Discrete Cosine Transform Based Interpolation Filter)など}が使用できるか、或いは複数の補間フィルタのいずれかが使用できる。前者の場合は、補間フィルタに対する選択情報が暗示的に省略でき、後者の場合は、補間フィルタの選択情報がシーケンス、ピクチャ、スライス、タイルなどの単位で含まれ得る。
補間精度は、符号化/復号化の設定に応じて決定でき、整数単位と少数単位(例えば、1/2、1/4、1/8、1/16、1/32など)のうちのいずれかの精度であり得る。所定の一つの補間精度に応じて補間過程が行われ得るか、或いは複数の補間精度のうちのいずれかの精度に応じて補間過程が行われ得る。
また、画面間予測方法(例えば、動き予測方法、動きモデルなど)に応じて、固定的な補間精度又は適応的な補間精度を支援することができる。例えば、移動動きモデルに対する補間精度と移動外の動きモデルに対する補間精度とは同一でも異なってもよい。これは、符号化/復号化の設定に応じて決定できる。補間精度関連情報は、暗示的に決定できるか或いは明示的に生成でき、シーケンス、ピクチャ、スライス、タイル、ブロックなどの単位で含まれ得る。
動き推定部は、現在ブロックがどんな参照ピクチャのどのブロックと高い相関性を持つかを推定(又は探索)する過程を意味する。予測が行われる現在ブロックのサイズ及び形状(M×N)は、ブロック分割部から取得でき、画面間予測のために4×4乃至128×128の範囲で支援されるという仮定の下で説明する。画面間予測は、予測ブロック単位で行われるのが一般的であるが、ブロック分割部の設定に応じて符号化ブロック、変換ブロックなどの単位で行われ得る。動き推定範囲で推定を行い、少なくとも一つの動き推定方法を使用することができる。動き推定方法で画素単位の推定順序及び条件などを定義することができる。
動き推定は、動き予測方法に応じて適応的に行われ得る。動き推定を行う領域は、ブロックマッチングの場合には現在ブロックであり、テンプレートマッチングの場合には現在ブロックに隣接した符号化済みのブロック(例えば、左、上、左上、右上、左下ブロックなど)の一部の領域からなるテンプレートであり得る。ブロックマッチングの場合には動き情報を明示的に生成する方法であり、テンプレートマッチングの場合には動き情報を暗示的に取得する方法であり得る。
この時、テンプレートマッチングは、追加的な動き予測方法の支援を指示する信号によって提供でき、前記信号は、シーケンス、ピクチャ、スライス、タイルなどの単位で含まれ得る。また、テンプレートマッチングの支援範囲は、ブロックマッチングと同一の範囲(例えば、4×4~128×128)であるか、或いは同じでないか制限的な範囲(例えば、4×4~32×32)であり、符号化/復号化の設定(例えば、画像タイプ、カラー成分、画像の種類など)に応じて決定できる。複数の動き予測方法が支援される場合には、動き予測方法選択情報が生成できる。これはブロック単位で含むことができる。
また、動き推定は、動きモデル(Motion Model)に応じて適応的に行われ得る。平行移動のみを考慮する移動動きモデルの他に追加的な動きモデルを用いて動き推定、補償を行うことができる。例えば、平行移動だけでなく、回転、遠近、ズームイン/アウト(Zoom-in/out)などの動きを考慮する動きモデルを用いて動き推定、補償を行うことができる。これは、画像の地域的特性に応じて発生する上記の様々な種類の動きを反映して予測ブロックを生成することにより、符号化性能を向上させるために支援できる。
本発明では、Affine動きモデルを移動外の動きモデルと仮定して説明するが、これに限定されず、他の変形の例も可能である。この時、移動外の動きモデルは、追加的な動きモデルの支援を指示する信号によって提供でき、前記信号は、シーケンス、ピクチャ、スライス、タイルなどの単位で含まれ得る。また、移動外の動きモデルの支援範囲は、移動動きモデルと同じ範囲(例えば、4×4~128×128)であるか、或いは同じでないか制限的な範囲(例えば、4×4~32×32)であり、符号化/復号化の設定(例えば、画像タイプ、カラー成分、画像の種類など)に応じて決定できる。複数の動きモデルが支援される場合には、動きモデル選択情報が生成できる。これはブロック単位で含むことができる。
図36は本発明の一実施形態に係る移動外の動きモデルを示す概念図である。
図36を参照すると、移動動きモデルの場合には動きベクトルV0を用いて動き情報を示すのに対し、移動外の動きモデルの場合にはV0に追加的な動き情報が必要である。本例では、一つの追加動きベクトルV1を用いて移動外の動きモデルの動き情報を示す場合を説明するが、その他の構成(例えば、複数の動きベクトル、回転角度情報、スケール情報など)も可能である。
移動動きモデルの場合、現在ブロックに含まれる画素の動きベクトルは同一であり、ブロック単位の一括的な動きベクトルを持つことができる。これを代表する一つの動きベクトルV0を用いて動き推定、補償を行うことができる。
移動外の動きモデルの場合、現在ブロックに含まれる画素の動きベクトルは同じでなくてもよく、画素単位の個別的な動きベクトルを持つことができる。この場合、多くの動きベクトルが求められるので、現在ブロックに含まれる画素の動きベクトルを代表する複数の動きベクトルV0、V1を用いて動き推定、補償を行うことができる。すなわち、前記複数の動きベクトルを用いて現在ブロック内のサブブロック単位又は画素単位の動きベクトルを誘導(又は取得)することができる。
例えば、現在ブロック内のサブブロック又は画素単位の動きベクトル{本例において、(Vx、Vy)}はVx=(V1x-V0x)×x/M-(V1y-V0y)×y/N+V0x、Vy=(V1y-V0y)×x/M+(V1x-V0x)×y/N+V0yによる数式で導出できる。前記数式において、V0{本例において、(V0x、V0y)}は現在ブロックの左上の動きベクトルを意味し、V1{本例において、(V1x、V1y)}は現在ブロックの右上の動きベクトルを意味する。複雑さを考慮して、移動外の動きモデルの動き推定、補償はサブブロック単位で行うことができる。
図37は本発明の一実施形態に係るサブブロック単位の動き推定を示す例示図である。
図37を参照すると、現在ブロックの動き情報を表現する複数の動きベクトルV0、V1から現在ブロック内のサブブロックの動きベクトルを誘導することができ、サブブロック単位で動き推定、補償を行うことができる。この際、サブブロック(m×n)のサイズは符号化/復号化の設定に応じて決定できる。例えば、固定的な一つのサイズに設定することができ、現在ブロックのサイズに基づいて適応的なサイズに設定することができる。前記サブブロックのサイズは4×4乃至16×16の範囲で支援できる。
一般に、動き推定部は、符号化装置に存在する構成であり得るが、予測方式(例えば、テンプレートマッチングなど)に応じて復号化装置にも含まれる構成であり得る。例えば、テンプレートマッチングの場合、復号化器で現在ブロックの隣接したテンプレートを介して動き推定を行って現在ブロックの動き情報を取得することができるからである。このとき、動き推定関連情報(例えば、動き推定範囲、動き推定方法、テンプレート構成情報など)は、暗示的に決定できるか明示的に生成されることにより、シーケンス、ピクチャ、スライス、タイルなどの単位に含まれ得る。
動き補償部は、動き推定過程を介して決定された一部参照ピクチャの一部ブロックのデータを現在ブロックの予測ブロックとして取得するための過程を意味する。詳細には、動き推定過程を介して取得された動き情報(例えば、参照ピクチャ情報、動きベクトル情報など)に基づいて、参照ピクチャリストに含まれている少なくとも一つの参照ピクチャの少なくとも一つの領域(又はブロック)から現在ブロックの予測ブロックを生成することができる。
動き情報決定部で現在ブロックの最適な動き情報を選定するための過程が行われ得る。一般に、ブロックの歪み{例えば、現在ブロックと復元ブロックの歪み(Distortion)。SAD(Sum of Absolute Difference)、SSD(Sum of Square Difference)など}と該当動き情報による発生ビット量が考慮されるレート-歪み(Rate-Distortion)技法を利用して、符号化コストの面で最適な動き情報を決定することができる。前記過程を経て決定される動き情報に基づいて生成される予測ブロックを減算部と加算部へ送信することができる。また、一部の予測方式(例えば、テンプレートマッチングなど)に応じて復号化装置にも含まれる構成であり得る。この場合、ブロックの歪みに基づいて決定できる。
動き情報符号化部で、前記動き情報決定過程を介して取得された現在ブロックの動き情報を符号化することができる。このとき、動き情報は、現在ブロックの予測ブロックのために参照した画像と領域に対する情報で構成できる。詳細には、当該画像に対する情報(例えば、参照画像情報など)と該当領域に対する情報(例えば、動きベクトル情報など)で構成できる。
また、画面間予測関連設定情報(例えば、動き予測方法、動きモデルの選択情報など)も、現在ブロックの動き情報に含まれて構成できる。前記画面間予測関連設定に基づいて、前記参照画像と領域に対する情報(例えば、動きベクトル個数など)の構成が決定できる。
参照画像情報は、参照ピクチャリスト、参照ピクチャインデックスなどで表現することができ、使用する参照ピクチャリストに対する情報とそれによる参照ピクチャインデックスに対する情報を符号化することができる。参照領域情報は、動きベクトルなどで表現することができ、各成分(例えば、xとy)のベクトル絶対値と符号情報を符号化することができる。
また、参照画像と参照領域に対する情報を一つの組み合わせとして構成して動き情報を符号化することができ、参照画像と参照領域に対する情報の組み合わせを動き情報符号化モードとして構成することができる。このとき、参照画像と参照領域情報は、隣接ブロック又は所定の値(例えば、0<Zero>ベクトル)から取得することができ、隣接ブロックは、空間的又は時間的に隣接した少なくとも一つのブロックであり得る。例えば、隣接ブロックの動き情報又は参照ピクチャ情報を用いて現在ブロックの動き情報を符号化することができ、隣接ブロックの動き情報又は参照ピクチャ情報から誘導される情報(又は中央値、変換過程などを経た情報)を用いて、現在ブロックの動き情報を符号化することができる。すなわち、現在ブロックの動き情報を隣接ブロックから予測して、それに関する情報を符号化することができる。
本発明では、現在ブロックの動き情報に関する複数の動き情報符号化モードを支援し、動き情報符号化モードは、スキップモード(Skip Mode)、マージモード(Merge Mode)及び競争モード(Competition Mode)のうちのいずれかの方法を用いて動き情報を符号化することができる。
前記動き情報符号化モードは、参照画像と参照領域に対する情報の組み合わせについての設定によって区分することができる。
スキップモードとマージモードは、少なくとも一つの候補ブロック(又はスキップモード候補群、マージモード候補群)から現在ブロックの動き情報を取得することができる。すなわち、候補ブロックから参照画像又は参照領域に対する予測情報を取得することができ、それに対する差分情報は生成しない。スキップモードは、残差信号が0である場合に適用されるモードであり、マージモードは、残差信号が0でない場合に適用されるモードであり得る。
競争モードは、少なくとも一つの候補ブロック(又は競争モード候補群)から現在ブロックの動き情報を取得することができる。すなわち、候補ブロックから参照画像又は参照領域に対する予測情報を取得することができ、それに対する差分情報は生成することができる。
前記モードの候補群は適応的に構成できる。例えば、スキップモードとマージモードは同じ構成を有し、競争モードは同じでない構成を有することができる。前記モード候補群の個数も適応的に決定できる。例えば、スキップモードとマージモードはa個、競争モードはb個の候補群を置くことができる。また、各モードの候補群の個数が一つである場合には、候補選択情報は省略でき、複数の候補群が支援される場合には、候補選択情報が生成できる。
前記方法のいずれかで決定された方式に応じて、動き情報を符号化することができる。動き情報符号化モードがスキップモード又はマージモードである場合には、マージ動き符号化過程を行う。動き情報符号化モードが競争モードである場合には、競争動き符号化過程を行う。
まとめると、マージ動き符号化過程は、参照画像又は参照領域に対する予測情報を取得することができ、取得された予測情報を現在ブロックの動き情報に符号化することができる。また、競争動き符号化過程は、参照画像又は参照領域に対する予測情報を取得することができ、取得された予測情報と現在ブロックの動き情報との差分情報(例えば、mv-mvp=mvd。mvは現在動き情報、mvpは予測動き情報、mvdは差分動き情報)を現在ブロックの動き情報に符号化することができる。前者の場合は、動き情報符号化モードに応じて残差信号を符号化してもよく符号化しなくてもよい。
符号化/復号化の設定(例えば、画像タイプ、カラー成分など)に基づいて、各動き情報符号化モーが支援されるブロックの範囲は同一でも同一でなくてもよい。
図38は本発明の一実施形態に係る現在ブロックの動き情報予測に参照されるブロックを示す例示図である。
図38を参照すると、空間的に隣接したブロックの動き情報が現在ブロックの動き情報予測候補群に含まれ得る。詳細には、現在ブロックを中心に左、上、左上、右上、左下ブロック(図38のcurrentでTL、T、TR、L、BLなど)の動き情報が候補群に含まれ得る。
また、時間的に隣接したブロックの動き情報が候補群に含まれ得る。詳細には、時間的候補群の構成に使用されるピクチャで現在ブロックと同じブロックを中心に左、左上、上、右上、右、右下、下、左下ブロック(図38のTL、T、TR、L、R、BL、B、BR)の動き情報と同じブロックの動き情報Colが候補群に含まれ得る。
また、空間的に隣接したブロックの複数の動き情報を介して取得される動き情報、時間的に隣接したブロックの複数の動き情報を介して取得される動き情報、空間的に隣接したブロックの少なくとも一つの動き情報と時間的に隣接したブロックの少なくとも一つの動き情報を介して取得される動き情報が候補群に含まれ得る。候補群に含まれる動き情報は、前記複数の動き情報の平均値、中央値などの方法を用いて取得できる。
前記動き情報は、所定の優先順位(例えば、空間的候補、時間的候補、その他の候補などの順序)に基づいて現在ブロックの動き情報予測候補群に含まれ得る。動き情報予測候補群の設定は、動き情報符号化モードに応じて決定され得る。
この時、前記優先順位に基づく動き情報予測候補群の構成過程で、各ブロックの動き情報予測使用可能性(Availability)を確認して、使用可能な動き情報と使用不可能な動き情報を分類することができる。使用可能な動き情報は前記候補群に含むことができ、使用不可能な動き情報は前記候補群に含むことができない。
また、画面間予測関連設定に応じて、動き情報符号化モードに対する設定が決定できる。例えば、テンプレートマッチングの場合、動き情報符号化モードを支援せず、移動外の動きモデルの場合、各動き情報符号化モードで動きベクトルによるモード候補群を異ならせて支援することができる。
図39は本発明の一実施形態に係る移動外の動きモデルで現在ブロックの動き情報予測に参照されるブロックを示す例示図である。
移動外の動きモデルの場合、複数の動きベクトルを用いて動き情報を表現することができ、移動動きモデルの動き情報予測候補群の構成とは異なる設定を持つことができる。例えば、図36のように左上の動きベクトルV0と右上の動きベクトルV1に対する個別動き情報予測候補群(例えば、第1動き情報予測候補群、第2動き情報予測候補群)を支援することができる。
図39を参照すると、V0、V1の場合、空間的に隣接したブロックの動き情報が現在ブロックの第1、第2動き情報予測候補群に含まれ得る。
例えば、第1動き情報予測候補群には、左、上、左上ブロック(図39におけるLn、Tw、TLなど)の動き情報を含むことができ、第2動き情報予測候補群には、上、右上ブロック(図39におけるTe、TRなど)の動き情報を含むことができる。又は、時間的に隣接したブロックの動き情報が前記候補群に含まれ得る。
移動外の動きモデルの場合、動き情報符号化モードに応じて、動き情報予測候補群を異ならせて構成することができる。
前述した例は、競争モードで移動外の動きモデルを介して明示的に生成される動きベクトルの個数に合わせて動き情報予測過程が行われるのに対し、マージモード又はスキップモードでは動き情報符号化モードフラグ情報によって暗示的に動きベクトル情報が決定されるので、異なる個数の動き情報予測過程が行われ得る。
例えば、左上側の動きベクトルと右上側の動きベクトルに追加的に左下側の動きベクトルに対する動き情報予測候補群の構成を置くことができる。この場合、左下側の動きベクトルのための動き情報予測候補群には、左、左下ブロックの動き情報を含むことができる。
前記複数の動き情報予測候補群の構成を介して、マージ動き符号化過程を行うことができる。
上記例は、移動外の動きモデルの動き情報候補群構成の一例に過ぎず、上記例に限定されず、他の構成及び変形の例が可能である。
動き情報符号化部を介して生成される動き関連情報は、符号化部へ伝送されてビットストリームに収録できる。
本発明の一実施形態に係る画像復号化方法において、画面間予測は次のとおり構成できる。予測部の画面間予測は、動き情報復号化段階と、参照ピクチャ構成段階と、動き補償段階とを含むことができる。また、画像復号化装置は、動き情報復号化段階と、参照ピクチャ構成段階と、動き補償段階とを実現する動き情報復号化部、参照ピクチャ構成部、動き補償部を含むように構成することができる。前述した過程の一部は省略されてもよく、他の過程が追加されてもよく、前記記載された順序ではなく他の順序に変更されてもよい。また、符号化器と重複する説明は省略する。
動き情報復号化部では、復号化部から動き情報を受信して現在ブロックの動き情報を復元することができる。前記動き情報は、予測ブロック生成のために参照される画像と領域に対する動きベクトル、参照ピクチャリスト、参照ピクチャインデックスなどの情報から復元することができる。また、前記参照画像と参照領域に対する情報を動き情報符号化モードから復元することができる。また、画面間予測関連設定情報を復元することができる。
参照ピクチャ構成部は、符号化器の参照ピクチャ構成部と同様の方法で参照ピクチャを構成することができ、これについての詳細な説明は省略する。
動き補償部は、符号化器の動き補償部と同様の方法で動き補償を行うことができ、これについての詳細な説明は省略する。この過程を介して生成される予測ブロックは加算部へ送信することができる。
以下、本発明の一実施形態に係る画面間予測について詳細に説明する。後述する例では符号化器を中心に説明する。
画像のサイズ調整過程で予測段階又は予測実行前にサイズ調整が行われ得る。画面間予測の場合、参照ピクチャのサイズ調整を行うことができる。又は、画像のサイズ調整過程で符号化/復号化の初期段階にサイズ調整を行うことができ、画面間予測の場合、符号化ピクチャのサイズ調整を行うことができる。
例えば、参照ピクチャ(基本サイズ)を拡張する場合、現在符号化ピクチャの参照ピクチャ(拡張サイズ)として使用することができる。又は、符号化ピクチャ(基本サイズ)を拡張する場合、符号化の完了後にメモリに保存(拡張サイズ)することができ、他の符号化ピクチャの参照ピクチャ(拡張サイズ)として使用することができる。又は、符号化ピクチャ(基本サイズ)を拡張する場合、符号化の完了後に縮小してメモリに保存(基本サイズ)することができ、参照ピクチャ拡張過程を経て他の符号化ピクチャの参照ピクチャ(拡張サイズ)として使用することができる。
上記例などのさまざまな場合を介してサイズ調整される画像を用いる360度画像の画面間予測について後述する。
図40は本発明の一実施形態に係る拡張されたピクチャを用いて画面間予測を行う例示図である。360度画像のCMP投影フォーマットでの画面間予測を示す。
図40を参照すると、画像は、参照ピクチャを意味し、画面間予測を介して符号化ピクチャの現在ブロック(図示せず)から取得される予測ブロック(図40のV乃至Z。2M×2Nのサイズ)の例を示す。図40の既存の領域はS’0,0乃至S’2,1であり、拡張された領域はE1乃至E14であり得る。本例は27cのようにサイズ調整する一例であり、サイズ調整値は上、下、左、右方向にb、d、a、cだけ拡張され、ブロック分割部から取得される予測ブロックのサイズ(2M×2N)に拡張される場合を仮定して説明する。
ピクチャのサイズ調整のために、一部のデータ処理方法(例えば、画像の一部領域を変換して充填する方法)を用いる場合を仮定して説明する。また、S’0,0+S’1,0+S’2,0のグループ、S’0,1+S’1,1+S’2,2のグループが連続的であり得る。E8はS’2,1、E9はS’0,1からそれぞれ取得できる。表面間の連続性についての詳細な説明は図21、図24、図25から確認できる。
Vの場合、既存の領域S’0,0から予測ブロックとして取得できる。
Wの場合、複数の既存の領域S’1,0、S’2,0にかけて位置しており、前記複数の既存の領域は、連続性を持つ表面であるため、予測ブロックとして取得できる。又は、一部の既存の領域S’1,0に属するM×2N、一部の既存の領域S’2,0に属するM×2Nに分割でき、前記複数の既存の領域は、表面の境界を基準に歪んだ連続性の特性を持つため、サブ予測ブロックとして取得できる。
Xの場合、拡張された領域E8に位置しており、前記拡張された領域は、既存の領域S’0,1に相関性が高い領域S’2,1のデータを用いて取得された領域であるため、予測ブロックとして取得できる。画像のサイズ調整が行われない場合には、既存の領域S’2,1から予測ブロックとして取得できる。
Yの場合、複数の既存の領域S’1,0、S’1,1にかけて位置しており、前記複数の既存の領域は、連続性を持たない表面であるため、一部の既存の領域S’1,0に属する2M×N、一部の既存の領域S’1,1に属する2M×Nに分割され、サブ予測ブロックとして取得できる。
Zの場合、一部の既存の領域S’2,1と一部拡張された領域E9にかけて位置しており、前記拡張された領域は、前記既存の領域S’2,1との相関性が高い領域S’0,1のデータを用いて取得された領域であるため、予測ブロックとして取得できる。画像のサイズ調整が行われない場合には、一部の既存の領域S’2,1に属するM×2N、一部の既存の領域S’0,1に属するM×2Nに分割されてサブ予測ブロックとして取得できる。
上記例のように画像の外側境界を拡張(本例におけるデータ処理方法を使用することにより、既存の領域と拡張された領域との間の歪んだ連続性を除去した場合と仮定)して、X、Zのような予測ブロックを取得することにより、符号化性能を向上させることができる。しかし、連続性が存在しない画像内の表面境界によりYのようにサブブロックに分割されることにより、符号化性能を低下させることができる。また、画像内の連続性が存在するが、歪んた連続性を持つ表面境界によりWのように正確な予測ブロックを取得し難い場合も発生することがある。このため、画像の内側境界(例えば、表面間の境界)におけるサイズ調整が考慮できる。
図41は本発明の一実施形態に係る表面単位の拡張を示す概念図である。
図41のように表面単位の拡張を行って画面間予測の効率性を向上させることができ、本例では、27aのようにサイズ調整する一例であり得る。27aはサイズ調整される表面が一つのピクチャで構成されるのに対し、本例ではサイズ調整される表面が独立的なサブピクチャで構成される。本例において、拡張された表面単位を部分画像と称する。
部分画像は、既存の参照画像に一時的に使用されるか、或いは既存の参照画像の代わりに使用されるか、或いは既存の参照画像と一緒に継続的に使用され得る。後述する例では、既存の参照画像の代わりに使用される場合を中心に説明する。
画像(ピクチャ)での画面間予測の際に、現在ブロックの動きベクトルによって指定されるブロックから予測ブロックを取得することができる。
部分画像(表面)での画面間予測の際に、現在ブロックの動きベクトルによって指定されるブロックがどの部分の画像に属するかを確認して、該当する部分画像から予測ブロックを取得することができる。このとき、どの部分画像に属するかはピクチャで判断することができる。
以下、部分画像から予測ブロックを取得する様々な場合を説明する。この時、図40のV乃至Zを用いた様々な例示を説明し、図40は拡張していない画像(S_WidthxS_Height)である場合を仮定する。
一例として、一つの表面に属する場合(V)、該当表面に関連する部分画像f0から予測ブロックを取得することができる。
一例として、複数の表面に属する場合(W、Y)、さらに多くの画素を含む表面に関連する部分の画像(Wはf1又はf2、Yはf1又はf4)から予測ブロックを取得することができる。このとき、同じ個数の画素を含む場合には、所定の規則によってどの表面に属するかを決定することができる。
一例として、一つの表面に部分的に属する場合(Z)、該当表面に関連する部分画像f5から予測ブロックを取得することができる。
一例として、いずれの表面にも属しない場合(X)、隣接した表面に関連する部分画像f3から予測ブロックを取得することができる。
上記例は、部分画像を用いて画面間予測を行う一部の例示であり、上記例に限定されず、他の定義及び様々な変形の例が可能である。
図42は本発明の一実施形態に係る拡張された画像を用いて画面間予測を行う例示図である。
図42を参照すると、現在ブロック(図42のA乃至D)の画面間予測を行って参照ピクチャ(図42のRef0[1]、Ref0[0]、Ref1[0]、Ref1[1])から予測ブロック(図42のA’乃至D’、C”、D”)を取得する例を示す。又は、前記参照ピクチャの部分画像(図42のf0乃至f3)から予測ブロックを取得する例を示す。後述する例では、図40のような拡張された画像における画面間予測と部分画像における画面間予測を説明し、それぞれ第1方法乃至第2方法と称する。また、サイズ調整のために、一部のデータ処理方法(例えば、画像の一部領域を変換して充填する方法)を用いる場合を仮定して説明する。
Aの場合、第1方法では一部の参照ピクチャRef0[1]の基本領域から予測ブロックA’を取得することができ、第2方法では一部の参照ピクチャRef0[1]の一部部分画像f0から予測ブロックA’を取得することができる。
Bの場合、第1方法では一部の参照ピクチャRef1[1]の基本領域から予測ブロックB’を取得することができ、第2方法では一部の参照ピクチャRef1[1]の一部部分画像f0から予測ブロックB’を取得することができる。
Cの場合、第1方法では一部の参照ピクチャRef0[0]の複数の基本領域からサブ予測ブロック(C’を上下に分割した場合と仮定)を取得することができ、第2方法では一部の参照ピクチャRef0[0]の一部部分画像f2から予測ブロックC”を取得することができる。
Dの場合、第1方法では、一部の参照ピクチャRef1[0]の基本領域と拡張された領域から予測ブロックD’を取得することができ、第2方法では、一部の参照ピクチャRef1[0]の一部部分画像f3から予測ブロックD”を取得することができる。
上記例において、AとBの場合、既存の画像、拡張された画像、部分画像の画面間予測の結果は同一である。Dの場合は、拡張された画像及び部分画像の画面間予測結果は同一であり、既存の画像の画面間予測結果とは同一でない。Cの場合、既存の画像及び拡張された画像の画面間予測結果は同一であり、部分画像の画面間予測結果は同一でない。
まとめると、拡張された画像の画面間予測は、360度画像の特性を考慮して画像の境界の外側を拡張し、該当領域に相関性の高いデータを充填して画面間予測に使用することができるが、画像内の境界特性により予測の効率が低下することがある。部分画像の画面間予測は、前記問題点を考慮して画面間予測を行うことができるので、予測の効率が良くなり得る。
360度画像の場合、投影フォーマットに応じて複数の表面から構成でき、各表面はそれぞれの2次元平面座標系が定義できると前述した。このような特性は、360度画像で画面間予測の効率低下をもたらすことができる。
図42を参照すると、AはA’から予測ブロックを取得し、A’はAと同じ表面(ピクチャの左上側表面)に属するブロックであり得る。これは、AとA’が同じ表面の座標系を持つブロックを意味することができる。
それに対し、BはB’から予測ブロックを取得し、B’はBとは異なる表面(Bは右上側表面、B’は左上側表面)に属するブロックであり得る。これは、同じオブジェクトであっても、各表面の座標系特性により別の表面への動きが発生した場合であれば、該当表面内で既存の表面と比較して回転が発生して配置できる。上記の例において、一部動きモデル(移動動きモデル)を用いた正確な予測(又は大きいブロックサイズの動き補償)が難しいことがある。このために、移動外の動きモデルを用いる場合、予測の精度を向上させることができる。
次に、移動動きモデルと移動外の動きモデルを用いて画面間予測が行われる様々な場合を説明する。図42のA乃至Dブロックを対象に説明し、部分画像の画面間予測を用いる場合を仮定して説明する。
一例として、A、C、Dは、移動動きモデルを用いて、同じ表面(又は部分画像)に属する予測ブロックA’、C’、D’を取得することができる。又は、Bは移動動きモデルと移動外の動きモデルのうちのいずれかを使用し、異なる表面に属する予測ブロックB’を取得することができる。
一例として、A、C、Dは、移動動きモデルと移動外の動きモデルのうちのいずれかを用いて同じ表面に属する予測ブロックA’、C’、D’を取得することができる。又は、Bは、移動外の動きモデルを用いて、異なる表面に属する予測ブロックB’を取得することができる。
上記例は、現在ブロックと予測ブロックがそれぞれどの表面に属するかによって所定の一つの動きモデルを使用するか、或いは複数の動きモデルのうちのいずれかを使用する例であり得る。すなわち、前者の場合は動きモデル選択情報が暗示的に決定され、後者の場合は動きモデル選択情報が明示的に生成される例であり得る。
他の例として、A乃至Dの場合、移動動きモデルと移動外の動きモデルのうちのいずれかを用いて予測ブロックを取得することができる。A、C、Dは動きモデル選択情報に対する確率設定1に従い、Bは動きモデル選択情報に対する確率設定2に従うことができる。このとき、確率設定1は、移動動きモデルの選択確率が高い設定を持ち、確率設定2は、移動外の動きモデルの選択確率が高い設定を持つ例であり得る。
上記例は、複数の動きモデルを用いて画面間予測を行う一部の例示であり、上記例に限定されず、他の変形の例が可能である。
図43は本発明の一実施形態に係る拡張された参照ピクチャを用いて画面間予測を行う例示図である。360度画像のERP投影フォーマットにおける画面間予測を示す。
図43を参照すると、現在ブロック(図43のC1乃至C6ブロック)の画面間予測を行って参照ピクチャ(図43におけるT-1、T+1)から予測ブロック(図43のP1乃至P5、F1乃至F4ブロック)を取得する例を示す。
C1の場合、拡張された領域S2から予測ブロックP1を取得することができる。このとき、参照ピクチャが拡張されていない場合には、複数のサブブロックに分割して予測ブロックを取得することができる。
C2の場合、一部の拡張された領域S3から一時予測ブロックP2を取得し、一部の既存の領域U1から一時予測ブロックF1を取得することができ、前記一予測ブロックの重み付け和から予測ブロックを取得することができる。
C3、C4の場合、既存の領域S1、U2から予測ブロックP3、P4+F2を取得することができる。
C5の場合、拡張された領域U3から予測ブロックF3を取得することができる。このとき、参照ピクチャが拡張されていない場合には、ブロック分割なしに予測ブロックF3”を取得することができるが、前記予測ブロックを表現するための動き情報量(C5は画像の右側、F3は画像の右側、F3”は画像の左側に位置)が増加することができる。
C6の場合、一部の拡張された領域S2から一時予測ブロックP5を取得し、一部の拡張された領域U3から一時予測ブロックF4を取得することができ、前記一時予測ブロックの平均から予測ブロックを取得することができる。
図44は本発明の一実施形態に係る360度画像で画面間予測の動き情報予測候補群の構成を示す例示図である。
図44を参照すると、符号化ピクチャAにサイズ調整を行うことにより、拡張されたピクチャBを取得する例を示す。後述する例では、a乃至cブロックの動き情報予測候補群の構成に対する様々な場合を説明する。
aの場合、動き情報予測候補群にa0乃至a4ブロックの動き情報を含むことができる。又は、サイズ調整される領域の参照が制限される場合には、前記候補群にa3、a4ブロックの動き情報を含むことができる。
bの場合、動き情報予測候補群にb0乃至b4ブロックの動き情報を含むことができる。又は、現在ブロックの属する表面との連続性が存在しない表面に位置するブロックを除くb3、b4ブロックの動き情報を、前記候補群に含むことができる。また、時間的に隣接した現在ブロックと同じブロックを中心に継続性が存在しない同一表面に位置する左上、上、右上ブロックの動き情報を候補群から除外することができる。
cの場合、動き情報予測候補群にc0乃至c4ブロックの動き情報を含むことができる。又は、現在ブロックの属する表面との連続性が存在するが、別の表面に位置するブロックを除くc1、c2ブロックの動き情報を前記候補群に含むことができる。又は、現在表面の座標系特性に合わせて変換過程を経て取得されたc0、c3、c4ブロックの動き情報を含めて、c0乃至c4ブロックの動き情報を含むことができる。
上記例は、画面間予測に動き情報予測候補群の構成に対する様々な例を示す。上記例のように、符号化/復号化の設定に応じて動き情報予測候補群が決定でき、これに限定されず、他の構成及び変形の例が可能である。
本発明の一実施形態に係る360度画像の復号化方法は、360度画像が符号化されたビットストリームを受信する段階と、受信されたビットストリームから取得した構文情報を参照して、予測画像を生成する段階と、前記生成された予測画像を、前記ビットストリームを逆量子化及び逆変換して取得した残差画像と結合して、復号化された画像を取得する段階と、前記復号化された画像を投影フォーマットによる360度画像に再構成する段階とを含むことができる。
ここで、構文情報は、前記360度画像に対する投影フォーマット情報を含むことができる。
ここで、前記投影フォーマット情報は、前記360度画像を2次元平面に投影させたERP(Equi-Rectangular Projection)フォーマット、前記360度画像を立方体に投影させたCMP(CubeMap Projection)フォーマット、前記360度画像を八面体に投影させたOHP(OctaHedron Projection)フォーマット、及び前記360度画像を多面体に投影させたISP(IcoSahedral Projection)フォーマットのうちの少なくとも一つを指示する情報であり得る。
ここで、前記再構成する段階は、前記構文情報を参照して、地域別パッキング(regional packing)による配置情報を取得する段階と、前記配置情報に基づいて、前記復号化された画像の各ブロックを再配置する段階とを含むことができる。
ここで、前記予測画像を生成する段階は、前記ビットストリームを復元して取得した参照画像(reference picture)に対して画像拡張を行う段階と、画像の拡張が行われた参照画像を参照して、予測画像を生成する段階とを含むことができる。
ここで、前記画像拡張を行う段階は、前記参照画像の分割単位を基礎として画像拡張を行う段階を含むことができる。
ここで、前記分割単位を基礎として画像拡張を行う段階は、前記分割単位の境界画素を用いて、前記分割単位ごとに個別に拡張された領域を生成することができる。
ここで、前記拡張された領域は、拡張する分割単位に空間的に隣接した分割単位の境界画素、又は拡張する分割単位との画像連続性がある分割単位の境界画素を用いて生成できる。
ここで、前記分割単位を基礎として画像拡張を行う段階は、前記分割単位のうち、空間的に隣接した二つ以上の分割単位が結合した領域の境界画素を用いて、前記結合した領域に対して、拡張された画像を生成することができる。
ここで、前記分割単位を基礎として画像拡張を行う段階は、前記分割単位のうち、空間的に隣接した分割単位の隣接画素情報をすべて用いて、前記隣接した分割単位同士の間に、拡張された領域を生成することができる。
ここで、前記分割単位を基礎として画像拡張を行う段階は、前記空間的に隣接した分割単位それぞれの隣接画素の平均値を用いて、前記拡張された領域を生成することができる。
ここで、前記予測画像を生成する段階は、前記構文情報に含まれている動き情報から復号化する現在ブロックに隣接したブロックの動きベクトルを含む動きベクトル候補群を取得する段階と、前記動き情報から抽出した選択情報に基づいて動きベクトル候補群の中から予測動きベクトルを導出する段階と、前記予測動きベクトルを前記動き情報から抽出した差分動きベクトルと加算して導出された最終動きベクトルを用いて、復号化する現在ブロックの予測ブロックを決定する段階とを含むことができる。
ここで、前記動きベクトル候補群は、前記現在ブロックに隣接したブロックが前記現在ブロックの属する表面と異なる場合には、前記隣接したブロックの中から、前記現在ブロックの属する表面との画像連続性がある表面に属するブロックに対する動きベクトルのみで構成できる。
ここで、前記隣接したブロックは、前記現在ブロックの左上、上、右上、左及び左下のうちの少なくとも一つの方向に隣接したブロックを意味することができる。
ここで、前記最終動きベクトルは、前記現在ブロックを基準に、少なくとも一つの参照ピクチャ内に属し、前記投影フォーマットによる表面間の画像連続性がある領域に設定される参照領域を指示することができる。
ここで、前記参照ピクチャは、上、下、左、右方向に前記投影フォーマットによる画像連続性に基づいて拡張された後、前記参照領域が設定できる。
ここで、前記参照ピクチャは前記表面単位で拡張され、前記参照領域は前記表面境界にかけて設定できる。
ここで、前記動き情報は、前記参照ピクチャの属する参照ピクチャリスト、前記参照ピクチャのインデックス、及び前記参照領域を指示する動きベクトルのうちの少なくとも一つを含むことができる。
ここで、前記現在ブロックの予測ブロックを生成する段階は、前記現在ブロックを複数のサブブロックに分割し、分割された複数のサブブロックそれぞれに対する予測ブロックを生成する段階を含むことができる。
本発明に係る方法は、様々なコンピュータ手段を介して実行できるプログラム命令の形で実現され、コンピュータ可読媒体に記録できる。コンピュータ可読媒体は、プログラム命令、データファイル、データ構造などを単独で又は組み合わせて含むことができる。コンピュータ可読媒体に記録されるプログラム命令は、本発明のために特別に設計され構成されたもの、又はコンピュータソフトウェア分野の当業者に公知されて使用可能なものである。
コンピュータ可読媒体の例には、ROM、RAM、フラッシュメモリ(flash memory)などのようにプログラム命令を保存及び実行するように特別に構成されたハードウェア装置が含まれ得る。プログラム命令の例には、コンパイラ(compiler)によって作られるような機械語コードだけでなく、インタプリタ(interpreter)などを用いて、コンピュータによって実行できる高級言語コードを含むことができる。上述したハードウェア装置は、本発明の動作を行うために少なくとも一つのソフトウェアモジュールとして作動するように構成でき、その逆も同様である。
また、上述した方法又は装置は、その構成や機能の全部又は一部が結合されて実現されてもよく、分離されて実現されてもよい。
以上、本発明の好適な実施形態を参照して説明したが、当該技術分野の熟練した当業者であれば、下記の特許請求の範囲に記載された本発明の思想及び領域から逸脱することなく、本発明に多様に修正及び変更を加え得ることを理解することができるだろう。