(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022016726
(43)【公開日】2022-01-25
(54)【発明の名称】画像処理装置および方法
(51)【国際特許分類】
H04N 19/70 20140101AFI20220118BHJP
H04N 19/129 20140101ALI20220118BHJP
H04N 19/136 20140101ALI20220118BHJP
H04N 19/176 20140101ALI20220118BHJP
【FI】
H04N19/70
H04N19/129
H04N19/136
H04N19/176
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2018215827
(22)【出願日】2018-11-16
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
(72)【発明者】
【氏名】金 鐘大
(72)【発明者】
【氏名】工藤 朝明
(72)【発明者】
【氏名】池田 優
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159ME11
5C159PP04
5C159RC11
5C159RC40
5C159SS26
5C159TA42
5C159TB08
5C159TC26
5C159UA02
5C159UA05
5C159UA16
(57)【要約】 (修正有)
【課題】符号化効率の低減を抑制することができるようにする画像処理装置および方法を提供する。
【解決手段】画像処理装置である符号化装置170は、入力される符号化情報から、処理対象ブロックのブロックサイズを示す情報と有効変換係数領域情報を抽出し、これらの情報に基づいて、処理対象ブロック内の有効変換係数領域の範囲を特定し、処理対象ブロックの画像の係数データのスキャン順を制御するスキャン制御部171と、スキャン制御部171により制御されたスキャン順で、処理対象ブロックのブロックサイズを示す情報と有効変換係数領域の範囲を示す情報とに基づいて、無効変換係数領域の係数データの符号化をスキップし、有効変換係数領域の係数データを符号化する符号化部172と、を備える。
【選択図】
図17
【特許請求の範囲】
【請求項1】
画像に関する係数データの、無効変換係数領域の符号化をスキップし、有効変換係数領域を符号化する符号化部
を備える画像処理装置。
【請求項2】
前記係数データは、有効変換係数の有無をサブブロック毎に示す有効変換係数フラグ情報を含み、
前記符号化部は、前記無効変換係数領域内の前記有効変換係数フラグ情報の符号化をスキップし、前記有効変換係数領域内の前記有効変換係数フラグ情報を符号化する
請求項1に記載の画像処理装置。
【請求項3】
前記係数データは、0ではない値を有する有効変換係数の有無をサブブロック毎に示す有効性フラグ情報、並びに、各有効変換係数の符号および絶対値をさらに含み、
前記符号化部は、前記有効変換係数フラグ情報を符号化したサブブロックの前記有効性フラグ情報を符号化し、前記有効性フラグ情報が真であるサブブロックの、各有効変換係数の符号および絶対値を符号化する
請求項2に記載の画像処理装置。
【請求項4】
前記符号化部は、処理対象ブロックのブロックサイズを示す情報と前記有効変換係数領域の範囲を示す情報とに基づいて、前記無効変換係数領域の前記係数データの符号化をスキップし、前記有効変換係数領域の前記係数データを符号化する
請求項1に記載の画像処理装置。
【請求項5】
前記符号化部は、前記係数データに応じた走査順で、前記有効変換係数領域の前記係数データを符号化する
請求項1に記載の画像処理装置。
【請求項6】
前記符号化部は、前記有効変換係数領域の前記係数データを、サブブロック毎に垂直方向または水平方向に走査して符号化する
請求項5に記載の画像処理装置。
【請求項7】
前記符号化部は、前記有効変換係数領域の前記係数データを、サブブロック毎に処理対象ブロックの形状に応じた走査順で符号化する
請求項5に記載の画像処理装置。
【請求項8】
前記符号化部は、前記有効変換係数領域の前記係数データを、サブブロックのグループ毎に走査して符号化する
請求項5に記載の画像処理装置。
【請求項9】
前記符号化部は、前記画像の輝度成分および色差成分について、前記無効変換係数領域の前記係数データの符号化をスキップし、前記有効変換係数領域の前記係数データを符号化する
請求項1に記載の画像処理装置。
【請求項10】
画像に関する係数データの、無効変換係数領域の符号化をスキップし、有効変換係数領域を符号化する
画像処理方法。
【請求項11】
画像に関する係数データが符号化された符号化データの、無効変換係数領域の復号をスキップし、有効変換係数領域を復号する復号部
を備える画像処理装置。
【請求項12】
前記係数データは、有効変換係数の有無をサブブロック毎に示す有効変換係数フラグ情報を含み、
前記復号部は、前記有効変換係数領域内の前記有効変換係数フラグ情報の符号化データを復号する
請求項11に記載の画像処理装置。
【請求項13】
前記係数データは、0ではない値を有する有効変換係数の有無をサブブロック毎に示す有効性フラグ情報、並びに、各有効変換係数の符号および絶対値をさらに含み、
前記復号部は、前記有効変換係数フラグ情報の符号化データを復号したサブブロックの前記有効性フラグ情報の符号化データを復号し、前記有効性フラグ情報が真であるサブブロックの、各有効変換係数の符号および絶対値の符号化データを復号する
請求項12に記載の画像処理装置。
【請求項14】
前記復号部は、処理対象ブロックのブロックサイズを示す情報と前記有効変換係数領域の範囲を示す情報とに基づいて、前記無効変換係数領域の前記符号化データの復号をスキップし、前記有効変換係数領域の前記符号化データを復号する
請求項11に記載の画像処理装置。
【請求項15】
前記復号部は、前記係数データに応じた走査順で、前記有効変換係数領域の前記符号化データを復号する
請求項11に記載の画像処理装置。
【請求項16】
前記復号部は、前記有効変換係数領域の前記符号化データを、サブブロック毎に垂直方向または水平方向に走査して復号する
請求項15に記載の画像処理装置。
【請求項17】
前記復号部は、前記有効変換係数領域の前記符号化データを、サブブロック毎に処理対象ブロックの形状に応じた走査順で復号する
請求項15に記載の画像処理装置。
【請求項18】
前記復号部は、前記有効変換係数領域の前記符号化データを、サブブロックのグループ毎に走査して復号する
請求項15に記載の画像処理装置。
【請求項19】
前記復号部は、前記画像の輝度成分および色差成分について、前記無効変換係数領域の前記符号化データの復号をスキップし、前記有効変換係数領域の前記符号化データを復号する
請求項11に記載の画像処理装置。
【請求項20】
画像に関する係数データが符号化された符号化データの、無効変換係数領域の復号をスキップし、有効変換係数領域を復号する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置および方法に関し、特に、符号化効率の低減を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来、画像データの符号化・復号において、32x32より大きいサイズのブロックの高周波領域係数を0にする処理(Zero Out)が提案された。例えば、ブロックサイズが64以上の場合、このブロックの画像データは、上述の処理により、そのブロックの左上の32x32の領域の有効な係数データと、その他の領域の値「0」の係数データとに変換され、符号化される(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Benjamin Bross, Jianle Chen, Shan Liu, "Versatile Video Coding (Draft 2)", JVET-K1001-v7, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 10-18 July 2018
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述の処理を行い、従来のスキャン順で符号化を行うと、有効な係数データが存在しない無効変換係数領域の係数データも符号化されてしまうおそれがあった。そのため、不要な情報により符号化効率が低減してしまうおそれがあった。
【0005】
本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制することができるようにするものである。
【課題を解決するための手段】
【0006】
本技術の一側面の画像処理装置は、画像に関する係数データの、無効変換係数領域の符号化をスキップし、有効変換係数領域を符号化する符号化部を備える画像処理装置である。
【0007】
本技術の一側面の画像処理方法は、画像に関する係数データの、無効変換係数領域の符号化をスキップし、有効変換係数領域を符号化する画像処理方法である。
【0008】
本技術の他の側面の画像処理装置は、画像に関する係数データが符号化された符号化データの、無効変換係数領域の復号をスキップし、有効変換係数領域を復号する復号部を備える画像処理装置である。
【0009】
本技術の他の側面の画像処理方法は、画像に関する係数データが符号化された符号化データの、無効変換係数領域の復号をスキップし、有効変換係数領域を復号する画像処理方法である。
【0010】
本技術の一側面の画像処理装置および方法においては、画像に関する係数データの、無効変換係数領域の符号化がスキップされ、有効変換係数領域が符号化される。
【0011】
本技術の他の側面の画像処理装置および方法においては、画像に関する係数データが符号化された符号化データの、無効変換係数領域の復号がスキップされ、有効変換係数領域が復号される。
【図面の簡単な説明】
【0012】
【
図1】ブロック構造の例について説明する図である。
【
図2】ブロック構造の例について説明する図である。
【
図3】Zero Outの例について説明する図である。
【
図6】シンタックスの例について説明する図である。
【
図13】スキャン制御の例について説明する図である。
【
図14】無効変換係数領域をスキップする例について説明する図である。
【
図15】無効変換係数領域をスキップする例について説明する図である。
【
図16】無効変換係数領域をスキップする例について説明する図である。
【
図17】符号化装置の主な構成例を示すブロック図である。
【
図18】符号化処理の流れの例を説明するフローチャートである。
【
図19】復号装置の主な構成例を示すブロック図である。
【
図20】復号処理の流れの例を説明するフローチャートである。
【
図21】シンタックスの例について説明する図である。
【
図22】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図23】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図24】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図25】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図26】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図27】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図28】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図29】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図30】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図31】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図32】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図33】スキャン順算出方法の例について説明する図である。
【
図34】スキャン順算出方法の例について説明する図である。
【
図35】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図36】スキャン順算出方法の例について説明する図である。
【
図37】スキャン順算出方法の例について説明する図である。
【
図38】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図39】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図40】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図41】有効変換係数領域のスキャン順制御の例について説明する図である。
【
図42】色差成分の無効変換係数領域をスキップする例について説明する図である。
【
図43】画像符号化装置の主な構成例を示すブロック図である。
【
図44】画像符号化処理の流れの例を示すフローチャートである。
【
図45】画像復号装置の主な構成例を示すブロック図である。
【
図46】画像復号処理の流れの例を説明するフローチャートである。
【
図47】シンタックスの例について説明する図である。
【
図48】シンタックスの例について説明する図である。
【
図49】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.技術内容・技術用語をサポートする文献等
2.Zero Out
3.コンセプト
4.第1の実施の形態(方法1について)
5.第2の実施の形態(方法1-1について)
6.第3の実施の形態(方法1-2について)
7.第4の実施の形態(画像符号化装置・画像復号装置)
8.付記
【0014】
<1.技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施例に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
【0015】
非特許文献1:(上述)
非特許文献2:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献3:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
非特許文献4:Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
【0016】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献3に記載されているQuad-Tree Block Structure、非特許文献4に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、特許請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、特許請求の範囲のサポート要件を満たすものとする。
【0017】
また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献2乃至非特許文献4に記載のTB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
【0018】
また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
【0019】
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
【0020】
<2.Zero Out>
<符号化・復号のブロック構造>
非特許文献4に記載のテストモデル(JEM4(Joint Exploration Test Model 4))においては、非特許文献3に記載のHEVC(High Efficiency Video Coding)と同様にCTUs(coding tree units)の概念が採用されている。つまり、この方法の場合、ピクチャ(Picture)がCTUに分割され、そのCTUを最上位のブロック単位として符号化が行われる。非特許文献4においては、CTUの最大サイズは128x128と規定されている。ただし、Luma transform block(TB)の最大サイズは64x64である。
【0021】
HEVCでは、CTUはquad-tree(4分木)構造を用いてさらにCUs(coding units)に分割される。CU内にPU(prediction unit)とTU(Transform Unit)が設けられ、入力画像の特徴に合わせてPUサイズとTUサイズとを独立に選択することができる。TUはCUと同様にquaternary-tree構造で分割することができる。
【0022】
これに対して、非特許文献4に記載のテストモデルでは、HEVCのCU/PU/TUの概念に代わって、multi-type tree(binary-tree、ternary-tree)+quad-tree構造が採用された。つまり、
図1のAに示されるように、ブロック11は、ブロック11-1のようにquad-treeにより4分割することも、ブロック11-2およびブロック11-3のようにbinary-treeにより2分割することも、ブロック11-4およびブロック11-5のようにternary-treeにより3分割することもできる。したがって、
図1のBに示されるようにCTU12は、多様なブロックに分割することができる。
【0023】
multi-type treeの例を
図2に示す。この構造の場合、CTUはまずquad-treeで分割される。quad-tree leafはさらに、multi-type tree構造に分割される。さらに、binary-tree構造やternary-tree構造により、より柔軟にブロック分割することもできる。したがって、CTU12は、
図1のBの例のように、長方形のCUに分割することもできる。
【0024】
multi-type tree leafがCUサイズとなる。Transformサイズの上限サイズを超えない限り、CUのサイズはPUのサイズ、TUサイズと同一である。CUサイズがTransformサイズを超えている場合は、TUは上限値までに自動的に分割される。その場合のブロックサイズはCU = PU != TUとなる。
【0025】
<Large Block Size Transform>
HEVCの直交変換のブロックサイズは最大32x32であるのに対して、非特許文献4に記載のテストモデルの場合、直交変換のブロックサイズが最大64x64まで拡張されている。非特許文献1においては、32x32より大きいサイズのブロックの高周波領域係数を0にする処理(Zero Out)が提案された。例えば、
図3に示されるブロック20のようにブロックサイズが64以上の場合、画像データは、上述の処理により、そのブロック20の左上の32x32の領域の有効な係数データ(有効変換係数とも称する)と、その他の領域の値「0」の係数データとに変換され、符号化される。この有効変換係数を含む領域を有効変換係数領域とも称する。つまり、
図3のブロック20の有効変換係数領域21は、有効変換係数により構成される領域である。
【0026】
また、ブロックの有効変換係数領域以外の領域を無効変換係数領域とも称する。この無効変換係数領域(
図3の例の場合、無効変換係数領域22)は、有効でない係数データ(無効変換係数とも称する)により構成される領域である。無効変換係数は、例えば、値「0」の係数データである。
【0027】
ブロック20の各係数データ(変換係数)は、
図4に示される例のようなスキャン順(走査順)で符号化される。各係数データは、4x4のサブブロック毎に処理され、各サブブロックは、より高域な成分のサブブロックからより低域な成分のサブブロックに向かう順に処理される。
図4の例の場合、ブロックには、サブブロック23が形成され、各サブブロック23は、図中右下端のサブブロックから図中左上端のサブブロックまで、矢印で示されるような順(左下から右上に向かう斜め順を、右下から左上に繰り返す順)でスキャンされる。なお、この例の矢印とは逆順(右上から左下に向かう斜め順を、右下から左上に繰り返す順)のスキャンも可能である。
【0028】
各サブブロック23においては、係数データに含まれる、有効変換係数の有無をサブブロック毎に示す有効変換係数フラグ情報(coded_sub_block_flag)が、コンテクスト基盤二進算術符号(context adaptive binary arithmetic coding)により符号化される。そして、係数データに含まれる、0ではない値を有する有効変換係数の有無をサブブロック毎に示す有効性フラグ情報(sig_coeff_flag)が符号化される。さらに、その有効性フラグ情報(sig_coeff_flag)が真(このサブブロックに0ではない値を有する有効変換係数が存在することを示す値、例えば値「1」)であるサブブロックについて、各有効変換係数の符号(coeff_sign_flag)および絶対値(abs)が符号化される。
【0029】
ただし、ブロック内の最も高域の有効な係数データを有するサブブロックの位置を示すlast_posが設定されている場合、そのlast_posが示す位置のサブブロックからスキャンが開始される。例えば、
図5の例のように、last_posによりブロック20内の最も高域の有効な係数データを有するサブブロック41の位置が示されている場合、その情報に基づいて、そのサブブロック41からスキャンが開始される。つまり、
図4に示されるブロック内の全てのスキャンの内、
図5に示されるブロック20内において実線の矢印で示されるスキャン(すなわち、サブブロック41からブロック20の左上端のサブブロックまでのスキャン)が行われる。換言するに、
図5において点線の矢印で示されるスキャン(すなわち、ブロック20の右下端のサブブロックからサブブロック41までのスキャン)が省略される。
【0030】
その際、
図5の例のように、スキャンの範囲に無効変換係数領域(図中、グレーのサブブロック)が含まれる場合がある。その場合、その無効変換係数領域のサブブロックもスキャンされる。なお、無効変換係数領域には、有効変換係数は含まれないので、その無効変換係数領域のサブブロックの有効変換係数フラグ情報(codec_sub_block_flag)は偽(このサブブロックに有効変換係数が含まれないことを示す値、例えば値「0」)である。
【0031】
<シンタックス>
図6にシンタックスの例を示す。この例では、上から1段目のfor文において、最も高域の有効な係数データを有するサブブロック(lastSubBlock)からブロックの先頭のサブブロック(左上端のサブブロック)まで処理が繰り返される。また、上から3段目および4段目においてx軸方向およびy軸方向の位置が更新され、下から3行目において、各位置のサブブロックについて有効変換係数フラグ情報(coded_sub_block_flag)が設定される。つまり、最も高域の有効な係数データを有するサブブロック(lastSubBlock)からブロックの先頭のサブブロック(左上端のサブブロック)までの各サブブロックについて、係数データ(例えば、有効変換係数フラグ情報(coded_sub_block_flag))が符号化される。
【0032】
<無効変換係数領域の符号化>
しかしながら、上述のようなスキャン方法の場合、
図5に示されるように、無効変換係数領域の係数データもスキャンされ、符号化されてしまう。しかしながら、無効変換係数領域の係数データは、値「0」であることが明らかであるので伝送は不要である。つまり、復号側においては、無効変換係数領域の係数データは、符号化側から伝送されなくても導出することができる。
【0033】
つまり、上述のスキャン方法では、不要な情報により符号化効率が低減してしまうおそれがあった。付言するに、その不要な情報を符号化・復号することにより、符号化処理や復号処理の負荷が増大するおそれもあった。
【0034】
例えば、
図7の例のように、64x64のブロック20において、左上の32x32の有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される場合、無効変換係数領域(グレーのサブブロック)の内の濃いグレーのサブブロックがスキャンされる。
【0035】
また、例えば、
図8の例のように、64x64のブロック20の左上隅から5x5の位置の(有効変換係数領域の)サブブロック41からスキャンが開始される場合も同様であり、無効変換係数領域(グレーのサブブロック)の内の濃いグレーのサブブロックがスキャンされる。
【0036】
ブロック20が横長である場合も同様である。例えば、
図9のように、64x32のブロック20において、左の32x32が有効変換係数領域(図中白色の部分)であり、右の32x32が無効変換係数領域であるとする。このようなブロック20において、有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される場合、無効変換係数領域(グレーのサブブロック)の内の濃いグレーのサブブロックがスキャンされる。
【0037】
ブロック20が縦長である場合も同様である。例えば、
図10のように、32x64のブロック20において、上の32x32が有効変換係数領域(図中白色の部分)であり、下の32x32が無効変換係数領域であるとする。このようなブロック20において、有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される場合、無効変換係数領域(グレーのサブブロック)の内の濃いグレーのサブブロックがスキャンされる。
【0038】
ブロック20が横長である場合も同様である。例えば、
図11のように、64x16のブロック20において、左の32x16が有効変換係数領域(図中白色の部分)であり、右の32x16が無効変換係数領域であるとする。このようなブロック20において、有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される場合、無効変換係数領域(グレーのサブブロック)の内の濃いグレーのサブブロックがスキャンされる。
【0039】
ブロック20が縦長である場合も同様である。例えば、
図12のように、16x64のブロック20において、上の16x32が有効変換係数領域(図中白色の部分)であり、下の16x32が無効変換係数領域であるとする。このようなブロック20において、有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される場合、無効変換係数領域(グレーのサブブロック)の内の濃いグレーのサブブロックがスキャンされる。
【0040】
以上のように、上述のスキャン方法では、ブロックの形状に関わらず、不要な情報を符号化・復号することによる符号化効率の低減や、符号化処理や復号処理の負荷の増大等のおそれがあった。
【0041】
<3.コンセプト>
<方法1>
そこで、
図13の表の上から1段目に示されるように、無効変換係数領域をスキップするように、上述のスキャンを制御する。
【0042】
例えば、画像に関する係数データの、無効変換係数領域の符号化をスキップし、有効変換係数領域を符号化するようにする。また、例えば、画像処理装置において、画像に関する係数データの、無効変換係数領域の符号化をスキップし、有効変換係数領域を符号化する符号化部を備えるようにする。このようにすることにより、無効変換係数領域の係数データの符号化・復号を抑制することができ、すなわち、不要な情報の符号化・復号を抑制することができるので、符号化効率の低減を抑制することができる。また、同様の理由から、符号化処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、より高速に符号化することができる)。
【0043】
また、例えば、画像に関する係数データが符号化された符号化データの、無効変換係数領域の復号をスキップし、有効変換係数領域を復号するようにする。また、例えば、画像処理装置において、画像に関する係数データが符号化された符号化データの、無効変換係数領域の復号をスキップし、有効変換係数領域を復号する復号部を備えるようにする。このようにすることにより、無効変換係数領域の係数データの符号化・復号を抑制することができ、すなわち、不要な情報の符号化・復号を抑制することができるので、符号化効率の低減を抑制することができる(典型的には、符号化効率を向上させることができる)。また、同様の理由から、復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、より高速に復号することができる)。
【0044】
<方法1-1>
また、以上においては、ブロック内において、各サブブロックが斜め方向にスキャンされるように説明したが、このサブブロック単位のスキャン方向は任意であり、上述の斜め方向以外であってもよい。例えば、上述の方法1に加え、例えば、
図13の表の上から2段目に示されるように、処理対象ブロックの有効変換係数領域のスキャン順を制御するようにしてもよい。
【0045】
例えば、処理対象ブロック内の係数データの値の分布の傾向(分布の特徴)に応じた走査順で、有効変換係数領域の係数データを符号化するようにしてもよい。また、例えば、処理対象ブロック内の係数データの値の分布の傾向に応じた走査順で、有効変換係数領域の符号化データを復号するようにしてもよい。詳細については後述するが、係数データの値の分布はブロック形状や予測方法等に応じて変化する。したがって、このようにスキャン順を制御することにより、係数データの値の分布の傾向により適したスキャン順を用いて係数データを符号化・復号することができる。したがって、符号化効率の低減を抑制することができる(典型的には、符号化効率を向上させることができる)。
【0046】
<方法1-1-1>
例えば、
図13の表の上から3段目に示されるように、有効変換係数領域のスキャン方向を垂直または水平にするようにしてもよい。つまり、例えば、有効変換係数領域の係数データを、サブブロック毎に垂直方向または水平方向に走査して符号化するようにしてもよい。また、例えば、有効変換係数領域の符号化データを、サブブロック毎に垂直方向または水平方向に走査して復号するようにしてもよい。
【0047】
<方法1-1-2>
また、例えば、
図13の表の上から4段目に示されるように、有効変換係数領域のスキャン方向をブロック形状に応じた方向にするようにしてもよい。つまり、例えば、有効変換係数領域の係数データを、サブブロック毎に処理対象ブロックの形状に応じた走査順で符号化するようにしてもよい。また、例えば、有効変換係数領域の符号化データを、サブブロック毎に処理対象ブロックの形状に応じた走査順で復号するようにしてもよい。なお、このサブブロック単位のスキャン方向は、直線方向(単一方向)に限定されない。例えば曲線方向であってもよいし、複数のスキャン方向により構成されるようにしてもよい。
【0048】
<方法1-1-3>
また、例えば、
図13の表の上から5段目に示されるように、有効変換係数領域のサブブロックをグループ化してスキャンを制御するようにしてもよい。つまり、例えば、有効変換係数領域の係数データを、サブブロックのグループ毎に走査して符号化するようにしてもよい。また、例えば、有効変換係数領域の符号化データを、サブブロックのグループ毎に走査して復号するようにしてもよい。
【0049】
<方法1-2>
また、上述の方法1に加え、例えば、
図13の表の上から6段目に示されるように、処理対象ブロックの色差成分も、輝度成分と同様に、スキャンを制御するようにしてもよい。例えば、画像の輝度成分および色差成分について、無効変換係数領域の係数データの符号化をスキップし、有効変換係数領域の係数データを符号化するようにしてもよい。また、例えば、画像の輝度成分および色差成分について、無効変換係数領域の符号化データの復号をスキップし、有効変換係数領域の符号化データを復号するようにしてもよい。
【0050】
このようにすることにより、輝度成分だけでなく色差成分についても、不要な情報の符号化・復号を抑制することができるので、符号化効率の低減を抑制することができる(典型的には、符号化効率を向上させることができる)。また、同様の理由から、復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、より高速に復号することができる)。
【0051】
<4.第1の実施の形態>
<4-1:方法1のスキャン例>
次に、
図13の各方法についてより具体的に説明する。本実施の形態においては、「方法1」について説明する。上述したように、方法1においては、無効変換係数領域の符号化・復号をスキップし、有効変換係数領域の符号化・復号を行うようにする。つまり、
図14の例のように、有効変換係数領域の係数データのみが符号化・復号されるようにする。
【0052】
図14の例の場合、
図7の例と同様に、64x64のブロック20において、左上の32x32の有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される。ただし、この場合、上述のように制御される為、
図14のブロック20内に示される矢印のように、有効変換係数領域内のサブブロックのみが符号化・復号される。つまり、有効変換係数領域内の各サブブロックが、矢印101乃至矢印115の順にスキャンされ、無効変換係数領域内のサブブロックはスキャンされない。
【0053】
したがって、不要な情報である無効変換係数領域のサブブロックの符号化・復号を抑制することができるので、符号化効率の低減を抑制することができる。また、同様の理由から、符号化処理や復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、符号化・復号をより高速に行うことができる)。
【0054】
ブロック20の形状は任意であり、
図14の例のように正方形でなくてもよい。例えば、
図15の例のようにブロック20が横長の長方形であってもよい。
図15の例の場合、ブロック20のサイズは、
図9の場合と同様に、64x32である。また、左の32x32が有効変換係数領域(図中白色の部分)であり、右の32x32が無効変換係数領域であり、有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される。ただし、この場合、上述のように制御される為、
図15のブロック20内に示される矢印のように、有効変換係数領域内のサブブロックのみが符号化・復号される。つまり、有効変換係数領域内の各サブブロックが、矢印121乃至矢印135の順にスキャンされ、無効変換係数領域内のサブブロックはスキャンされない。
【0055】
したがって、不要な情報である無効変換係数領域のサブブロックの符号化・復号を抑制することができるので、符号化効率の低減を抑制することができる。また、同様の理由から、符号化処理や復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、符号化・復号をより高速に行うことができる)。
【0056】
また、例えば、
図16の例のようにブロック20が縦長の長方形であってもよい。
図16の例の場合、ブロック20のサイズは、
図10の場合と同様に、32x64である。また、上の32x32が有効変換係数領域(図中白色の部分)であり、下の32x32が無効変換係数領域であり、有効変換係数領域(図中白色の部分)の右下隅のサブブロック41からスキャンが開始される。ただし、この場合、上述のように制御される為、
図16のブロック20内に示される矢印のように、有効変換係数領域内のサブブロックのみが符号化・復号される。つまり、有効変換係数領域内の各サブブロックが、矢印151乃至矢印165の順にスキャンされ、無効変換係数領域内のサブブロックはスキャンされない。
【0057】
したがって、不要な情報である無効変換係数領域のサブブロックの符号化・復号を抑制することができるので、符号化効率の低減を抑制することができる。また、同様の理由から、符号化処理や復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、符号化・復号をより高速に行うことができる)。
【0058】
なお、以上においては、
図4の例のような、左下から右上に向かう斜め順を、右下から左上に繰り返すスキャン順(スキャン方向)を例に説明したが、本技術を適用するスキャン順は任意であり、この例に限定されない。例えば、
図4の矢印とは逆向きに、右上から左下に向かう斜め順を、右下から左上に繰り返す順であってもよい。
【0059】
<4-2:符号化>
<符号化装置>
次に、このようなスキャン制御を実現するデバイスの例について説明する。
図17は、本技術を適用した画像処理装置の一態様である符号化装置の主な構成の一例を示すブロック図である。
図17に示される符号化装置170は、入力された画像の係数データを符号化し、その符号化データを出力する装置である。
図17に示されるように、符号化装置170は、スキャン制御部171および符号化部172を有する。
【0060】
スキャン制御部171は、スキャンの制御に関する処理を行う。例えば、スキャン制御部171は、符号化装置170の外部から入力される符号化情報を取得する。この符号化情報は、符号化パラメータとも称し、画像(係数データ)の符号化に関する任意の情報が含まれる。例えば、符号化情報には、処理対象ブロックのブロックサイズ(TbW, TbH)に関する情報や、その処理対象ブロックにおける有効変換係数領域のサイズに関する情報(有効変換係数領域情報とも称する)等が含まれる。スキャン制御部171は、取得した符号化情報から、このような、処理対象ブロックのブロックサイズに関する情報と、有効変換係数領域情報とを抽出する。
【0061】
スキャン制御部171は、これらの情報に基づいて、処理対象ブロック内の有効変換係数領域の範囲(有効変換係数領域の位置)を特定する。スキャン制御部171は、その情報に基づいて、符号化部172により行われる係数データのスキャン順を制御する。つまり、スキャン制御部171は、例えば<4-1:方法1のスキャン例>において上述したように、符号化部172が無効変換係数領域のサブブロックの係数データの符号化をスキップし、有効変換係数領域のサブブロックの係数データを符号化するように、そのスキャン順を制御する。スキャン制御部171は、制御命令等を符号化部172に供給することにより、符号化部172のスキャン順を制御する。
【0062】
符号化部172は、符号化に関する処理を行う。例えば、符号化部172は、符号化装置170に入力される符号化情報や画像(係数データ)を取得する。また、符号化部172は、スキャン制御部171から供給されるスキャンに関する制御命令等を取得する。符号化部172は、スキャン制御部171により制御されたスキャン順で係数データを符号化し、その符号化データを生成する。例えば、符号化部172は、<4-1:方法1のスキャン例>において上述したように、画像に関する係数データの、無効変換係数領域の各サブブロックの符号化をスキップし、有効変換係数領域の各サブブロックの符号化を行う。
【0063】
つまり、符号化部172が、処理対象ブロックのブロックサイズを示す情報と有効変換係数領域の範囲を示す情報とに基づいて、無効変換係数領域の係数データの符号化をスキップし、有効変換係数領域の係数データを符号化するようにしてもよい。
【0064】
また、この係数データの内容は任意である。例えば、係数データに、有効変換係数の有無をサブブロック毎に示す有効変換係数フラグ情報(codec_sub_block_flag)が含まれるようにしてもよい。そして、符号化部172が、無効変換係数領域の各サブブロックの有効変換係数フラグ情報(codec_sub_block_flag)の符号化をスキップし、有効変換係数領域の各サブブロックの有効変換係数フラグ情報(codec_sub_block_flag)を符号化するようにしてもよい。
【0065】
また、例えば、その係数データに、さらに、0ではない値を有する有効変換係数の有無をサブブロック毎に示す有効性フラグ情報(sig_coeff_flag)と、各有効変換係数の符号(coeff_sign_flag)および絶対値(abs)が含まれるようにしてもよい。そして、符号化部172が、有効変換係数フラグ情報(codec_sub_block_flag)を符号化したサブブロックの有効性フラグ情報(sig_coeff_flag)を符号化し、その有効性フラグ情報(sig_coeff_flag)が真であるサブブロックの、各有効変換係数の符号(coeff_sign_flag)および絶対値(abs)を符号化するようにしてもよい。
【0066】
また、符号化部172は、符号化情報も符号化し、その符号化データを生成する。符号化部172は、生成したこれらの符号化データをビットストリームとして符号化装置170の外部に出力する。
【0067】
このようにすることにより、符号化装置170は、ビットストリームに含まれる不要な情報(無効変換係数領域のサブブロックの係数データの符号化データ)を低減させることができるので、符号化効率の低減を抑制することができる。また、不要な情報の符号化を省略することができるので、符号化処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、符号化をより高速に行うことができる)。
【0068】
<符号化処理の流れ>
このような符号化装置170により実行される符号化処理の流れの例を、
図18のフローチャートを参照して説明する。ここでは、1ブロック分の処理について説明する。
【0069】
符号化処理が開始されると、符号化装置170のスキャン制御部171は、ステップS101において、符号化情報を取得し、その符号化情報から変換ブロックサイズ(TbW, TbH)と、有効変換係数領域情報(ZoW, ZoH)とを抽出する。
【0070】
ステップS102において、スキャン制御部171は、ステップS101において抽出した情報(変換ブロックサイズ(TbW, TbH)および有効変換係数領域情報(ZoW, ZoH))に基づいて、例えば<4-1:方法1のスキャン例>において上述したように、無効変換係数領域のサブブロックのスキャンをスキップし、有効変換計数領域のサブブロックをスキャンするように、符号化部172によるスキャンを制御する。
【0071】
ステップS103において、符号化部172は、その制御に従って各サブブロックをスキャンし、各サブブロックの有効変換係数フラグ情報(coded_sub_block_flag)を符号化する。つまり、符号化部172は、例えば<4-1:方法1のスキャン例>において上述したように、無効変換係数領域のサブブロックのスキャンをスキップし、有効変換係数領域のサブブロックのみをスキャンする。したがって、有効変換係数領域の各サブブロックの有効変換係数フラグ情報(coded_sub_block_flag)のみが符号化される。
【0072】
ステップS104において、符号化部172は、ステップS103において符号化した有効変換係数フラグ情報(coded_sub_block_flag)の値に基づいて、各サブブロックの有効性フラグ情報(sig_coeff_flag)を符号化する。つまり、符号化部172は、有効変換係数フラグ情報(coded_sub_block_flag)が真(例えば「1」)の各サブブロックの有効性フラグ情報(sig_coeff_flag)を符号化する。
【0073】
また、符号化部172は、符号化した有効性フラグ情報(sig_coeff_flag)の値に応じて、変換係数の符号(coeff_sign_flag)および絶対値(abs)を符号化する。つまり、符号化部172は、有効性フラグ情報(sig_coeff_flag)が真(例えば「1」)の各サブブロックの各変換係数の符号(coeff_sign_flag)および絶対値(abs)を符号化する。
【0074】
つまり、符号化部172は、ステップS103およびステップS104の処理により、例えば<4-1:方法1のスキャン例>において上述したように、画像に関する係数データの、無効変換係数領域の各サブブロックの符号化をスキップし、有効変換係数領域の各サブブロックの符号化を行う。さらに、符号化部172は、符号化情報も符号化する。符号化部172は、これらの符号化データをビットストリームとして出力する。ステップS104の処理が終了すると符号化処理が終了する。
【0075】
このようにすることにより、符号化装置170は、ビットストリームに含まれる不要な情報(無効変換係数領域のサブブロックの係数データの符号化データ)を低減させることができるので、符号化効率の低減を抑制することができる。また、不要な情報の符号化を省略することができるので、符号化処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、符号化をより高速に行うことができる)。
【0076】
<4-3:復号>
<復号装置>
図19は、本技術を適用した画像処理装置の一態様である復号装置の主な構成の一例を示すブロック図である。
図19に示される復号装置180は、入力された画像の符号化データを復号し、その画像の係数データを出力する装置である。
図19に示されるように、復号装置180は、スキャン制御部181および復号部182を有する。
【0077】
スキャン制御部181は、スキャンの制御に関する処理を行う。例えば、スキャン制御部181は、復号装置180の外部から入力されるビットストリーム(符号化データ)を取得する。このビットストリームは、例えば符号化装置170において生成されたものであり、不要な情報である無効変換係数領域のサブブロックの係数データの符号化をスキップするようなスキャン順で符号化された係数データや符号化情報の符号化データを含む。スキャン制御部181は、取得したビットストリームから処理対象ブロックのブロックサイズ(TbW, TbH)と有効変換係数領域情報とを抽出する。
【0078】
スキャン制御部181は、これらの情報に基づいて、処理対象ブロック内の有効変換係数領域の範囲(有効変換係数領域の位置)を特定する。スキャン制御部181は、その情報に基づいて、符号化の際のスキャン順(つまり、スキャン制御部171によるスキャン制御)を再現する。スキャン制御部181は、制御命令等を復号部182に供給することにより復号部182を制御し、そのスキャン順(つまり、例えば<4-1:方法1のスキャン例>において上述したような、無効変換係数領域のサブブロックの係数データの符号化をスキップし、有効変換係数領域のサブブロックの係数データを符号化するスキャン順)を再現させる。
【0079】
復号部182は、復号に関する処理を行う。例えば、復号部182は、復号装置180に入力されるビットストリームを取得する。このビットストリームには、係数データや符号化情報の符号化データが含まれる。また、復号部182は、スキャン制御部181から供給されるスキャンに関する制御命令等を取得する。復号部182は、スキャン制御部181の制御に従って再現される符号化の際のスキャン順に基づいて、ビットストリームを復号し、係数データを得る。例えば、復号部182は、例えば<4-1:方法1のスキャン例>において上述したように、画像に関する係数データが符号化された符号化データの、無効変換係数領域の各サブブロックの復号をスキップし、有効変換係数領域の各サブブロックの復号を行う。
【0080】
つまり、復号部182が、処理対象ブロックのブロックサイズを示す情報と有効変換係数領域の範囲を示す情報とに基づいて、無効変換係数領域の係数データの符号化データの復号をスキップし、有効変換係数領域の係数データの符号化データを復号するようにしてもよい。
【0081】
また、この係数データの内容は任意である。例えば、係数データに、有効変換係数の有無をサブブロック毎に示す有効変換係数フラグ情報(codec_sub_block_flag)が含まれるようにしてもよい。そして、復号部182が、有効変換係数領域の各サブブロックの有効変換係数フラグ情報(codec_sub_block_flag)の符号化データを復号するようにしてもよい。
【0082】
また、例えば、その係数データに、さらに、0ではない値を有する有効変換係数の有無をサブブロック毎に示す有効性フラグ情報(sig_coeff_flag)と、各有効変換係数の符号(coeff_sign_flag)および絶対値(abs)が含まれるようにしてもよい。そして、復号部182が、有効変換係数フラグ情報(codec_sub_block_flag)の符号化データを復号したサブブロックの有効性フラグ情報(sig_coeff_flag)の符号化データを復号し、その有効性フラグ情報(sig_coeff_flag)が真であるサブブロックの、各有効変換係数の符号(coeff_sign_flag)および絶対値(abs)の符号化データを復号するようにしてもよい。
【0083】
例えば、復号部182は、ビットストリームに含まれる係数データの符号化データを復号し、伝送された係数データを得る。また、復号部182は、スキャン制御部181により制御されるスキャン順(つまり、例えば<4-1:方法1のスキャン例>において上述したような、無効変換係数領域のサブブロックの係数データの符号化をスキップし、有効変換係数領域のサブブロックの係数データを符号化するスキャン順)に基づいて、その伝送された係数データがどのサブブロックに対応するかを特定する。つまり、伝送された係数データが、有効変換係数領域のサブブロックに対応付けられる。そして、復号部182は、その他のサブブロックの係数データ、すなわち、伝送されなかった係数データ(例えば無効変換係数等)を復元する。復号部182は、このようにしてブロック毎に係数データを生成し、復号装置180の外部に出力する。
【0084】
このようにすることにより、復号装置180は、ビットストリームに含まれる不要な情報(無効変換係数領域のサブブロックの係数データの符号化データ)を低減させるようなスキャン順で生成された符号化データを正しく復号することができる。つまり、復号装置180は、符号化効率の低減を抑制することができる。また、不要な情報の復号を省略することができるので、復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、復号をより高速に行うことができる)。
【0085】
<復号処理の流れ>
このような復号装置180により実行される符号化処理の流れの例を、
図20のフローチャートを参照して説明する。ここでは、1ブロック分の処理について説明する。
【0086】
復号処理が開始されると、復号装置180のスキャン制御部181は、ステップS121において、ビットストリームを取得し、そのビットストリームから変換ブロックサイズ(TbW, TbH)と、有効変換係数領域情報(ZoW, ZoH)とを抽出する。
【0087】
ステップS122において、スキャン制御部181は、ステップS121において抽出した情報(変換ブロックサイズ(TbW, TbH)および有効変換係数領域情報(ZoW, ZoH))に基づいて復号部182を制御し、符号化時のスキャン順(例えば<4-1:方法1のスキャン例>において上述したような、無効変換係数領域のサブブロックのスキャンをスキップし、有効変換計数領域のサブブロックをスキャンするスキャン順)を再現させる。
【0088】
ステップS123において、復号部182は、その制御に基づいて、符号化時のスキャン順により、各サブブロックの有効変換係数フラグ情報(coded_sub_block_flag)の符号化データを復号する。
【0089】
例えば、復号部182は、ビットストリーム含まれる有効変換係数フラグ情報(coded_sub_block_flag)の符号化データを復号し、伝送された有効変換係数フラグ情報(coded_sub_block_flag)を得る。また、復号部182は、スキャン制御部181により制御されたスキャン順(つまり符号化時のスキャン順)に基づいて、その伝送された有効変換係数フラグ情報(coded_sub_block_flag)がどのサブブロックに対応するかを特定する。そして、復号部182は、その他のサブブロックの有効変換係数フラグ情報(coded_sub_block_flag)、すなわち、伝送されなかった有効変換係数フラグ情報(coded_sub_block_flag)を復元する。
【0090】
例えば、ビットストリームを復号して有効変換係数領域のサブブロックの有効変換係数フラグ情報(coded_sub_block_flag)が得られる場合、復号部182は、その他の領域である無効変換係数領域のサブブロックの有効変換係数フラグ情報(coded_sub_block_flag)を復元する。このようにして、復号部182は、処理対象ブロックの全サブブロックの有効変換係数フラグ情報(coded_sub_block_flag)を復元する。
【0091】
ステップS124において、復号部182は、ステップS123において復号した有効変換係数フラグ情報(coded_sub_block_flag)の値に基づいて、各サブブロックの有効性フラグ情報(sig_coeff_flag)を復号する。
【0092】
例えば、復号部182は、ビットストリームに含まれる有効性フラグ情報(sig_coeff_flag)の符号化データを復号し、伝送された有効性フラグ情報(sig_coeff_flag)を得る。また、復号部182は、有効変換係数フラグ情報(coded_sub_block_flag)の復号結果に基づいて、その伝送された有効性フラグ情報(sig_coeff_flag)に対応するサブブロックを特定する。そして、復号部182は、その他のサブブロックの有効性フラグ情報(sig_coeff_flag)、すなわち、伝送されなかった有効性フラグ情報(sig_coeff_flag)を復元する。
【0093】
さらに、復号部182は、以上のように復元した各サブブロックの有効性フラグ情報(sig_coeff_flag)の値に基づいて、各サブブロックに含まれる変換係数の符号(coeff_sign_flag)および絶対値(abs)を復号する。
【0094】
例えば、復号部182は、ビットストリームに含まれる変換係数の符号(coeff_sign_flag)および絶対値(abs)の符号化データを復号し、伝送された変換係数の符号(coeff_sign_flag)および絶対値(abs)を得る。また、復号部182は、その伝送された変換係数の符号(coeff_sign_flag)および絶対値(abs)を、有効性フラグ情報(sig_coeff_flag)が真(例えば「1」)のサブブロックと対応付ける。そして、復号部182は、その他のサブブロックに含まれる変換係数の符号(coeff_sign_flag)および絶対値(abs)、すなわち、伝送されなかった変換係数の符号(coeff_sign_flag)および絶対値(abs)を復元する。
【0095】
つまり、復号部182は、ステップS123およびステップS124の処理により、画像に関する係数データが符号化された符号化データの、無効変換係数領域の各サブブロックの復号をスキップし、有効変換係数領域の各サブブロックの復号を行う。復号部182は、このようにして生成した係数データを出力する。ステップS124の処理が終了すると復号処理が終了する。
【0096】
このようにすることにより、復号装置180は、ビットストリームに含まれる不要な情報(無効変換係数領域のサブブロックの係数データの符号化データ)を低減させるようなスキャン順で生成された符号化データを正しく復号することができる。つまり、復号装置180は、符号化効率の低減を抑制することができる。また、不要な情報の復号を省略することができるので、復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる(典型的には、デバイスをより安価に開発・製造することができ、デバイスをより容易に小型化することができ、かつ、復号をより高速に行うことができる)。
【0097】
<4-4:シンタックス>
以上に説明したような無効変換係数領域のサブブロックのスキップは、上述のようにスキャン順を変更することにより実現するようにしてもよいが、シンタックスを用いて実現するようにしてもよい。
【0098】
図21にこの場合のシンタックスの例を示す。このシンタックスの例は、基本的に
図6の例と同様であるが、上から6段目のif文において、スキャンの範囲が有効変換係数領域に制限されている((xS <= 32) && (yS <= 32))。このようにすることにより、上述のスキャン制御を容易に実現することができる。
【0099】
<5.第2の実施の形態>
<5-1:方法1-1のスキャン例>
本実施の形態においては、「方法1-1」について説明する。上述したように、方法1-1においては、上述の方法1に加え、処理対象ブロックの有効変換係数領域のスキャン順を制御する。このようにすることにより、サブブロック単位のスキャン方向を任意の方向とすることができ、斜め方向以外のスキャン方向を実現することができる。これにより、例えば、処理対象ブロック内の係数データの値の分布の傾向に対してより適切な走査順で、符号化・復号を行うことができる。したがって、符号化効率の低減を抑制することができる。
【0100】
例えば、符号化装置170において、スキャン制御部171が、ステップS102において、有効変換係数領域のスキャン順を制御し、符号化部172が、ステップS103およびステップS104において、その制御に従って有効変換係数領域のサブブロックをスキャンし、符号化するようにしてもよい。このようにすることにより、符号化装置170は、符号化効率の低減をより抑制することができる。
【0101】
また、例えば、復号装置180において、スキャン制御部181が、ステップS122において、有効変換係数領域のスキャン順を制御し、復号部182が、ステップS123およびステップS124において、その制御に従った有効変換係数領域のサブブロックのスキャンを利用して符号化データを復号するようにしてもよい。このようにすることにより、復号装置180は、符号化効率の低減をより抑制することができる。
【0102】
このスキャン順の制御の具体例を以下に説明する。
【0103】
<5-1-1:方法1-1-1>
例えば、符号化・復号において、有効変換係数領域のサブブロック単位のスキャン方向を垂直または水平にするようにしてもよい(方法1-1-1)。
【0104】
例えば、
図22の場合、ブロック20のサイズは、64x32である。また、左の32x32が有効変換係数領域(図中白色の部分)であり、右の32x32が無効変換係数領域(図中グレーの部分)であり、有効変換係数領域の右下隅のサブブロック41からスキャンが開始される。そして、
図15の例の場合と同様に、有効変換係数領域内のサブブロックのみがスキャンされる。
【0105】
ただし、
図22の例の場合、サブブロック単位のスキャンは、図中垂直方向に行われる。つまり、サブブロック41からスキャンが開始され、同列の各サブブロックが下から上に向かってスキャンされる。各列のサブブロックは同様の順で垂直方向にスキャンされる。そして、各列は、右の列から順に1列ずつスキャンされる。つまり、各サブブロックは、矢印201から矢印208まで順に進むように、スキャンされる。
【0106】
例えば、イントラ予測の予測方向が水平方向の場合、直交変換により係数データの値は、垂直方向に大きく変化しやすくなる。つまり、この場合、係数データの値の分布には、水平方向よりも垂直方向に大きく変化する(つまり、値の偏りが大きくなる)傾向がある。したがって、
図22の例のように、符号化・復号におけるサブブロック単位のスキャン方向を垂直方向とすることにより、その値の偏りの大きさをより生かすことができ、符号化効率を向上させることができる。
【0107】
また例えば、
図23の場合、ブロック20の形状や有効変換係数領域等は、
図22の例の場合と同様であるが、サブブロック単位のスキャンは、図中水平方向に行われる。つまり、サブブロック41からスキャンが開始され、同行の各サブブロックが右から左に向かってスキャンされる。各行のサブブロックは同様の順で水平方向にスキャンされる。そして、各行は、下の行から順に1行ずつスキャンされる。つまり、各サブブロックは、矢印211から矢印218まで順に進むように、スキャンされる。
【0108】
例えば、イントラ予測の予測方向が垂直方向の場合、直交変換により係数データの値は、水平方向に大きく変化しやすくなる。つまり、この場合、係数データの値の分布には、垂直方向よりも水平方向に大きく変化する(つまり、値の偏りが大きくなる)傾向がある。したがって、
図23の例のように、符号化・復号におけるサブブロック単位のスキャン方向を水平方向とすることにより、その値の偏りの大きさをより生かすことができ、符号化効率を向上させることができる。
【0109】
つまり、有効変換係数領域のサブブロック単位のスキャン方向(例えば、垂直方向にするか、水平方向にするか、斜め方向にするか)は、イントラ予測の予測方向に応じて選択するようにしてもよい。このようにすることにより、イントラ予測の予測方向によらず、符号化効率を向上させることができる。
【0110】
例えば、
図24の場合、ブロック20のサイズは、32x64である。また、上の32x32が有効変換係数領域(図中白色の部分)であり、下の32x32が無効変換係数領域(図中グレーの部分)であり、有効変換係数領域の右下隅のサブブロック41からスキャンが開始される。そして、
図16の例の場合と同様に、有効変換係数領域内のサブブロックのみがスキャンされる。
【0111】
ただし、
図24の例の場合、サブブロック単位のスキャンは、図中水平方向に行われる。つまり、サブブロック41からスキャンが開始され、同行の各サブブロックが右から左に向かってスキャンされる。各行のサブブロックは同様の順で水平方向にスキャンされる。そして、各行は、下の行から順に1行ずつスキャンされる。つまり、各サブブロックは、矢印231から矢印238まで順に進むように、スキャンされる。
【0112】
処理対象ブロックのイントラ予測が垂直方向である場合に、このように符号化・復号におけるサブブロック単位のスキャン方向を水平方向とすることにより、
図23の例と同様に、符号化効率を向上させることができる。
【0113】
また例えば、
図25の場合、ブロック20の形状や有効変換係数領域等は、
図24の例の場合と同様であるが、サブブロック単位のスキャンは、図中垂直方向に行われる。つまり、サブブロック41からスキャンが開始され、同列の各サブブロックが下から上に向かってスキャンされる。各列のサブブロックは同様の順で垂直方向にスキャンされる。そして、各列は、右の列から順に1列ずつスキャンされる。つまり、各サブブロックは、矢印241から矢印248まで順に進むように、スキャンされる。
【0114】
処理対象ブロックのイントラ予測が水平方向である場合に、このように符号化・復号におけるサブブロック単位のスキャン方向を垂直方向とすることにより、
図22の例と同様に、符号化効率を向上させることができる。
【0115】
例えば、
図26の場合、ブロック20のサイズは、64x16である。また、左の32x16が有効変換係数領域(図中白色の部分)であり、右の32x16が無効変換係数領域(図中グレーの部分)であり、有効変換係数領域の右下隅のサブブロック41からスキャンが開始される。そして、上述の各例と同様に、有効変換係数領域内のサブブロックのみがスキャンされる。
【0116】
図26の例の場合、サブブロック単位のスキャンは、図中垂直方向に行われる。つまり、サブブロック41からスキャンが開始され、同列の各サブブロックが下から上に向かってスキャンされる。各列のサブブロックは同様の順で垂直方向にスキャンされる。そして、各列は、右の列から順に1列ずつスキャンされる。つまり、各サブブロックは、矢印261から矢印268まで順に進むように、スキャンされる。
【0117】
処理対象ブロックのイントラ予測が水平方向である場合に、このように符号化・復号におけるサブブロック単位のスキャン方向を垂直方向とすることにより、
図22の例と同様に、符号化効率を向上させることができる。
【0118】
また例えば、
図27の場合、ブロック20の形状や有効変換係数領域等は、
図26の例の場合と同様であるが、サブブロック単位のスキャンは、図中水平方向に行われる。つまり、サブブロック41からスキャンが開始され、同行の各サブブロックが右から左に向かってスキャンされる。各行のサブブロックは同様の順で水平方向にスキャンされる。そして、各行は、下の行から順に1行ずつスキャンされる。つまり、各サブブロックは、矢印271から矢印274まで順に進むように、スキャンされる。
【0119】
処理対象ブロックのイントラ予測が垂直方向である場合に、このように符号化・復号におけるサブブロック単位のスキャン方向を水平方向とすることにより、
図23の例と同様に、符号化効率を向上させることができる。
【0120】
例えば、
図28の場合、ブロック20のサイズは、16x64である。また、上の16x32が有効変換係数領域(図中白色の部分)であり、下の16x32が無効変換係数領域(図中グレーの部分)であり、有効変換係数領域の右下隅のサブブロック41からスキャンが開始される。そして、上述の各例と同様に、有効変換係数領域内のサブブロックのみがスキャンされる。
【0121】
ただし、
図28の例の場合、サブブロック単位のスキャンは、図中水平方向に行われる。つまり、サブブロック41からスキャンが開始され、同行の各サブブロックが右から左に向かってスキャンされる。各行のサブブロックは同様の順で水平方向にスキャンされる。そして、各行は、下の行から順に1行ずつスキャンされる。つまり、各サブブロックは、矢印281から矢印288まで順に進むように、スキャンされる。
【0122】
処理対象ブロックのイントラ予測が垂直方向である場合に、このように符号化・復号におけるサブブロック単位のスキャン方向を水平方向とすることにより、
図24の例と同様に、符号化効率を向上させることができる。
【0123】
また例えば、
図29の場合、ブロック20の形状や有効変換係数領域等は、
図28の例の場合と同様であるが、サブブロック単位のスキャンは、図中垂直方向に行われる。つまり、サブブロック41からスキャンが開始され、同列の各サブブロックが下から上に向かってスキャンされる。各列のサブブロックは同様の順で垂直方向にスキャンされる。そして、各列は、右の列から順に1列ずつスキャンされる。つまり、各サブブロックは、矢印291から矢印294まで順に進むように、スキャンされる。
【0124】
処理対象ブロックのイントラ予測が水平方向である場合に、このように符号化・復号におけるサブブロック単位のスキャン方向を垂直方向とすることにより、
図25の例と同様に、符号化効率を向上させることができる。
【0125】
以上のようにブロックや有効変換係数領域の形状やサイズは任意である。もちろん、ブロックや有効変換係数領域の形状やサイズは、上述した例以外であってもよい。
【0126】
<5-1-2:方法1-1-2>
例えば、符号化・復号において、有効変換係数領域のサブブロック単位のスキャン方向をブロック形状に応じた方向にするようにしてもよい(方法1-1-2)。
【0127】
直交変換により係数データの値は、一般的に、より低周波成分に集まる傾向がある。つまり、係数データの値は、左上隅に近づく程大きくなり、右下隅に近づく程小さくなる。そのため、高周波数成分からスキャンを開始し、できるだけ高周波数成分を優先してスキャンすると、結果として、同じレベルの係数を年輪状に進むことになる。
【0128】
ただし、直交変換は、変換ブロックの形状に応じて行われる為、変換係数の低周波成分もブロックの形状に応じて分布する傾向がある。例えば、ブロック形状が正方形の場合、同レベルの低周波数成分は、左上を中心に同心円状に分布する。また、ブロック形状が長方形の場合、同レベルの低周波数成分は、左上を中心に楕円状に分布する。
【0129】
したがって、符号化・復号におけるサブブロック単位のスキャン方向を、ブロック形状に関わらず単純に斜め方向とした場合、正方形のブロックにおいては、スキャン方向と係数データの値の分布の傾向がマッチするが、例えば長方形等その他の形状のブロックにおいては、スキャン方向と係数データの値の分布の傾向がマッチせず、符号化効率が低減してしまうおそれがあった。
【0130】
そこで、上述のように、有効変換係数領域のサブブロック単位のスキャン方向をブロック形状に応じた方向にすることにより、係数データの値の分布の傾向により適した方向にスキャンすることができ、符号化効率の低減を抑制することができる。
【0131】
<スキャン例1>
例えば、有効変換係数領域の形状が縦長の長方形の場合、高周波数領域は、「-1」の傾きでスキャンするようにし、有効変換係数領域の左端か上端に到達した場合、「-height/width(-有効変換係数領域の高さ/有効変換係数領域の幅)」の比率の傾きでスキャンするようにする。実際には、正確に「height/width」の傾きでスキャンすることは困難である場合、垂直方向のスキャンと-1の傾きのスキャンとを組み合わせて実現するようにしてもよい。
【0132】
例えば、
図30の場合、ブロック20のサイズは、16x64である。また、上の16x32が有効変換係数領域(図中白色の部分)であり、下の16x32が無効変換係数領域(図中グレーの部分)であり、有効変換係数領域の右下隅のサブブロック41からスキャンが開始される。そして、有効変換係数領域内のサブブロックのみがスキャンされる。
【0133】
この
図30の例の場合、サブブロック41からスキャンが開始され、各サブブロックは、矢印301から矢印313まで順に進むように、スキャンされる。つまり、この場合、複数のスキャン方向(例えば、3方向以上)を組わせてスキャンが行われる(スキャン方向が曲線状である)。
【0134】
より具体的には、
図30の場合、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が1対2である。有効変換係数領域の図中水平方向をx方向とし、図中垂直方向をy方向とし、有効変換係数領域の左上端を原点(x=0, y=0)とする。この場合、まず、y= -x の傾きでスキャンする(矢印301乃至矢印304)。x=0に到達したら、(height/2, 0)の位置に移動し、y方向にスキャンする(矢印305)。そして、(height/2, height - width)の位置に到達したら、「-1」の傾きにスキャンする。なお、x=0の時にy=4の倍数以外である場合、y= -xの傾きで未スキャンの最大xへ移動する。
【0135】
このようにすることにより、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が1対2の有効変換係数領域の係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0136】
また、例えば、
図31の場合、ブロック20のサイズは、8x64である。また、上の8x32が有効変換係数領域(図中白色の部分)であり、下の8x32が無効変換係数領域(図中グレーの部分)であり、有効変換係数領域の右下隅のサブブロック41からスキャンが開始される。そして、有効変換係数領域内のサブブロックのみがスキャンされる。
【0137】
この
図31の例の場合、サブブロック41からスキャンが開始され、各サブブロックは、矢印321から矢印325まで順に進むように、スキャンされる。つまり、この場合、複数のスキャン方向(例えば、3方向以上)を組わせてスキャンが行われる(スキャン方向が曲線状である)。
【0138】
より具体的には、
図31の場合、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が1対4である。有効変換係数領域の図中水平方向をx方向とし、図中垂直方向をy方向とし、有効変換係数領域の左上端を原点(x=0, y=0)とする。この場合、まず、y= -x の傾きでスキャンする(矢印321および矢印322)。x=0に到達したら、(height/4, 0)の位置に移動し、y方向にスキャンする(矢印323)。そして、(height/4, height - width)の位置に到達したら、「-1」の傾きにスキャンする。
【0139】
このようにすることにより、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が1対4の有効変換係数領域の係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0140】
また、例えば、
図32の場合、ブロック20のサイズは、4x64である。また、上の4x32が有効変換係数領域(図中白色の部分)であり、下の4x32が無効変換係数領域(図中グレーの部分)であり、有効変換係数領域の(右)下隅のサブブロック41からスキャンが開始される。そして、有効変換係数領域内のサブブロックのみがスキャンされる。
【0141】
この
図32の例の場合、有効変換係数領域内のサブブロックは1列であるので、サブブロック41からスキャンが開始され、各サブブロックは、矢印331のように、下から上に向かってスキャンされる。
【0142】
このようにすることにより、1列のサブブロックにより構成される有効変換係数領域の係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0143】
以上においては、有効変換係数領域の形状が、長手方向が垂直方向の長方形(つまり縦長の長方形)である場合について説明したが、有効変換係数領域の形状が、長手方向が水平方向の長方形(つまり横長の長方形)である場合においても同様である。
【0144】
つまり、例えば、有効変換係数領域の形状が横長の長方形の場合、高周波数領域は、「-1」の傾きでスキャンするようにし、有効変換係数領域の左端か上端に到達した場合、「-height/width(-有効変換係数領域の高さ/有効変換係数領域の幅)」の比率の傾きでスキャンするようにする。実際には、正確に「height/width」の傾きでスキャンすることは困難である場合、垂直方向のスキャンと-1の傾きのスキャンとを組み合わせて実現するようにしてもよい。
【0145】
例えば、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が2対1の場合、まず、y= -xの傾きでスキャンする。y=0に到達したら、(0, width/2)の位置に移動し、x方向にスキャンする。そして、(width - height, width/2)の位置に到達したら、「-1」の傾きにスキャンする。なお、y=0の時にx=4の倍数以外である場合、y= -xの傾きで未スキャンの最大yへ移動する。
【0146】
このようにすることにより、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が2対1の有効変換係数領域の係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0147】
また、例えば、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が4対1の場合、まず、y= -xの傾きでスキャンする。y=0に到達したら、(0, width/4)の位置に移動し、x方向にスキャンする。そして、(width - height, width/4)の位置に到達したら、「-1」の傾きにスキャンする。
【0148】
このようにすることにより、有効変換係数領域の幅(blkWidth)と高さ(blkHeight)の比が4対1の有効変換係数領域の係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0149】
また、例えば、有効変換係数領域内のサブブロックが1行の場合、サブブロック41からスキャンが開始され、各サブブロックは、右から左に向かってスキャンされる。
【0150】
このようにすることにより、1行のサブブロックにより構成される有効変換係数領域の係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0151】
<スキャン例2>
もちろん、ブロック形状に応じたスキャン方向の設定方法は任意であり、上述の例に限定されない。例えば、有効変換係数領域が幅16×高さ32の場合、
図33のAに示されるような方法でスキャン順を導出するようにしてもよい。
【0152】
つまり、有効変換係数領域の幅(blkwidth)をnとすると、有効変換係数領域の高さ(blkheight)は2nと表される。この場合、楕円は以下の式(1)のように表すことができる。
【0153】
【0154】
サブブロック単位で左上の頂点を楕円が通過する際のnを求める。このnは、以下の式(2)のように導出される。
【0155】
【0156】
図34に示されるようなブロック20について、各サブブロックのnは、
図33のBのようになる。例えば、n=12は、
図34の実曲線のように楕円状となり、n=18.4は、
図34の点線曲線のように楕円状となる。そこで、nの大きい順にサブブロックのスキャンを行うようにする。その際、nが同じ値の場合は、どちらを選択しても構わない。
【0157】
この場合、例えば、位置(16, 0)および位置(0, 32)を通る楕円を直線に近似すると、y=-2x+32となる。したがって、基本的には-2の傾きでスキャンを実施するようにする。例えば、
図35に示される矢印のようにスキャンを実施するようにしてもよい。このようにすることにより、有効変換係数領域の幅と高さの比が1対2のブロックにおいても、係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0158】
また、例えば、有効変換係数領域が幅8×高さ32の場合、
図36のAに示されるような方法でスキャン順を導出するようにしてもよい。この場合、有効変換係数領域の幅(blkwidth)をnとすると、有効変換係数領域の高さ(blkheight)は4nと表される。この場合、楕円は以下の式(3)のように表すことができる。
【0159】
【0160】
サブブロック単位で左上の頂点を楕円が通過する際のnを求める。このnは、以下の式(4)のように導出される。
【0161】
【0162】
図37に示されるようなブロック20について、各サブブロックのnは、
図36のBのようになる。例えば、n=4は、
図37の実曲線のように楕円状となり、n=8.1は、
図37の点線曲線のように楕円状となる。そこで、nの大きい順にサブブロックのスキャンを行うようにする。その際、nが同じ値の場合は、どちらを選択しても構わない。
【0163】
この場合、例えば、位置(8, 0)および位置(0, 32)を通る楕円を直線に近似すると、y=-4x+32となる。したがって、基本的には-4の傾きでスキャンを実施するようにする。例えば、
図38に示される矢印のようにスキャンを実施するようにしてもよい。このようにすることにより、有効変換係数領域の幅と高さの比が1対4のブロックにおいても、係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0164】
なお、有効変換係数領域の幅が1サブブロック分である場合、つまり有効変換係数領域が1列のサブブロックにより構成される場合、
図32の例と同様の順にスキャンされるようにすればよい。
【0165】
また、有効変換係数領域が横長の長方形の場合も、上述の例と基本的に同様にして行うようにすればよい。
【0166】
<5-1-3:方法1-1-3>
例えば、符号化・復号において、有効変換係数領域のサブブロックをグループ化してスキャンを制御するようにしてもよい(方法1-1-3)。
【0167】
例えば、
図39に示されるように、16x32の有効変換係数領域を有するブロック20において、有効変換領域の各サブブロックを、1x2ずつグループ化する。網目模様で示されるサブブロックグループ401は、横1個×縦2個のサブブロックにより構成される縦横比が2対1の領域である。
図39においては、左上端についてのみ示されているが、実際には、有効変換係数領域の全てのサブブロックをグループ化する。つまり、サブブロックグループは有効変換係数領域の全体に形成される。各サブブロックグループ内において、サブブロック単位のスキャンは、下から上に向かう方向で行われる。また、サブブロックグループ単位のスキャンは、高周波成分側から低周波成分側に向かう方向で行われる。つまり、有効変換係数領域内の各サブブロックは、矢印411乃至矢印426の順にスキャンされる。
【0168】
また、例えば、
図40に示されるように、8x32の有効変換係数領域を有するブロック20において、有効変換領域の各サブブロックを、1x4ずつグループ化する。網目模様で示されるサブブロックグループ401は、横1個×縦4個のサブブロックにより構成される縦横比が4対1の領域である。
図40においては、左上端についてのみ示されているが、実際には、有効変換係数領域の全てのサブブロックをグループ化する。つまり、サブブロックグループは有効変換係数領域の全体に形成される。各サブブロックグループ内において、サブブロック単位のスキャンは、下から上に向かう方向で行われる。また、サブブロックグループ単位のスキャンは、高周波成分側から低周波成分側に向かう方向で行われる。つまり、有効変換係数領域内の各サブブロックは、矢印431乃至矢印434の順にスキャンされる。
【0169】
以上のように、有効変換係数領域のサブブロックをグループ化してスキャンを制御するようにしてもよい。そしてその場合、各サブブロックのグループを、有効変換係数領域と同一の縦横比となるように形成するようにしてもよい。
【0170】
このようにすることにより、係数データの値の分布の傾向により適した方向にスキャンを行うことができ、符号化効率の低減を抑制することができる。
【0171】
なお、第1の実施の形態および第2の実施の形態においては、様々な形状の有効変換係数領域を説明したが、有効変換係数領域の形状はこれらの例に限定されず、任意である。例えば、有効変換係数領域の形状が、ブロックの形状と異なるようにしてもよい。例えば、
図41に示されるように、ブロック20が正方形であっても、有効変換係数領域が長方形に設定されるようにしてもよい。
図41の例の場合、64x64のブロック20に、32x16の有効変換係数領域が設定されている。この場合、サブブロック単位のスキャンは、サブブロック41から開始され、矢印441乃至矢印451の順に行われる。
【0172】
<6.第3の実施の形態>
<方法1-2のスキャン例>
本実施の形態においては、「方法1-2」について説明する。以上において説明した32x32より大きいサイズのブロックの高周波領域係数を0にする処理(Zero Out)は、輝度成分だけに限らず、色差成分にも適用するようにしてもよい。このようにすることにより、より符号化効率の低減を抑制することができる。
【0173】
また、その場合、その処理を適用した色差成分に対しても、上述した本技術を適用してもよい。例えば、色差成分についても、上述した輝度成分の場合と同様に、方法1を適用してもよい。このようにすることにより、符号化効率の低減を抑制することができる。また、符号化・復号の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる。また、例えば、色差成分についても、上述した輝度成分の場合と同様に、方法1-1を適用してもよい。例えば、方法1-1-1乃至方法1-1-3のいずれかを色差成分に適用してもよい。このようにすることにより、符号化効率の低減を抑制することができる。
【0174】
なお、その場合、色差成分のブロックサイズは、輝度成分と同一でなくてもよい。例えば、輝度成分のブロック20が
図14の例のように64x64であるのに対して、色差成分のブロック460が
図42に示されるように32x32であってもよい。このような色差成分のブロック460において、有効変換係数領域の右下隅のサブブロック461からスキャンが開始されるとすると、サブブロック単位のスキャンは、
図42に示されるように、矢印471乃至矢印477の順に行われる。つまり、この場合も、色差成分のスキャンは、輝度成分のスキャンと同様に行われる。このようにすることにより、スキャン方法を輝度成分と色差成分とで統一することができるので、より容易にスキャンを制御することができる。
【0175】
例えば、符号化装置170において、スキャン制御部171が、ステップS102において、色差成分についても輝度成分の場合と同様にスキャン順を制御し、符号化部172が、ステップS103およびステップS104において、その制御に従って各サブブロックをスキャンし、符号化するようにしてもよい。このようにすることにより、符号化装置170は、色差成分についても符号化効率の低減を抑制することができる。
【0176】
また、例えば、復号装置180において、スキャン制御部181が、ステップS122において、色差成分についても輝度成分の場合と同様にスキャン順を制御し、復号部182が、ステップS123およびステップS124において、色差成分について輝度成分の場合と同様にその制御に従って各サブブロックのスキャンを利用して符号化データを復号するようにしてもよい。このようにすることにより、復号装置180は、色差成分についても符号化効率の低減をより抑制することができる。
【0177】
<7.第4の実施の形態>
<7-1:画像符号化装置>
以上に説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データを符号化する画像符号化装置に、上述した本技術を適用することができる。
【0178】
図43は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。
図43に示される画像符号化装置500は、動画像の画像データを符号化する装置である。例えば、画像符号化装置500は、非特許文献1乃至非特許文献4に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
【0179】
なお、
図43においては、処理部やデータの流れ等の主なものを示しており、
図43に示されるものが全てとは限らない。つまり、画像符号化装置500において、
図43においてブロックとして示されていない処理部が存在したり、
図43において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置500内の処理部等を説明する他の図においても同様である。
【0180】
図43に示されるように画像符号化装置500は、制御部501、並べ替えバッファ511、演算部512、直交変換部513、量子化部514、符号化部515、蓄積バッファ516、逆量子化部517、逆直交変換部518、演算部519、インループフィルタ部520、フレームメモリ521、予測部522、およびレート制御部523を有する。
【0181】
<制御部>
制御部501は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ511により保持されている動画像データを処理単位のブロック(CU,PU, 変換ブロックなど)へ分割する。また、制御部501は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
【0182】
これらの符号化パラメータの詳細については後述する。制御部501は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
【0183】
ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部515と予測部522とに供給される。変換情報Tinfoは、符号化部515、直交変換部513、量子化部514、逆量子化部517、および逆直交変換部518に供給される。フィルタ情報Finfoは、インループフィルタ部520に供給される。
【0184】
<並べ替えバッファ>
画像符号化装置500には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ511は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ511は、制御部501の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ511は、処理後の各入力画像を演算部512に供給する。また、並べ替えバッファ511は、その各入力画像(元画像)を、予測部522やインループフィルタ部520にも供給する。
【0185】
<演算部>
演算部512は、処理単位のブロックに対応する画像I、および予測部522より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式(5)に示されるように減算して、予測残差resiを導出し、それを直交変換部513に供給する。
【0186】
【0187】
<直交変換部>
直交変換部513は、演算部512から供給される予測残差resiと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差resiに対して直交変換を行い、変換係数coefを導出する。直交変換部513は、その得られた変換係数coefを量子化部514に供給する。
【0188】
<量子化部>
量子化部514は、直交変換部513から供給される変換係数coefと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数coefをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部523により制御される。量子化部514は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルqcoefを、符号化部515および逆量子化部517に供給する。
【0189】
<符号化部>
符号化部515は、量子化部514から供給された量子化変換係数レベルqcoefと、制御部501から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部520から供給されるフィルタ係数等のフィルタに関する情報と、予測部522から供給される最適な予測モードに関する情報とを入力とする。符号化部515は、量子化変換係数レベルqcoeffを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
【0190】
また、符号化部515は、その量子化変換係数レベルqoeffから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
【0191】
さらに、符号化部515は、インループフィルタ部520から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部522から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部515は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
【0192】
また、符号化部515は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部515は、その符号化データを蓄積バッファ516に供給する。
【0193】
<蓄積バッファ>
蓄積バッファ516は、符号化部515において得られた符号化データを、一時的に保持する。蓄積バッファ516は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置500の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ516は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
【0194】
<逆量子化部>
逆量子化部517は、逆量子化に関する処理を行う。例えば、逆量子化部517は、量子化部514から供給される量子化変換係数レベルqcoeffと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部514において行われる量子化の逆処理である。逆量子化部517は、このような逆量子化により得られた変換係数coefIを、逆直交変換部518に供給する。
【0195】
<逆直交変換部>
逆直交変換部518は、逆直交変換に関する処理を行う。例えば、逆直交変換部518は、逆量子化部517から供給される変換係数coefIと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数coefIに対して逆直交変換を行い、予測残差resiIを導出する。なお、この逆直交変換は、直交変換部513において行われる直交変換の逆処理である。逆直交変換部518は、このような逆直交変換により得られた予測残差resiIを演算部519に供給する。なお、逆直交変換部518は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部518については、復号側について行う説明(後述する)を適用することができる。
【0196】
<演算部>
演算部519は、逆直交変換部518から供給される予測残差resiIと、予測部522から供給される予測画像Pとを入力とする。演算部519は、その予測残差resiIと、その予測残差resiIに対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部519は、導出した局所復号画像Rlocalをインループフィルタ部520およびフレームメモリ521に供給する。
【0197】
<インループフィルタ部>
インループフィルタ部520は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部520は、演算部519から供給される局所復号画像Rlocalと、制御部501から供給されるフィルタ情報Finfoと、並べ替えバッファ511から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部520に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部520に入力されるようにしてもよい。
【0198】
インループフィルタ部520は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部520は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
【0199】
例えば、インループフィルタ部520は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0200】
もちろん、インループフィルタ部520が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部520がウィーナーフィルタ等を適用するようにしてもよい。
【0201】
インループフィルタ部520は、フィルタ処理された局所復号画像Rlocalをフレームメモリ521に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部520は、そのフィルタに関する情報を符号化部515に供給する。
【0202】
<フレームメモリ>
フレームメモリ521は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ521は、演算部519から供給される局所復号画像Rlocalや、インループフィルタ部520から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ521は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ521内のバッファへ格納する)。フレームメモリ521は、予測部522の要求に応じて、その復号画像R(またはその一部)を予測部522に供給する。
【0203】
<予測部>
予測部522は、予測画像の生成に関する処理を行う。例えば、予測部522は、制御部501から供給される予測モード情報Pinfoと、並べ替えバッファ511から供給される入力画像(元画像)と、フレームメモリ521から読み出す復号画像R(またはその一部)を入力とする。予測部522は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部522は、生成した予測画像Pを演算部512および演算部519に供給する。また、予測部522は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部515に供給する。
【0204】
<レート制御部>
レート制御部523は、レート制御に関する処理を行う。例えば、レート制御部523は、蓄積バッファ516に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部514の量子化動作のレートを制御する。
【0205】
<本技術の適用>
以上のような構成の画像符号化装置500において、例えば、符号化部515として、符号化装置170(
図17)を適用するようにしてもよい。つまり、符号化部515がスキャン制御部171および符号化部172を有し、その符号化部172による符号化において、<3.コンセプト>乃至<6.第3の実施の形態>において説明した各種スキャン制御を適用するようにしてもよい。
【0206】
このような構成とすることにより、符号化部515は、符号化装置170の場合と同様に、ビットストリームに含まれる不要な情報(無効変換係数領域のサブブロックの係数データの符号化データ)を低減させることができ、符号化効率の低減を抑制することができる。また、不要な情報の符号化を省略することができるので、符号化処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる。
【0207】
したがって、画像符号化装置500は、符号化効率の低減を抑制することができる。また、画像符号化装置500は、符号化処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる。
【0208】
<画像符号化処理の流れ>
次に、以上のような画像符号化装置500により実行される各処理の流れについて説明する。最初に、
図44のフローチャートを参照して、画像符号化処理の流れの例を説明する。
【0209】
画像符号化処理が開始されると、ステップS301において、並べ替えバッファ511は、制御部501に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
【0210】
ステップS302において、制御部501は、並べ替えバッファ511が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
【0211】
ステップS303において、制御部501は、並べ替えバッファ511が保持する入力画像についての符号化パラメータを決定(設定)する。
【0212】
ステップS304において、予測部522は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部522は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【0213】
ステップS305において、演算部512は、入力画像と、ステップS504の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部512は、入力画像と予測画像との予測残差resiを生成する。このようにして求められた予測残差resiは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【0214】
ステップS306において、直交変換部513は、ステップS305の処理により生成された予測残差resiに対して直交変換処理を行い、変換係数coefを導出する。
【0215】
ステップS307において、量子化部514は、制御部501により算出された量子化パラメータを用いる等して、ステップS306の処理により得られた変換係数coefを量子化し、量子化変換係数レベルqcoefを導出する。
【0216】
ステップS308において、逆量子化部517は、ステップS307の処理により生成された量子化変換係数レベルqcoefを、そのステップS307の量子化の特性に対応する特性で逆量子化し、変換係数coefI導出する。
【0217】
ステップS309において、逆直交変換部518は、ステップS308の処理により得られた変換係数coefIを、ステップS306の直交変換処理に対応する方法で逆直交変換し、予測残差resiIを導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS309の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
【0218】
ステップS310において、演算部519は、ステップS309の処理により導出された予測残差resiIに、ステップS304の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【0219】
ステップS311において、インループフィルタ部520は、ステップS310の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
【0220】
ステップS312において、フレームメモリ521は、ステップS310の処理により導出された、局所的に復号された復号画像や、ステップS312においてフィルタ処理された、局所的に復号された復号画像を記憶する。
【0221】
ステップS313において、符号化部515は、ステップS307の処理により得られた量子化変換係数レベルqcoefを符号化する。例えば、符号化部515は、画像に関する情報である量子化変換係数レベルqcoefを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部515は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部515は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
【0222】
ステップS314において、蓄積バッファ516は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置500の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部523は、必要に応じてレート制御を行う。
【0223】
ステップS314の処理が終了すると、画像符号化処理が終了する。
【0224】
このような画像符号化処理のステップS313において実行される符号化処理において、有効変換係数領域のスキャン順が上述したように制御されるようにしてもよい。つまり、この符号化処理において、
図18のフローチャートを参照して説明したような符号化処理を行うようにしてもよい。このようにすることにより、画像符号化装置500は、符号化効率の低減をより抑制することができる。
【0225】
<7-2:画像復号装置>
また、以上に説明した本技術は、例えば、画像データが符号化された符号化データを復号する画像復号装置に、上述した本技術を適用することができる。
【0226】
図45は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。
図45に示される画像復号装置600は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置600は、非特許文献1乃至非特許文献4に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置600は、上述の画像符号化装置500により生成された符号化データ(ビットストリーム)を復号する。
【0227】
なお、
図45においては、処理部やデータの流れ等の主なものを示しており、
図45に示されるものが全てとは限らない。つまり、画像復号装置600において、
図45においてブロックとして示されていない処理部が存在したり、
図45において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置600内の処理部等を説明する他の図においても同様である。
【0228】
図45において、画像復号装置600は、蓄積バッファ611、復号部612、逆量子化部613、逆直交変換部614、演算部615、インループフィルタ部616、並べ替えバッファ617、フレームメモリ618、および予測部619を備えている。なお、予測部619は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置600は、符号化データ(ビットストリーム)を復号することによって、動画像データを生成するための装置である。
【0229】
<蓄積バッファ>
蓄積バッファ611は、画像復号装置600に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ611は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部612に供給する。
【0230】
<復号部>
復号部612は、画像の復号に関する処理を行う。例えば、復号部612は、蓄積バッファ611から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
【0231】
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部612は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
【0232】
<ヘッダ情報Hinfo>
ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence ParameterSet)/PPS(Picture Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
【0233】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【0234】
コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
【0235】
なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
【0236】
<予測モード情報Pinfo>
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
【0237】
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
【0238】
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
【0239】
コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
【0240】
多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
【0241】
色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式(6)のような割り当て方となる。
【0242】
【0243】
なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
【0244】
色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
【0245】
動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照)。
【0246】
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0247】
<変換情報Tinfo>
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0248】
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。変換スキップフラグ(ts_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子(scanIdx)
量子化パラメータ(qp)
量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
【0249】
<残差情報Rinfo>
残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
【0250】
cbf(coded_block_flag):残差データ有無フラグ
last_sig_coeff_x_pos:ラスト非ゼロ係数X座標
last_sig_coeff_y_pos:ラスト非ゼロ係数Y座標
coded_sub_block_flag:サブブロック非ゼロ係数有無フラグ
sig_coeff_flag:非ゼロ係数有無フラグ
gr1_flag:非ゼロ係数のレベルが1より大きいかを示すフラグ(GR1フラグとも呼ぶ)
gr2_flag:非ゼロ係数のレベルが2より大きいかを示すフラグ(GR2フラグとも呼ぶ)
sign_flag:非ゼロ係数の正負を示す符号(サイン符号とも呼ぶ)
coeff_abs_level_remaining:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)
など。
【0251】
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0252】
<フィルタ情報Finfo>
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
【0253】
デブロッキングフィルタ(DBF)に関する制御情報
適応オフセットフィルタ(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
【0254】
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0255】
復号部612の説明に戻り、復号部612は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルqcoefを導出する。復号部612は、その量子化変換係数レベルqcoefを、逆量子化部613に供給する。
【0256】
また、復号部612は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルqcoef、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
【0257】
ヘッダ情報Hinfoは、逆量子化部613、逆直交変換部614、予測部619、インループフィルタ部616に供給される。予測モード情報Pinfoは、逆量子化部613および予測部619に供給される。変換情報Tinfoは、逆量子化部613および逆直交変換部614に供給される。フィルタ情報Finfoは、インループフィルタ部616に供給される。
【0258】
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
【0259】
<逆量子化部>
逆量子化部613は、逆量子化に関する処理を行う。例えば、逆量子化部613は、復号部612から供給される変換情報Tinfoおよび量子化変換係数レベルqcoefを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルqcoefの値をスケーリング(逆量子化)し、逆量子化後の変換係数coefIを導出する。
【0260】
なお、この逆量子化は、量子化部514による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部517による逆量子化と同様の処理である。つまり、逆量子化部517は、逆量子化部613と同様の処理(逆量子化)を行う。
【0261】
逆量子化部613は、導出した変換係数coefIを逆直交変換部614に供給する。
【0262】
<逆直交変換部>
逆直交変換部614は、逆直交変換に関する処理を行う。例えば、逆直交変換部614は、逆量子化部613から供給される変換係数coefI、および、復号部612から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数coefIに対して逆直交変換処理を行い、予測残差resiIを導出する。
【0263】
なお、この逆直交変換は、直交変換部513による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部518による逆直交変換と同様の処理である。つまり、逆直交変換部518は、逆直交変換部614と同様の処理(逆直交変換)を行う。
【0264】
逆直交変換部614は、導出した予測残差resiIを演算部615に供給する。
【0265】
<演算部>
演算部615は、画像に関する情報の加算に関する処理を行う。例えば、演算部615は、逆直交変換部614から供給される予測残差resiIと、予測部619から供給される予測画像Pとを入力とする。演算部615は、以下の式(7)に示されるように、予測残差resiIとその予測残差resiIに対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。
【0266】
【0267】
演算部615は、導出した局所復号画像Rlocalを、インループフィルタ部616およびフレームメモリ618に供給する。
【0268】
<インループフィルタ部>
インループフィルタ部616は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部616は、演算部615から供給される局所復号画像Rlocalと、復号部612から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部616に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
【0269】
インループフィルタ部616は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
【0270】
例えば、インループフィルタ部616は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0271】
インループフィルタ部616は、符号化側(例えば画像符号化装置500のインループフィルタ部520)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部616が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部616がウィーナーフィルタ等を適用するようにしてもよい。
【0272】
インループフィルタ部616は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ617およびフレームメモリ618に供給する。
【0273】
<並べ替えバッファ>
並べ替えバッファ617は、インループフィルタ部616から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ617は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ617は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ617は、並べ替えた復号画像R群を動画像データとして画像復号装置600の外部に出力する。
【0274】
<フレームメモリ>
フレームメモリ618は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ618は、演算部615より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ618内のバッファへ格納する。
【0275】
また、フレームメモリ618は、インループフィルタ部616から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ618内のバッファへ格納する。フレームメモリ618は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部619に供給する。
【0276】
なお、フレームメモリ618が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
【0277】
<予測部>
予測部619は、予測画像の生成に関する処理を行う。例えば、予測部619は、復号部612から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部619は、その予測モード情報Pinfoによって指定される、フレームメモリ618に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部619は、導出した予測画像Pを、演算部615に供給する。
【0278】
<本技術の適用>
以上のような構成の画像復号装置600において、例えば、復号部612として、復号装置180(
図19)を適用するようにしてもよい。つまり、復号部612がスキャン制御部181および復号部182を有し、その復号部182による復号において、<3.コンセプト>乃至<6.第3の実施の形態>において説明した各種スキャン制御を適用するようにしてもよい。
【0279】
このような構成とすることにより、復号部612は、復号装置180の場合と同様に、ビットストリームに含まれる不要な情報(無効変換係数領域のサブブロックの係数データの符号化データ)を低減させるようなスキャン順で生成された符号化データを正しく復号することができる。つまり、復号部612は、符号化効率の低減を抑制することができる。また、不要な情報の復号を省略することができるので、復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる。
【0280】
したがって、画像復号装置600は、符号化効率の低減を抑制することができる。また、画像復号装置600は、復号処理の負荷の増大を抑制することができ、コスト、回路規模、および処理時間等の増大を抑制することができる。
【0281】
<画像復号処理の流れ>
次に、
図46のフローチャートを参照して、以上のような画像復号装置600により実行される画像復号処理の流れの例を説明する。
【0282】
画像復号処理が開始されると、蓄積バッファ611は、ステップS401において、画像復号装置600の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
【0283】
ステップS602において、復号部612は、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルqcoefを得る。また、復号部612は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
【0284】
ステップS403において、逆量子化部613は、ステップS402の処理により得られた量子化変換係数レベルqcoefに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数coefIを得る。
【0285】
ステップS404において、逆直交変換部614は、ステップS403の処理により得られた変換係数coefIに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差resiIを得る。
【0286】
ステップS405において、予測部619は、ステップS402においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ618に記憶されている参照画像を参照する等して、予測画像Pを生成する。
【0287】
ステップS406において、演算部615は、ステップS404の処理により得られた予測残差resiIと、ステップS405の処理により得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
【0288】
ステップS407において、インループフィルタ部616は、ステップS406の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
【0289】
また、ステップS408において、フレームメモリ618は、ステップS406の処理により得られた局所復号画像Rlocal、および、ステップS407の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
【0290】
ステップS409において、並べ替えバッファ617は、ステップS407の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。
【0291】
ステップS410において、並べ替えバッファ617は、再生順に並べ替えた復号画像R群を、動画像として画像復号装置600の外部に出力する。ステップS410の処理が終了すると、画像復号処理が終了する。
【0292】
このような画像復号処理のステップS402において実行される復号処理において、有効変換係数領域のスキャン順が上述したように制御されるようにしてもよい。つまり、この復号処理において、
図20のフローチャートを参照して説明したような復号処理を行うようにしてもよい。このようにすることにより、画像復号装置600は、符号化効率の低減をより抑制することができる。
【0293】
<7-3:シンタックス>
画像符号化装置500や画像復号装置600に本技術を適用する場合も、本技術のスキャンの制御は、上述のようにスキャン順を変更することにより実現するようにしてもよいが、シンタックスを用いて実現するようにしてもよい。
【0294】
図47は、変換ユニット(transform_unit)のシンタックスの例を示す。
図47の上から10段目乃至16段目に示されるように、輝度成分(luma)と、色差成分(cb, cr)とのそれぞれについて、残差データの符号化(residual_coding)が行われる。
【0295】
その残差データ(係数データ)の符号化のシンタックスの例を
図48に示す。このシンタックスにおいては、基本的に
図6の例と同様に係数データの符号化が制御されている。そして、
図21の例と同様に、上から32段目のif文において、スキャンの範囲が有効変換係数領域に制限されている((xS <= 32) && (yS <= 32))。このようにすることにより、上述のスキャン制御を容易に実現することができる。
【0296】
<8.付記>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【0297】
図49は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0298】
図49に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
【0299】
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
【0300】
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
【0301】
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0302】
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
【0303】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
【0304】
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
【0305】
<情報・処理の単位>
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
【0306】
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
【0307】
<本技術の適用対象>
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
【0308】
また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
【0309】
さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
【0310】
上述した実施の形態に係る画像処理装置、画像符号化装置、および画像復号装置は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
【0311】
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等(すなわち、装置の一部の構成)として実施することもできる。
【0312】
さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスに適用することもできる。
【0313】
なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【0314】
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
【0315】
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【0316】
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【0317】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
【0318】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0319】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0320】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0321】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0322】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0323】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0324】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0325】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【符号の説明】
【0326】
170 符号化装置, 171 スキャン制御部, 172 符号化部, 180 復号装置, 181 スキャン制御部, 182 復号部, 500 画像符号化装置, 501 制御部, 515 符号化部, 600 画像復号装置, 612 復号部