(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022028095
(43)【公開日】2022-02-15
(54)【発明の名称】画像処理装置および方法
(51)【国際特許分類】
H04N 19/436 20140101AFI20220207BHJP
H04N 19/13 20140101ALI20220207BHJP
H04N 19/167 20140101ALI20220207BHJP
H04N 19/176 20140101ALI20220207BHJP
H04N 19/96 20140101ALI20220207BHJP
H04N 19/503 20140101ALI20220207BHJP
H04N 19/593 20140101ALI20220207BHJP
【FI】
H04N19/436
H04N19/13
H04N19/167
H04N19/176
H04N19/96
H04N19/503
H04N19/593
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2018240107
(22)【出願日】2018-12-21
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
(72)【発明者】
【氏名】藤本 勇司
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159KK14
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME11
5C159NN01
5C159NN11
5C159TA58
5C159TB08
5C159TC31
5C159UA02
5C159UA05
(57)【要約】
【課題】符号化・復号の並列度の低減を抑制することができるようにする。
【解決手段】画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する。また、画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する。本開示は、例えば、画像処理装置、画像符号化装置、または画像復号装置等に適用することができる。
【選択図】
図5
【特許請求の範囲】
【請求項1】
画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する符号化部
を備える画像処理装置。
【請求項2】
前記符号化部は、
前記画像に関する係数データの前記変換ブロックの各ラインを、左の変換ブロックから順に1変換ブロックずつ符号化し、
各変換ブロックを、1つ前のエントロピ符号化により導出された生起確率を用いてエントロピ符号化する
請求項1に記載の画像処理装置。
【請求項3】
前記符号化部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックを、前記生起確率の初期値を用いてエントロピ符号化し、
前記画像の上から2番目以降の前記変換ブロックのラインの1番左の変換ブロックを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化する
請求項2に記載の画像処理装置。
【請求項4】
前記符号化部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックを、前記生起確率の初期値を用いてエントロピ符号化し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の前記変換ブロックのラインの左から3番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化する
請求項2に記載の画像処理装置。
【請求項5】
前記変換ブロックは、VPDU(Virtual pipeline data Unit)である
請求項1に記載の画像処理装置。
【請求項6】
前記画像のイントラ予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのイントラ予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの参照を無効とする
請求項1に記載の画像処理装置。
【請求項7】
前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのインター予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの動きベクトルの参照を無効とする
請求項1に記載の画像処理装置。
【請求項8】
前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、前記インター予測の処理単位であり、水平方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックのインター予測において、右上の変換ブロックの動きベクトルの参照を無効とする
請求項1に記載の画像処理装置。
【請求項9】
前記符号化部は、インター予測の処理単位であり、垂直方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックについて、インター予測のモードを示すモード情報を前記予測ブロック毎に符号化し、前記画像と予測画像の残差データを前記予測ブロックに含まれる変換ブロック毎に符号化する
請求項1に記載の画像処理装置。
【請求項10】
画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する
画像処理方法。
【請求項11】
画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する復号部
を備える画像処理装置。
【請求項12】
前記復号部は、
前記画像に関する係数データの前記変換ブロックの各ラインの符号化データを、左の変換ブロックから順に1変換ブロックずつ復号し、
各変換ブロックの符号化データを、1つ前のエントロピ復号により導出された生起確率を用いてエントロピ復号する
請求項11に記載の画像処理装置。
【請求項13】
前記復号部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックの符号化データを、前記生起確率の初期値を用いてエントロピ復号し、
前記画像の上から2番目以降の前記変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号する
請求項12に記載の画像処理装置。
【請求項14】
前記復号部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックの符号化データを、前記生起確率の初期値を用いてエントロピ復号し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の前記変換ブロックのラインの左から3番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号する
請求項12に記載の画像処理装置。
【請求項15】
前記変換ブロックは、VPDU(Virtual pipeline data Unit)である
請求項11に記載の画像処理装置。
【請求項16】
前記画像のイントラ予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのイントラ予測において、1つ前に復号される符号化ツリーユニットの右下の変換ブロックの参照を無効とする
請求項11に記載の画像処理装置。
【請求項17】
前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのインター予測において、1つ前に復号される符号化ツリーユニットの右下の変換ブロックの動きベクトルの参照を無効とする
請求項11に記載の画像処理装置。
【請求項18】
前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、前記インター予測の処理単位であり、水平方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックのインター予測において、右上の変換ブロックの動きベクトルの参照を無効とする
請求項11に記載の画像処理装置。
【請求項19】
前記復号部は、インター予測の処理単位であり、垂直方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックについて、インター予測のモードを示すモード情報の符号化データを前記予測ブロック毎に復号し、前記画像と予測画像の残差データの符号化データを前記予測ブロックに含まれる変換ブロック毎に復号する
請求項11に記載の画像処理装置。
【請求項20】
画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置および方法に関し、特に、符号化・復号の並列度の低減を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来、HEVC(High Efficiency Video Coding)では、符号化効率をできる限りに落とすことなく、CABAC(Context-based Adaptive Binary Arithmetic Code)符号化をCTU(Coding Tree Unit)ライン毎に並列化するツールWPP(Wavefront Parallel Processing)が導入された(例えば、非特許文献1参照)。
【0003】
また、輝度成分は64x64のブロック、色差成分は32x32のブロックを処理単位として、符号化(復号)、変換・量子化(逆量子化・逆変換)、デブロッキング(de-blocking)、SAO(Sample Adaptive Offset)等の各処理をパイプライン化する方法も提案された(例えば、非特許文献2および非特許文献3参照)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
【非特許文献2】Tzu-Der Chuang, Ching-Yeh Chen, Yu-Wen Huang, Shaw-Min Lei, "CE1-related: Separate tree partitioning at 64x64-luma/32x32-chroma unit level", JVET-K0230-v3, 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
【非特許文献3】Chia-Ming Tsai, Chih-Wei Hsu, Tzu-Der Chuang, Ching-Yeh Chen, Yu-Wen Huang, Shaw-Min Lei, "CE1.2.1: Constraint for binary and ternary partitions", JVET-L0081-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 3-12 Oct. 2018
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、近年、画像の高解像度化に伴い、符号化においてもより大きなCTUサイズに対応することが求められている。例えば、非特許文献1に記載のHEVCの場合、CTUサイズは最大64x64であったが、非特許文献2や非特許文献3に記載の方法の場合、CTUサイズは最大128x128である。
【0006】
WPPでは、同一の画像(すなわち解像度が同一の場合)において、このようにCTUサイズを増大させると、1フレームのCTUライン数が低減する。そのため、符号化・復号の並列度(つまり並行して処理されるCTUの数)が低減し、並列パイプラインの遅延が増大する(すなわち、処理時間が増大する)おそれがあった。
【0007】
また、非特許文献2および非特許文献3に記載の方法では、より小さなサイズのブロックを処理単位として、符号化(復号)、変換・量子化(逆量子化・逆変換)、デブロッキング、SAO等の各処理をパイプライン化することはできるものの、符号化・復号をそのブロック毎に並列パイプライン化することは困難であった。
【0008】
本開示は、このような状況に鑑みてなされたものであり、符号化・復号の並列度の低減を抑制することができるようにするものである。
【課題を解決するための手段】
【0009】
本技術の一側面の画像処理装置は、画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する符号化部を備える画像処理装置である。
【0010】
本技術の一側面の画像処理方法は、画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する画像処理方法である。
【0011】
本技術の他の側面の画像処理装置は、画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する復号部を備える画像処理装置である。
【0012】
本技術の他の側面の画像処理方法は、画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する画像処理方法である。
【0013】
本技術の一側面の画像処理装置および方法においては、画像に関する係数データが、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化される。
【0014】
本技術の他の側面の画像処理装置および方法においては、画像に関する係数データが符号化された符号化データが、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号される。
【図面の簡単な説明】
【0015】
【
図2】並列度とブロックサイズの関係の例について説明する図である。
【
図4】VPDUを用いたパイプライン化の例について説明する図である。
【
図5】符号化・復号の並列パイプライン化の方法について説明する図である。
【
図6】VPDUライン毎の並列化の例について説明する図である。
【
図7】各スレッドの処理タイミングの例について説明する図である。
【
図8】CTUライン毎の並列化とVPDUライン毎の並列化の比較例について説明する図である。
【
図9】CTUライン毎の並列化の例について説明する図である。
【
図10】VPDUライン毎の並列化の例について説明する図である。
【
図11】イントラ予測の参照制限の例について説明する図である。
【
図12】イントラ予測の参照制限の例について説明する図である。
【
図13】イントラ予測の参照制限の例について説明する図である。
【
図14】インター予測の参照制限の例について説明する図である。
【
図15】インター予測の参照制限の例について説明する図である。
【
図16】インター予測の参照制限の例について説明する図である。
【
図17】インター予測の参照制限の例について説明する図である。
【
図18】画像符号化装置の主な構成例を示すブロック図である。
【
図19】画像符号化処理の流れの例を説明するフローチャートである。
【
図20】予測処理の流れの例を説明するフローチャートである。
【
図21】符号化処理の流れの例を説明するフローチャートである。
【
図22】VPDU処理の流れの例を説明するフローチャートである。
【
図23】VPDU符号化処理の流れの例を説明するフローチャートである。
【
図24】VPDU処理の流れの例を説明するフローチャートである。
【
図25】画像復号装置の主な構成例を示すブロック図である。
【
図26】画像復号処理の流れの例を説明するフローチャートである。
【
図27】復号処理の流れの例を説明するフローチャートである。
【
図28】VPDU処理の流れの例を説明するフローチャートである。
【
図29】VPDU復号処理の流れの例を説明するフローチャートである。
【
図30】VPDU処理の流れの例を説明するフローチャートである。
【
図31】VPDU処理の流れの例を説明するフローチャートである。
【
図32】VPDU処理の流れの例を説明する、
図31に続くフローチャートである。
【
図33】VPDUライン毎の並列化の例について説明する図である。
【
図34】各スレッドの処理タイミングの例について説明する図である。
【
図35】予測処理の流れの例を説明するフローチャートである。
【
図36】VPDU処理の流れの例を説明するフローチャートである。
【
図37】VPDU処理の流れの例を説明するフローチャートである。
【
図38】VPDU処理の流れの例を説明するフローチャートである。
【
図39】VPDU処理の流れの例を説明する、
図38に続くフローチャートである。
【
図40】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0016】
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.技術内容・技術用語をサポートする文献等
2.WPP、VPDU
3.コンセプト
4.方法1
5.第1の実施の形態(画像符号化装置・画像復号装置)
6.方法2
7.第2の実施の形態(画像符号化装置・画像復号装置)
8.付記
【0017】
<1.技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施例に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
【0018】
非特許文献1:(上述)
非特許文献2:(上述)
非特許文献3:(上述)
非特許文献4:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献5: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
非特許文献6: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
【0019】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献1に記載されているQuad-Tree Block Structure、非特許文献5に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、特許請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、特許請求の範囲のサポート要件を満たすものとする。
【0020】
また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献1乃至非特許文献6に記載の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)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
【0021】
また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
【0022】
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
【0023】
<2.WPP、VPDU>
<WPP>
従来、例えば、非特許文献1に記載のように、HEVC(High Efficiency Video Coding)では、符号化効率をできる限りに落とすことなく、CABAC(Context-based Adaptive Binary Arithmetic Code)符号化をCTU(Coding Tree Unit)ライン毎に並列化するツールWPP(Wavefront Parallel Processing)が導入された。
【0024】
例えば、
図1は、符号化対象の画像の一部を示しており、各四角がCTUを示している。CTUは、
図1に示されるように行列状に配置されており、WPPが適用される場合、符号化・復号(エントロピ符号化・エントロピ復号)は、このCTUの行(CTUラインとも称する)毎に並列化される(CTUライン毎の処理が並列に実行される)。各CTUラインにおいては、図中点線矢印のように、左端のCTUから1CTUずつ処理(エントロピ符号化・エントロピ復号)される。
【0025】
各CTUは、1つ前のCTUの処理の際に導出された生起確率をコンテキストとして用いて処理される。ただし、画像の1番上のCTUラインの左端のCTUは、初期値のコンテキストを用いて処理される。また、上から2番目以降のCTUラインの左端のCTUは、
図1において黒四角と矢印により示されるように、処理対象のCTUライン(カレントCTUラインとも称する)の1つ上のCTUラインの2番目のCTUの処理の際に導出された生起確率(学習済み生起確率とも称する)をコンテキストとして用いて処理される。つまり、
図1においてグレーの四角で示されるように、各CTUラインは、1つ上のCTUラインに対して2CTUずつ遅延して処理される。
【0026】
このようにすることにより、各CTUラインを並列に処理することができる(タイミングのずれはあるものの、少なくとも互いに処理タイミングの一部が重複する(複数のCTUラインのCTUを処理する時刻が存在する)ように処理することができる)。したがって、画像の全CTUを直列に処理する場合よりも高速に符号化・復号することができる。
【0027】
<並列度の低減>
しかしながら、近年、画像の高解像度化に伴い、符号化においてもより大きなCTUサイズに対応することが求められている。例えば、非特許文献1に記載のHEVCの場合、CTUサイズは最大64x64であったが、非特許文献2や非特許文献3に記載の方法の場合、CTUサイズは最大128x128である。
【0028】
WPPでは、同一の画像(すなわち解像度が同一の場合)において、このようにCTUサイズを増大させると、1フレームのCTUライン数が低減する。そのため、符号化・復号の並列度(つまり並行して処理されるCTUの数)が低減し、並列パイプラインの遅延が増大する(すなわち、処理時間が増大する)おそれがあった。
【0029】
例えば、各CTUの処理時間が全て同一であるとする。同時刻に処理されるCTUの最大数を示す最大並列度を以下の式(1)のように定義する。式(1)において、CTUwは、処理対象の画像に存在する水平方向のCTU数を示す。またCTUhは、処理対象の画像に存在する垂直方向のCTU数を示す。さらに、関数ceilは、小数点以下の切り上げを示す。
【0030】
【0031】
また、同時刻に処理されるCTUの平均数を示す平均並列度を以下の式(2)のように定義する。式(2)において、p(x, y)は、CTU(x, y)を処理するときの並列度を示す。また、CTUwおよびCTUhは、式(1)と同様である。
【0032】
【0033】
例えば、4K画像(解像度3840×2160の画像)を、CTUサイズが最大64x64の場合と、最大128x128の場合とでWPPで処理したときの、最大並列度および平均並列度を比較した結果を
図2の表に示す。
【0034】
図2の表に示されるように、CTUサイズが最大64x64の場合、CTUwおよびCTUhは、それぞれ60と34である。したがって、上述の式(1)および式(2)から、最大並列度は30であり、平均並列度は21.2である。これに対して、CTUサイズが最大128x128の場合、CTUwおよびCTUhは、それぞれ30と17である。したがって、上述の式(1)および式(2)から、最大並列度は15であり、平均並列度は10.6である。このように、並列度(最大並列度および平均並列度)は、半減してしまう。そのため、CTUサイズが最大128x128の場合、上述のように、CTUサイズが最大64x64の場合に比べて、並列パイプラインの遅延が増大し、処理時間が増大するおそれがあった。
【0035】
また、並列に処理される各CTUの処理負荷にバラツキが存在すると、各CTUラインの処理タイミングを揃えるため、待機時間が生じるおそれがあった。CTUサイズが増大する程、並列の粒度が大きくなるため、CTU処理負荷のバラツキの分散がより困難になる。つまり、CTUサイズが増大する程、このバラツキによる待機時間が増大するおそれがあり、その待機時間の増大により、実並列度はさらに低減し、処理時間がさらに増大してしまうおそれがあった。
【0036】
<VPDU>
また、非特許文献2や非特許文献3に記載のように、輝度成分は64x64のブロック、色差成分は32x32のブロックを処理単位として、符号化(復号)、変換・量子化(逆量子化・逆変換)、デブロッキング(de-blocking)、SAO(Sample Adaptive Offset)等の各処理をパイプライン化する方法も提案された。
【0037】
例えば、
図3に示されるように、輝度成分は、128x128のCTBを4分割(縦2分割、横2分割)し、64x64のブロック(VPDU(Virtual pipeline data Unit)とも称する)を処理単位とする。また、色差成分は、64x64のCTBを4分割(縦2分割、横2分割)し、32x32のブロック(VPDUとも称する)を処理単位とする。
【0038】
図4に示される例のように、符号化(復号)と、変換・量子化(逆量子化・逆変換)と、デブロッキングと、SAOと等の各処理が、このようなVPDUを処理単位としてパイプライン化される。このようにすることにより、全体の処理時間の増大を抑制することができる。
【0039】
しかしながら、この方法では、符号化・復号をそのブロック毎に並列パイプライン化することは困難であった。
【0040】
<3.コンセプト>
<変換ブロックライン毎のWPP>
そこで、
図5の表の上から1段目に示されるように、変換ブロックライン毎のWPPを実現するようにする。変換ブロックは、画像データに対する直交変換等の変換処理の処理単位であり、変換ブロックラインは、その行列状に並ぶ変換ブロックの行(ライン)を示す。つまり、CTUよりも小さいサイズのブロックのライン毎のWPPを実現するようにする。
【0041】
例えば、画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化するようにする。また、例えば、画像処理装置において、画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する符号化部を備えるようにする。このようにすることにより、CTUよりも小さい変換ブロックのライン毎に処理を並列化することができる。したがって、符号化の並列度の低減を抑制することができる。これにより、符号化の処理時間の増大を抑制することができる。
【0042】
また、例えば、画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号するようにする。また、例えば、画像処理装置において、画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する復号部を備えるようにする。このようにすることにより、CTUよりも小さい変換ブロックのライン毎に処理を並列化することができる。したがって、復号の並列度の低減を抑制することができる。これにより、復号の処理時間の増大を抑制することができる。
【0043】
また、
図5の表の上から2段目に記載の方法1のように、VPDU(Virtual pipeline data Unit)のライン(VPDUラインとも称する)毎に符号化・復号を並列化する(VPDUラインのWPPを行う)ようにしてもよい。その際、各ライン間の遅延(パイプライン遅延)を2VPDUとしてもよい。
【0044】
また、
図5の表の上から3段目に記載の方法1-1のように、CTU内の各段のVPDUが互いに異なるCABACのコンテキストを持つようにしてもよい。さらに、
図5の表の上から4段目に記載の方法1-2のように、CABACのコンテキストの生起確率の継承(コピー)をVPDUライン間で行うようにしてもよい。
【0045】
例えば、符号化の際に、画像に関する係数データの変換ブロックの各ラインを、左の変換ブロックから順に1変換ブロックずつ符号化するようにしてもよい。さらに、各変換ブロックを、1つ前のエントロピ符号化により導出された生起確率を用いてエントロピ符号化するようにしてもよい。さらに、画像の1番上の変換ブロックのラインの1番左の変換ブロックを、生起確率の初期値を用いてエントロピ符号化し、画像の上から2番目以降の変換ブロックのラインの1番左の変換ブロックを、1つ上の変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化するようにしてもよい。このようにすることにより、HEVC等で行われるCTUラインのWPPの場合と同様の、変換ブロックのライン毎の並列化を実現することができる。
【0046】
例えば、復号の際に、画像に関する係数データの変換ブロックの各ラインの符号化データを、左の変換ブロックから順に1変換ブロックずつ復号するようにしてもよい。さらに、各変換ブロックを、1つ前のエントロピ復号により導出された生起確率を用いてエントロピ復号するようにしてもよい。さらに、画像の1番上の変換ブロックのラインの1番左の変換ブロックの符号化データを、生起確率の初期値を用いてエントロピ復号し、画像の上から2番目以降の変換ブロックのラインの1番左の変換ブロックを、1つ上の変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号するようにしてもよい。このようにすることにより、HEVC等で行われるCTUラインのWPPの場合と同様の、変換ブロックのライン毎の並列化を実現することができる。
【0047】
なお、この場合の変換ブロックは、変換処理の単位であれば任意であるが、例えば上述のようにVPDUとしてもよい。
【0048】
また、
図5の表の上から5段目に記載の方法1-3のように、イントラ予測について制限を加えるようにしてもよい。例えば、
図5の表の上から6段目に記載の方法1-3-1のように、処理対象のCTU(カレントCTUとも称する)の左上のVPDUについて1つ前のCTUの右下のVPDUの参照を不可(無効(unavailable))とするようにしてもよい。
【0049】
例えば、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのイントラ予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの参照を無効とするようにしてもよい。このようにすることにより、イントラ予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。
【0050】
また、
図5の表の上から7段目に記載の方法1-4のように、インター予測について制限を加えるようにしてもよい。例えば、
図5の表の上から8段目に記載の方法1-4-1のように、カレントCTUの左上のVPDUを処理対象(カレント予測ブロック)とするインター予測について、1つ前のCTUの右下のVPDUの参照を不可(無効(unavailable))とするようにしてもよい。つまり、上述した方法1-3-1(つまりイントラ予測に対する制限)と同様の制限を行うようにしてもよい。
【0051】
例えば、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのインター予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの動きベクトルの参照を無効とするようにしてもよい。このようにすることにより、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。
【0052】
また、
図5の表の上から9段目に記載の方法1-4-2のように、カレント予測ブロックのブロックサイズが128xNのインター予測について、右上のブロックの参照を不可(無効(unavailable))とするようにしてもよい。
【0053】
例えば、インター予測の処理単位であり、水平方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックのインター予測において、右上の変換ブロックの動きベクトルの参照を無効とするようにしてもよい。このようにすることにより、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。
【0054】
また、
図5の表の上から10段目に記載の方法1-4-3のように、インター予測が行われる予測ブロックのブロックサイズがNx128の場合、インター予測のモードを示すモード(mode)情報は上段の変換ブロックのCABACを使用し、画像と予測画像の残差データに関する係数データ(residual)は各段の変換ブロックのCABACを使用するようにしてもよい。
【0055】
例えば、垂直方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックについて、インター予測のモードを示すモード情報をその予測ブロック毎に符号化し、画像と予測画像の残差データをその予測ブロックに含まれる変換ブロック毎に符号化するようにしてもよい。このようにすることにより、ブロックサイズがNx128のインター予測の予測ブロックを、変換ブロックライン毎に並列化して処理することができる。
【0056】
また、
図5の表の上から11段目に記載の方法2のように、VPDUライン毎に符号化・復号を並列化する(VPDUラインのWPPを行う)ようにしてもよい。その際、各ライン間の遅延(パイプライン遅延)を、CTU内において2VPDUとし、CTU間において3VPDUとしてもよい。
【0057】
例えば、符号化の際に、画像の1番上の変換ブロックのラインの1番左の変換ブロックを、生起確率の初期値を用いてエントロピ符号化し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の変換ブロックのラインの左から3番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化するようにしてもよい。
【0058】
同様に、復号の際に、画像の1番上の変換ブロックのラインの1番左の変換ブロックの符号化データを、生起確率の初期値を用いてエントロピ復号し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上変換ブロックのラインの左から3番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号するようにしてもよい。
【0059】
このようにすることにより、方法1-4-2のインター予測の制限を用いずに、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。
【0060】
なお、この場合も、方法1-1と同様に、CTU内の各段のVPDUが互いに異なるCABACのコンテキストを持つようにしてもよい(
図5の表の上から12段目に記載の方法2-1)。さらに、方法1-2と同様に、CABACのコンテキストの生起確率の継承(コピー)をVPDUライン間で行うようにしてもよい(
図5の表の上から13段目に記載の方法2-2)。
【0061】
また、方法1-3と同様に、イントラ予測について制限を加えるようにしてもよい(
図5の表の上から14段目に記載の方法2-3)。例えば、方法1-3-1と同様に、処理対象のCTU(カレントCTUとも称する)の左上のVPDUについて1つ前のCTUの右下のVPDUの参照を不可(無効(unavailable))とするようにしてもよい(
図5の表の上から15段目に記載の方法2-3-1)。
【0062】
また、方法1-4と同様に、インター予測について制限を加えるようにしてもよい(
図5の表の上から16段目に記載の方法2-4)。例えば、方法1-4-1と同様に、カレントCTUの左上のVPDUについて1つ前のCTUの右下のVPDUの参照を不可(無効(unavailable))とするようにしてもよい(
図5の表の上から17段目に記載の方法2-4-1)。つまり、上述した方法2-3-1(つまりイントラ予測に対する制限)と同様の制限を行うようにしてもよい。
【0063】
さらに、方法1-4-3と同様に、カレントCTUのブロックサイズがNx128の場合、インター予測のモードを示すモード(mode)情報は上段の変換ブロックのCABACを使用し、画像と予測画像の残差データに関する係数データ(residual)は各段の変換ブロックのCABACを使用するようにしてもよい(
図5の表の1番下の段に記載の方法2-4-2)。
【0064】
<4.方法1>
次に、上述した「方法1」についてより詳細に説明する。
図6は、符号化対象の画像の一部を示している。画像は、ツリー構造の符号化ブロックの最上位であるCTU111に分割される。
図6において太線四角形で囲まれた各領域がCTU111である。HEVCのWPPでは、このCTU111のライン毎に処理(エントロピ符号化・エントロピ復号)が並列化される。各CTUラインについては、CTU111-1、CTU111-2、CTU111-3、CTU111-4のように、CTUラインに沿って左から右に向かって1CTU111ずつ処理される。
【0065】
方法1では、各CTU111がVPDU121に分割される。
図6において細線四角形で囲まれた各領域がVPDU121である。この例の場合、各CTU111は、4分割(垂直方向・水平方向にそれぞれ2分割)される。例えば、CTU111-1は、VPDU121-1、VPDU121-2、VPDU121-3、およびVPDU121-4に分割される。つまり、1CTUラインに2VPDUラインが形成されている。なお、CTU111のサイズは任意である。VPDU121のサイズもCTU111より小さければ任意である。本明細書においては、CTUサイズを128x128とし、VPDUサイズを64x64として説明する。
【0066】
方法1では、
図6の点線矢印のように、このVPDU121のライン毎に処理(エントロピ符号化・エントロピ復号)が並列化される。
図6において、各VPDU121内の数字は、処理順を示している。つまり、各VPDUラインの処理は、その1つ上のVPDUラインに対して、2VPDUだけ遅延して実行される。
【0067】
<4-1:方法1-1、方法1-2>
ここで、エントロピ符号化・エントロピ復号は、1つ前の処理により導出された生起確率をコンテキストとして用いる可逆符号化・可逆復号である。例えば、CABAC等の算術号化・算術復号であってもよい。本明細書では、CABACが適用されるものとして説明する。
【0068】
そして、方法1-1では、CTU111内の各段のVPDU121の処理において互いに異なるCABACのコンテキストが用いられる。また、方法1-2では、CABACのコンテキストの継承(コピー)がVPDUライン間で行われる。
【0069】
上述したように各VPDUラインにおいて、各VPDUは、1つ前のVPDUの処理の際に導出された生起確率をコンテキストとして用いて処理される。ただし、画像の1番上のVPDUラインの左端のVPDUは、初期値のコンテキストを用いて処理される。また、上から2番目以降のVPDUラインの左端のVPDUは、
図6において黒四角と矢印により示されるように、処理対象のVPDUライン(カレントVPDUラインとも称する)の1つ上のVPDUラインの2番目のVPDUの処理の際に導出された生起確率(学習済み生起確率とも称する)をコンテキストとして用いて処理される。つまり、
図7に示されるように、各VPDUラインの処理スレッド(Thread)は、1つ上のVPDUラインの処理スレッドに対して2VPDUずつ遅延している。
【0070】
このようにタイミングが互いにずれるものの、複数のスレッドが並行して実行される。このようにすることにより、例えば4K画サイズ(3840x2160)の画像を処理対象とする場合の最大並列度は30となり、平均並列度は21.2となる。つまり、CTUサイズが増大することによる符号化・復号の並列度の低減を抑制することができる。したがって、並列パイプラインの遅延の増大を抑制し、処理時間の増大を抑制することができる。
【0071】
また、並列化の粒度が小さくなるため、スレッド間の処理負荷のバラツキの増大を抑制することができる。したがって、スレッド間の処理時間のバラツキの増大を抑制することができる。したがって、待機時間の増大を抑制し、画像全体の処理時間の増大を抑制することができる。
【0072】
ここで、CTUラインのWPPとVPDUラインのWPPとを比較する。
図8のAの場合、処理対象の画像は、4x4の16個のCTU111に分割され、CTUライン毎に並列に処理される(CTUラインのWPP)。これに対して、
図8のBの場合、各CTU111が2x2のVPDU121に分割される。つまり、処理対象の画像は、8x8の64個のVPDU121に分割され、VPDUライン毎に並列に処理される(VPDUラインのWPP)。各CTUの処理負荷は互いに同一であり、各VPDUの処理負荷はCTUの処理負荷の4分の1であるとする。
【0073】
図8のAの場合の各スレッドの処理時間の様子の例を
図9に示す。
図9に示されるように、この場合の画像全体の処理時間は、10tとなる。
図8のBの場合の各スレッドの処理時間の様子の例を
図10に示す。
図10に示されるように、この場合の画像全体の処理時間は、5.5tとなる。
【0074】
以上のように、VPDUラインのWPPの方が、CTUラインのWPPに比べて、CTUサイズの増大による並列度の低減を抑制し、処理時間の増大を抑制することができる。
【0075】
なお、上述のように処理をVPDUライン毎に並列化する場合、予測ブロックや変換ブロックについて、非特許文献2や非特許文献3に記載のようなVPDUのパイプライン処理の場合と同様の制限が適用される。
【0076】
<4-2:方法1-3>
方法1-3では、イントラ予測において一部のモードが制限される。処理対象のブロックがイントラ予測モードの場合、そのモード(mode)は、隣接するブロックのイントラ予測モードを参照して予測され、予測画像は、隣接するブロックのピクセルを参照して作成される。
【0077】
<4-2-1:方法1-3-1>
方法1-3-1では、
図11において点線矢印で示されるように、CTUの左上のVPDUのイントラ予測において、その1つ前に処理されるCTU(すなわち、左隣のCTU)の右下のVPDUの参照が無効(unavailable)とされる。すなわち、
図11の点線矢印で示されるイントラ予測モードと予測ピクセルの参照が禁止される。
【0078】
例えば、符号化・復号を並列化しない場合(WPP OFF時)、
図12のAに示されるように、カレントCTU111の左上のVPDU121であるVPDU[a]のイントラ予測において、VPDU[e]、VPDU[f]、VPDU[g]、VPDU[i]、およびVPDU[j]のイントラ予測モードと隣接ピクセル(図中黒帯の部分)とが参照の対象となる。この場合、イントラ予測のブロックサイズは64x64以下(VPDU121以下)であるので、イントラ予測のブロックサイズがVPDU121に等しいときに参照範囲が最大となる。
【0079】
これに対して、方法1-3-1では、方法1のようにVPDUライン毎に符号化・復号を並列化する場合(VPDUベースWPP時)、
図12のBに示されるように、CTU111の左上のVPDU121であるVPDU[a]のイントラ予測において、VPDU[j]のイントラ予測モードと隣接ピクセルの参照が禁止される(無効(unavailable)とされる)。
【0080】
方法1の場合、VPDUライン毎に処理が並列化されている。そして、ライン間の遅延が2VPDUであるので、VPDU[j]を処理する前にVPDU[a]の処理を行うことが可能であるが、上述の参照関係のためにVPDU[j]の処理が終了するまでVPDU[a]の処理を待機しなければならなくなるおそれがある(つまり待機時間が増大するおそれがある)。
【0081】
方法1-3-1のようにこの参照を制限することにより、このようなイントラ予測の参照関係を生じさせないようにする(VPDU[j]とは独立にVPDU[a]のイントラ予測を行う)ことができるので、待機時間の増大を抑制することができる。
【0082】
CTU111のその他のVPDU121については、VPDUベースWPP時においても、WPP OFF時と同様の参照が可能である。例えば、カレントCTU111の右上のVPDU121であるVPDU[b]のイントラ予測においては、WPP OFF時においてもVPDUベースWPP時においても、
図13のAに示されるように、VPDU[f]、VPDU[g]、VPDU[h]、およびVPDU[a]のイントラ予測モードと隣接ピクセル(図中黒帯の部分)とが参照の対象となる。VPDU[c]は、WPP OFF時においてもVPDUベースWPP時においても、VPDU[b]よりも処理順が後になるので、参照できない。
【0083】
また例えば、カレントCTU111の左下のVPDU121であるVPDU[c]のイントラ予測においては、WPP OFF時においてもVPDUベースWPP時においても、
図13のBに示されるように、VPDU[a]、VPDU[b]、VPDU[i]、およびVPDU[j]のイントラ予測モードと隣接ピクセル(図中黒帯の部分)とが参照の対象となる。VPDU[c]の左下のVPDUは、WPP OFF時においてもVPDUベースWPP時においても、カレントCTU111よりも処理順が後になるので、参照できない。
【0084】
また例えば、カレントCTU111の右下のVPDU121であるVPDU[d]のイントラ予測においては、WPP OFF時においてもVPDUベースWPP時においても、
図13のCに示されるように、VPDU[a]、VPDU[b]、およびVPDU[c]のイントラ予測モードと隣接ピクセル(図中黒帯の部分)とが参照の対象となる。VPDU[d]の右上および左下のVPDUは、WPP OFF時においてもVPDUベースWPP時においても、カレントCTU111よりも処理順が後になるので、参照できない。
【0085】
<4-3:方法1-4>
方法1-4では、インター予測において制限が行われる。処理対象のブロックがインター予測モードの場合、そのモード(mode)は、隣接するブロックのインター予測モードを参照して予測され、動きベクトルは、隣接するブロックの動きベクトルを参照して予測される。
【0086】
<4-3-1:方法1-4-1>
方法1-4-1では、
図11において点線矢印で示されるように、CTUの左上のVPDUをカレント予測ブロックとするインター予測において、その1つ前に処理されるCTU(すなわち、左隣のCTU)の右下のVPDUの参照が無効(unavailable)とされる。すなわち、
図11の点線矢印で示されるインター予測モードと動きベクトルの参照が禁止される。つまり、イントラ予測の場合と同様の参照関係が無効(unavailable)とされる(方法1-3-1と同様の制限が行われる)。
【0087】
例えば、WPP OFF時、
図14のAに示されるように、カレントCTU111の左上のVPDU121であるVPDU[a]をカレント予測ブロックとするインター予測において、VPDU[e]、VPDU[f]、VPDU[g]、VPDU[i]、およびVPDU[j]のインター予測モードと動きベクトルとが参照の対象となる。
【0088】
これに対して、方法1-4-1では、VPDUベースWPP時、
図14のBに示されるように、CTU111の左上のVPDU121であるVPDU[a]のインター予測において、VPDU[j]のインター予測モードと動きベクトルの参照が禁止される(無効(unavailable)とされる)。
【0089】
方法1の場合、VPDUライン毎に処理が並列化されている。そして、ライン間の遅延が2VPDUであるので、VPDU[j]を処理する前にVPDU[a](すなわちカレント予測ブロック)の処理を行うことが可能であるが、上述の参照関係のためにVPDU[j]の処理が終了するまでカレント予測ブロック(VPDU[a])の処理を待機しなければならなくなるおそれがある(つまり待機時間が増大するおそれがある)。
【0090】
方法1-4-1のようにこの参照を制限することにより、このようなインター予測の参照関係を生じさせないようにする(VPDU[j]とは独立にVPDU[a]のインター予測を行う)ことができるので、待機時間の増大を抑制することができる。
【0091】
CTU111のその他のVPDU121をカレント予測ブロックとするインター予測については、イントラ予測の場合(
図13)と同様に、VPDUベースWPP時においても、WPP OFF時と同様の参照が可能である。なお、インター予測のブロックサイズが64x64以下(VPDU121以下)の場合、この方法1-4-1の参照制限を行えばよい。
【0092】
ただし、インター予測の場合、予測ブロックのブロックサイズは、例えば、128x64、64x128、128x128等のように、64x64よりも大きく設定することもできる。
【0093】
<4-3-2:方法1-4-2>
方法1-4-2では、カレント予測ブロックのブロックサイズが128xNの場合、その右上の参照が無効(unavailable)とされる。
【0094】
例えば、ブロックサイズ128x64の予測ブロックのインター予測において、その右上のブロックのインター予測モードや動きベクトルの参照が禁止される(無効(unavailable)とされる)。例えば、
図15のAに示されるカレントCTU111の左上のVPDU[a]および右上のVPDU[b]からなる予測ブロック[ab]がカレント予測ブロック131であるとする。この場合、WPP OFF時、
図15のAに示されるように、VPDU[e]、VPDU[f]、VPDU[g]、VPDU[h]、VPDU[i]、およびVPDU[j]のインター予測モードと動きベクトルとが参照の対象となる。
【0095】
これに対して、方法1-4-2では、VPDUベースWPP時、
図15のBに示されるように、予測ブロック[ab]のインター予測において、その右上のVPDU[h]のインター予測モードと動きベクトルの参照が禁止される(無効(unavailable)とされる)。
【0096】
方法1の場合、VPDUライン毎に処理が並列化されており、ライン間の遅延が2VPDUであるので、VPDU[a](すなわち予測ブロック[ab])とVPDU[h]とを同時に処理することが可能であるが、上述の参照関係のために、VPDU[h]の処理が終了するまで予測ブロック[ab]の処理を待機しなければならなくなるおそれがある(つまり待機時間が増大するおそれがある)。
【0097】
方法1-4-2のようにこの参照を制限することにより、このようなインター予測の参照関係を生じさせないようにする(VPDU[h]とは独立に予測ブロック[ab]のインター予測を行う)ことができるので、待機時間の増大を抑制することができる。
【0098】
また、例えば、ブロックサイズ128x128の予測ブロックのインター予測においても同様に、その右上のブロックのインター予測モードや動きベクトルの参照が禁止される(無効(unavailable)とされる)。例えば、
図15のCに示されるカレントCTU111の全VPDU(VPDU[a]、VPDU[b]、VPDU[c]、およびVPDU[d])からなる予測ブロック[abcd]がカレント予測ブロック131であるとする。この場合、WPP OFF時、
図15のCに示されるように、VPDU[e]、VPDU[f]、VPDU[g]、VPDU[h]、VPDU[i]、およびVPDU[j]のインター予測モードと動きベクトルとが参照の対象となる。
【0099】
これに対して、方法1-4-2では、VPDUベースWPP時、
図15のDに示されるように、予測ブロック[abcd]のインター予測において、その右上のVPDU[h]のインター予測モードと動きベクトルの参照が禁止される(無効(unavailable)とされる)。
【0100】
方法1の場合、VPDUライン毎に処理が並列化されており、ライン間の遅延が2VPDUであるので、VPDU[a](すなわち予測ブロック[abcd])とVPDU[h]とを同時に処理することが可能であるが、上述の参照関係のために、VPDU[h]の処理が終了するまで予測ブロック[abcd]の処理を待機しなければならなくなるおそれがある(つまり待機時間が増大するおそれがある)。
【0101】
方法1-4-2のようにこの参照を制限することにより、このようなインター予測の参照関係を生じさせないようにする(VPDU[h]とは独立に予測ブロック[abcd]のインター予測を行う)ことができるので、待機時間の増大を抑制することができる。
【0102】
なお、カレントCTU111の左下のVPDU[c]および右下のVPDU[d]からなる予測ブロック[cd]をカレント予測ブロック131とする場合、
図16に示されるように、VPDUベースWPP時においても、WPP OFF時と同様の参照(VPDU[a]、VPDU[b]、VPDU[i]、およびVPDU[j]のインター予測モードと動きベクトルの参照)が可能である(右上のブロックは処理順が後になるのでWPP OFF時においても参照されない)。
【0103】
<4-3-3:方法1-4-3>
方法1-4-3では、カレント予測ブロックのブロックサイズがNx128の場合、インター予測のモードを示すモード(mode)情報は上段の変換ブロックのCABACが使用され、画像と予測画像の残差データに関する係数データ(residual)は各段の変換ブロックのCABACが使用される。つまり、この場合、モード(mode)情報は予測ブロック毎に符号化・復号され、係数データ(residual)は変換ブロック毎に符号化・復号される。
【0104】
例えば、
図17のAに示されるように、インター予測が行われたブロックサイズ64x128の予測ブロック131の、数字「3」が付されている下段のVPDU121を符号化するとする。この場合、モード(mode)情報の符号化は、同一の予測ブロック131内の数字「1」が付されている上段のVPDU121の符号化結果が適用される。
【0105】
これに対して、係数データ(residual)の符号化は、同一の予測ブロック131内の数字「1」が付されている上段のVPDU121の符号化とは別の処理として行われる。変換ブロックの最大サイズは64x64であるので、上段のVPDU121の係数データ(residual)と下段のVPDU121の係数データ(residual)とを互いに独立に生成することができる。したがって、上段のVPDU121のラインの符号化において、上段のVPDU121の係数データ(residual)の符号化を行い、下段のVPDU121のラインの符号化において、下段のVPDU121の係数データ(residual)の符号化を行うことができる。
【0106】
なお、復号の場合も同様である。また、数字「2」が付されているVPDU121と数字「4」が付されているVPDU121とからなる予測ブロックの場合も同様に処理することができる。
【0107】
例えば、
図17のBに示されるように、インター予測が行われたブロックサイズ128x128の予測ブロック131も、同様に処理される。つまり、この場合、数字「3」または「4」が付されている下段のVPDU121のモード(mode)情報の符号化は、同一の予測ブロック131内の数字「1」または「2」が付されている上段のVPDU121の符号化結果が適用される。これに対して、数字「3」または「4」が付されている下段のVPDU121の係数データ(residual)の符号化は、同一の予測ブロック131内の数字「1」または「2」が付されている上段のVPDU121の符号化とは別の処理として行われる。なお、復号の場合も同様である。
【0108】
このような処理を行うシンタックスの例を
図17のCに示す。つまり、モード(mode)情報の符号化・復号は、予測ブロック毎に行われ、係数データ(residual)の符号化・復号は、変換ブロック毎に行われる。
【0109】
このようにすることにより、ブロックサイズがNx128のインター予測の予測ブロックを、変換ブロックライン毎に並列化して処理することができる。また、モード(mode)情報の符号化の冗長化を抑制することができ、処理負荷の増大や符号化効率の低減を抑制することができる。
【0110】
<5.第1の実施の形態>
<5-1:画像符号化装置>
以上に説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データを符号化する画像符号化装置に、上述した本技術を適用することができる。
【0111】
図18は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。
図18に示される画像符号化装置500は、動画像の画像データを符号化する装置である。例えば、画像符号化装置500は、非特許文献1乃至非特許文献6に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
【0112】
なお、
図18においては、処理部やデータの流れ等の主なものを示しており、
図18に示されるものが全てとは限らない。つまり、画像符号化装置500において、
図18においてブロックとして示されていない処理部が存在したり、
図18において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0113】
図18に示されるように画像符号化装置500は、制御部501、並べ替えバッファ511、演算部512、直交変換部513、量子化部514、符号化部515、蓄積バッファ516、逆量子化部517、逆直交変換部518、演算部519、インループフィルタ部520、フレームメモリ521、予測部522、およびレート制御部523を有する。
【0114】
<制御部>
制御部501は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ511により保持されている動画像データを処理単位のブロック(CU,PU, 変換ブロックなど)へ分割する。また、制御部501は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
【0115】
これらの符号化パラメータの詳細については後述する。制御部501は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
【0116】
ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部515と予測部522とに供給される。変換情報Tinfoは、符号化部515、直交変換部513、量子化部514、逆量子化部517、および逆直交変換部518に供給される。フィルタ情報Finfoは、インループフィルタ部520に供給される。
【0117】
<並べ替えバッファ>
画像符号化装置500には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ511は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ511は、制御部501の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ511は、処理後の各入力画像を演算部512に供給する。また、並べ替えバッファ511は、その各入力画像(元画像)を、予測部522やインループフィルタ部520にも供給する。
【0118】
<演算部>
演算部512は、処理単位のブロックに対応する画像I、および予測部522より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式(3)に示されるように減算して、予測残差resiを導出し、それを直交変換部513に供給する。
【0119】
【0120】
<直交変換部>
直交変換部513は、演算部512から供給される予測残差resiと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差resiに対して直交変換を行い、変換係数coefを導出する。直交変換部513は、その得られた変換係数coefを量子化部514に供給する。
【0121】
<量子化部>
量子化部514は、直交変換部513から供給される変換係数coefと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数coefをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部523により制御される。量子化部514は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルqcoefを、符号化部515および逆量子化部517に供給する。
【0122】
<符号化部>
符号化部515は、量子化部514から供給された量子化変換係数レベルqcoefと、制御部501から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部520から供給されるフィルタ係数等のフィルタに関する情報と、予測部522から供給される最適な予測モードに関する情報とを入力とする。符号化部515は、量子化変換係数レベルqcoefを符号化し(例えばCABAC等の算術符号化を行い)、ビット列を生成する。
【0123】
また、符号化部515は、その量子化変換係数レベルqcoefから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
【0124】
さらに、符号化部515は、インループフィルタ部520から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部522から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部515は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
【0125】
また、符号化部515は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部515は、その符号化データを蓄積バッファ516に供給する。
【0126】
<蓄積バッファ>
蓄積バッファ516は、符号化部515において得られた符号化データを、一時的に保持する。蓄積バッファ516は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置500の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ516は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
【0127】
<逆量子化部>
逆量子化部517は、逆量子化に関する処理を行う。例えば、逆量子化部517は、量子化部514から供給される量子化変換係数レベルqcoefと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルqcoefの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部514において行われる量子化の逆処理である。逆量子化部517は、このような逆量子化により得られた変換係数coefIを、逆直交変換部518に供給する。
【0128】
<逆直交変換部>
逆直交変換部518は、逆直交変換に関する処理を行う。例えば、逆直交変換部518は、逆量子化部517から供給される変換係数coefIと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数coefIに対して逆直交変換を行い、予測残差resiIを導出する。なお、この逆直交変換は、直交変換部513において行われる直交変換の逆処理である。逆直交変換部518は、このような逆直交変換により得られた予測残差resiIを演算部519に供給する。なお、逆直交変換部518は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部518については、復号側について行う説明(後述する)を適用することができる。
【0129】
<演算部>
演算部519は、逆直交変換部518から供給される予測残差resiIと、予測部522から供給される予測画像Pとを入力とする。演算部519は、その予測残差resiIと、その予測残差resiIに対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部519は、導出した局所復号画像Rlocalをインループフィルタ部520およびフレームメモリ521に供給する。
【0130】
<インループフィルタ部>
インループフィルタ部520は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部520は、演算部519から供給される局所復号画像Rlocalと、制御部501から供給されるフィルタ情報Finfoと、並べ替えバッファ511から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部520に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部520に入力されるようにしてもよい。
【0131】
インループフィルタ部520は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部520は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
【0132】
例えば、インループフィルタ部520は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0133】
もちろん、インループフィルタ部520が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部520がウィーナーフィルタ等を適用するようにしてもよい。
【0134】
インループフィルタ部520は、フィルタ処理された局所復号画像Rlocalをフレームメモリ521に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部520は、そのフィルタに関する情報を符号化部515に供給する。
【0135】
<フレームメモリ>
フレームメモリ521は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ521は、演算部519から供給される局所復号画像Rlocalや、インループフィルタ部520から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ521は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ521内のバッファへ格納する)。フレームメモリ521は、予測部522の要求に応じて、その復号画像R(またはその一部)を予測部522に供給する。
【0136】
<予測部>
予測部522は、予測画像の生成に関する処理を行う。例えば、予測部522は、制御部501から供給される予測モード情報Pinfoと、並べ替えバッファ511から供給される入力画像(元画像)と、フレームメモリ521から読み出す復号画像R(またはその一部)を入力とする。予測部522は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部522は、生成した予測画像Pを演算部512および演算部519に供給する。また、予測部522は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部515に供給する。
【0137】
<レート制御部>
レート制御部523は、レート制御に関する処理を行う。例えば、レート制御部523は、蓄積バッファ516に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部514の量子化動作のレートを制御する。
【0138】
<本技術の適用>
以上のような構成の画像符号化装置500において、<3.コンセプト>や<4.方法1>において上述した本技術を適用する。つまり、符号化部515が変換ブロック毎のWPPを適用する。例えば、符号化部515が、画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する。
【0139】
この画像符号化装置500において「方法1」を適用するようにしてもよい。例えば、制御部501が、CTU111にVPDU121を設定し、符号化部515がそのVPDUライン毎に並列に符号化を行う(VPDUライン毎のWPPを適用する)ようにしてもよい。また、符号化部515が、各VPDUラインの処理を、その1つ上のVPDUラインに対して、2VPDUだけ遅延して実行するようにしてもよい。
【0140】
また、この画像符号化装置500において「方法1-1」や「方法1-2」を適用するようにしてもよい。つまり、符号化部515が、CTU111内の各段のVPDU121の処理において互いに異なるCABACのコンテキストを用いるようにしてもよい。また、符号化のコンテキストの継承(コピー)をVPDUライン間で行うようにしてもよい。
【0141】
例えば、符号化部515が、画像に関する係数データの変換ブロックの各ラインを、左の変換ブロックから順に1変換ブロックずつ符号化するようにしてもよい。また、符号化部515が、各変換ブロックを、1つ前のエントロピ符号化により導出された生起確率を用いてエントロピ符号化するようにしてもよい。
【0142】
また例えば、符号化部515が、画像の1番上の変換ブロックのラインの1番左の変換ブロックを、生起確率の初期値を用いてエントロピ符号化するようにしてもよい。また、符号化部515が、画像の上から2番目以降の変換ブロックのラインの1番左の変換ブロックを、1つ上の変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化するようにしてもよい。
【0143】
また、この画像符号化装置500において「方法1-3」を適用するようにしてもよい。すなわち、予測部522が、イントラ予測において一部のモードを制限するようにしてもよい。例えば、この画像符号化装置500において「方法1-3-1」を適用するようにしてもよい。すなわち、CTUの左上のVPDUのイントラ予測において、制御部501が、その1つ前に処理されるCTU(すなわち、左隣のCTU)の右下のVPDUの参照を無効(unavailable)とし、予測部522が、その制御に従ってイントラ予測を行うようにしてもよい。つまり、予測部522が、CTUの左上のVPDUについて、左隣のCTUの右下のVPDUの参照を無効(unavailable)としてイントラ予測を行うようにしてもよい。
【0144】
例えば、予測部522が、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのイントラ予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの参照を無効としてイントラ予測を行うようにしてもよい。
【0145】
また、この画像符号化装置500において「方法1-4」を適用するようにしてもよい。すなわち、予測部522が、イントラ予測において制限を行うようにしてもよい。例えば、この画像符号化装置500において「方法1-4-1」を適用するようにしてもよい。すなわち、CTUの左上のVPDUをカレント予測ブロックとするインター予測において、制御部501が、その1つ前に処理されるCTU(すなわち、左隣のCTU)の右下のVPDUのインター予測モードと動きベクトルの参照を無効(unavailable)とし、予測部522が、その制御に従ってインター予測を行うようにしてもよい。つまり、予測部522が、CTUの左上のVPDUをカレント予測ブロックとする場合、左隣のCTUの右下のVPDUのインター予測モードと動きベクトルの参照を無効(unavailable)としてインター予測を行うようにしてもよい。
【0146】
例えば、予測部522が、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのインター予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの動きベクトルの参照を無効としてインター予測を行うようにしてもよい。
【0147】
また、例えば、この画像符号化装置500において「方法1-4-2」を適用するようにしてもよい。すなわち、ブロックサイズ128xNの予測ブロックのインター予測において、制御部501が、その右上のブロックのインター予測モードや動きベクトルの参照を禁止し(無効(unavailable)とし)、予測部522が、その制御に従ってインター予測を行うようにしてもよい。つまり、予測部522が、ブロックサイズ128xNのカレント予測ブロックの右上のブロックの参照を無効(unavailable)としてインター予測を行うようにしてもよい。
【0148】
例えば、予測部522が、インター予測の処理単位であり、水平方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックのインター予測において、右上の変換ブロックの動きベクトルの参照を無効とするようにしてもよい。
【0149】
また、例えば、この画像符号化装置500において「方法1-4-3」を適用するようにしてもよい。すなわち、符号化部515が、インター予測が行われたブロックサイズがNx128の予測ブロックについて、インター予測のモードを示すモード(mode)情報を予測ブロック毎に符号化し、画像と予測画像の残差データに関する係数データ(residual)を変換ブロック毎に符号化するようにしてもよい。
【0150】
例えば、符号化部515が、インター予測の処理単位であり、垂直方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックについて、インター予測のモードを示すモード情報を予測ブロック毎に符号化し、画像と予測画像の残差データを予測ブロックに含まれる変換ブロック毎に符号化するようにしてもよい。
【0151】
このような構成とすることにより、画像符号化装置500は、符号化の並列度の低減を抑制することができ、処理時間の増大を抑制することができる。
【0152】
<5-2:処理の流れ>
<画像符号化処理の流れ>
次に、以上のような画像符号化装置500により実行される各処理の流れについて説明する。最初に、
図19のフローチャートを参照して、画像符号化処理の流れの例を説明する。
【0153】
画像符号化処理が開始されると、ステップS101において、並べ替えバッファ511は、制御部501に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
【0154】
ステップS102において、制御部501は、並べ替えバッファ511が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
【0155】
ステップS103において、制御部501は、並べ替えバッファ511が保持する入力画像についての符号化パラメータを決定(設定)する。その際、制御部501は、必要に応じて、上述したイントラ予測やインター予測の制限に関する設定を行う。この設定は、例えば予測モード情報Pinfo等として予測部522に供給される。
【0156】
ステップS104において、予測部522は、制御部501の制御に従って予測処理を行い、最適な予測モードの予測画像等を生成する。予測処理の詳細については後述する。
【0157】
ステップS105において、演算部512は、入力画像と、ステップS104の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部512は、入力画像と予測画像との予測残差resiを生成する。このようにして求められた予測残差resiは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【0158】
ステップS106において、直交変換部513は、ステップS105の処理により生成された予測残差resiに対して直交変換処理を行い、変換係数coefを導出する。
【0159】
ステップS107において、量子化部514は、制御部501により算出された量子化パラメータを用いる等して、ステップS106の処理により得られた変換係数coefを量子化し、量子化変換係数レベルqcoefを導出する。
【0160】
ステップS108において、逆量子化部517は、ステップS107の処理により生成された量子化変換係数レベルqcoefを、そのステップS107の量子化の特性に対応する特性で逆量子化し、変換係数coefI導出する。
【0161】
ステップS109において、逆直交変換部518は、ステップS108の処理により得られた変換係数coefIを、ステップS106の直交変換処理に対応する方法で逆直交変換し、予測残差resiIを導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS109の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
【0162】
ステップS110において、演算部519は、ステップS109の処理により導出された予測残差resiIに、ステップS104の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【0163】
ステップS111において、インループフィルタ部520は、ステップS110の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
【0164】
ステップS112において、フレームメモリ521は、ステップS110の処理により導出された、局所的に復号された復号画像や、ステップS111においてフィルタ処理された、局所的に復号された復号画像を記憶する。
【0165】
ステップS113において、符号化部515は、符号化処理を行い、ステップS107の処理により得られた量子化変換係数レベルqcoefを符号化する。例えば、符号化部515は、画像に関する情報である量子化変換係数レベルqcoefを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部515は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部515は、量子化変換係数レベルqcoefから残差情報RInfoを導出し、その残差情報RInfoを符号化する。この符号化処理の詳細については後述する。
【0166】
ステップS114において、蓄積バッファ516は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置500の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部523は、必要に応じてレート制御を行う。
【0167】
ステップS114の処理が終了すると、画像符号化処理が終了する。
【0168】
このような画像符号化処理のステップS113において実行される符号化処理において、符号化部515は、画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する。このようにすることにより、画像符号化装置500は、符号化の並列度の低減を抑制することができ、処理時間の増大を抑制することができる。
【0169】
<予測処理の流れ>
次に、
図19のステップS104において実行される予測処理の流れの例を、
図20のフローチャートを参照して説明する。
【0170】
予測処理が開始されると、制御部501は、ステップS131において、CTUの左上のVPDUのイントラ予測について、1つ前のCTUの右下のVPDUを無効(unavailable)とする。ステップS132において、予測部522は、ステップS131の設定に従ってイントラ予測を行う。つまり、予測部522は、各VPDUのイントラ予測を行い、CTUの左上のVPDUを処理対象とする場合、1つ前のCTUの右下のVPDUを無効(unavailable)としてイントラ予測を行う。
【0171】
ステップS133において、制御部501は、CTUの左上のVPDUからなる予測ブロックのインター予測について、1つ前のCTUの右下のVPDUを無効(unavailable)とする。また、ステップS134において、制御部501は、ブロックサイズが128xNの予測ブロックのインター予測について、その予測ブロックの右上のブロックの参照を無効(unavailable)とする。ステップS135において、予測部522は、ステップS133およびステップS134の設定に従ってインター予測を行う。つまり、予測部522は、各予測ブロックのインター予測を行い、CTUの左上のVPDUからなる予測ブロックを処理対象とする場合、1つ前のCTUの右下のVPDUを無効(unavailable)としてインター予測を行い、ブロックサイズが128xNの予測ブロックを処理対象とする場合、その予測ブロックの右上のブロックの参照を無効(unavailable)としてインター予測を行う。
【0172】
ステップS136において、予測部522は、ステップS132の処理結果と、ステップS135の処理結果に基づいて、最適な予測モードを選択する。つまり、予測部522は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【0173】
ステップS136の処理が終了すると予測処理が終了し、処理は
図19に戻る。
【0174】
<符号化処理の流れ>
次に、
図19のステップS113において実行される符号化処理の流れの例を、
図21のフローチャートを参照して説明する。
【0175】
符号化処理が開始されると、符号化部515は、ステップS151において、処理対象とするVPDUラインの位置(画像の上からのライン数)を示す変数Tを初期値(=1)に設定する。
【0176】
ステップS152において、符号化部515は、画像の上から1ライン目のVPDUラインであるVPDUライン1に対するVPDU処理を行う。この処理の詳細については後述する。VPDUライン1に対する処理が終了すると、処理はステップS153に進む。
【0177】
ステップS153において、符号化部515は、未処理のVPDUラインが存在するか否かを判定する。画像の最下段のVPDUラインまで処理が終了しておらず、未処理のVPDUラインが存在すると判定された場合、処理はステップS154に進む。
【0178】
ステップS154において、符号化部515は、変数Tの値に1を加算する(T = T+1)。変数Tの値をインクリメントすると、処理はステップS155に進む。
【0179】
ステップS155において、符号化部515は、画像の上からTライン目のVPDUラインであるVPDUラインTに対するVPDU処理を行う。この処理の詳細については後述する。VPDUラインTに対する処理が終了すると、処理はステップS153に戻る。
【0180】
つまり、全てのVPDUラインが処理されるまで、ステップS153乃至ステップS155の各処理が繰り返される。そして、ステップS153において、未処理のVPDUラインが存在しない(全てのVPDUラインが処理された)と判定された場合、符号化処理が終了し、処理は
図19に戻る。
【0181】
<VPDUライン1に対するVPDU処理の流れ>
次に、
図21のステップS152において実行されるVPDUライン1に対するVPDU処理の流れの例を、
図22のフローチャートを参照して説明する。
【0182】
VPDU処理が開始されると、符号化部515は、ステップS171において、カレントVPDUの位置(画像左端からのVPDU数)を示す変数iを初期値(=1)に設定する。また、符号化部515は、値Nに水平方向のVPDU数を設定する。つまり、値Nは、VPDUライン1のVPDU数を示す。
【0183】
ステップS172において、符号化部515は、CABACのコンテキスト(生起確率)を初期化する。
【0184】
ステップS173において、符号化部515は、変数iがN以下である(i <= N)か否かを判定する。変数iがN以下であり、VPDUライン1に未処理のVPDUが存在すると判定された場合、処理はステップS174に進む。
【0185】
ステップS174において、符号化部515は、VPDU符号化処理を実行し、左端からi番目のVPDUを符号化する。このVPDU符号化処理については後述する。左端からi番目のVPDUを符号化すると処理はステップS175に進む。
【0186】
ステップS175において、符号化部515は、変数iの値が2である(i == 2)か否かを判定する。変数iの値が2であると判定された場合、処理はステップS176に進む。
【0187】
ステップS176において、符号化部515は、ステップS174において生成された、画像の左端から2番目のVPDUのCABACのコンテキスト(生起確率)を保存する。コンテキストが保存されると処理はステップS177に進む。
【0188】
また、ステップS175において、変数iの値が2でない(処理対象が画像の左端から2番目のVPDUでなかった)と判定された場合、ステップS176の処理がスキップされ、処理はステップS177に進む。
【0189】
ステップS177において、符号化部515は、変数iの値が2以上である(i >= 2)か否かを判定する。変数iの値が2以上であると判定された場合、処理はステップS178に進む。
【0190】
ステップS178において、符号化部515は、VPDUライン2を処理するスレッドであるVPDUライン2処理Threadに対してVPDU処理の完了通知を行う。VPDU処理完了通知が行われると処理はステップS179に進む。
【0191】
また、ステップS177において、変数iの値が2より小さい(処理対象が画像の左端のVPDUであった)と判定された場合、ステップS178の処理がスキップされ、処理はステップS179に進む。
【0192】
ステップS179において、符号化部515は、変数iの値に1を加算する(i = i+1)。変数iの値をインクリメントすると、処理はステップS173に戻る。
【0193】
つまり、VPDUライン1の全てのVPDUが処理されるまで、ステップS173乃至ステップS179の各処理が繰り返される。そして、ステップS173において、未処理のVPDUが存在しない(VPDUライン1の全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図21に戻る。
【0194】
<VPDU符号化処理の流れ>
次に、例えば
図22のステップS174等において実行されるVPDU符号化処理の流れの例を、
図23のフローチャートを参照して説明する。
【0195】
VPDU符号化処理が開始されると、符号化部515は、ステップS191において、i番目のVPDU(すなわちカレントVPDU)はInterNx128モードであるか(すなわち、インター予測が行われたブロックサイズNx128の予測ブロックに含まれるか)否かを判定する。InterNx128モードであると判定された場合、処理はステップS192に進む。
【0196】
ステップS192において、符号化部515は、変数Tが奇数であるか否か、すなわち、処理対象であるカレントVPDUラインTが画像の上から奇数番目のVPDUラインであるか否かを判定する。変数Tが奇数であると判定された場合、処理はステップS193に進む。
【0197】
また、ステップS191において、カレントVPDUがInterNx128モードでないと判定された場合、ステップS192の処理がスキップされ、処理はステップS193に進む。
【0198】
ステップS193において、符号化部515は、この場合カレントVPDUがCTU内の上の段のVPDUであるので、モード(mode)情報を符号化する。モード(mode)情報が符号化されると処理はステップS194に進む。
【0199】
また、ステップS192において、変数Tが偶数である(すなわち、カレントVPDUラインTが画像の上から偶数番目のVPDUラインであり、カレントVPDUがCTU内の下の段のVPDUである)と判定された場合、そのCTUの上の段のVPDUの符号化結果が適用される。すなわち、ステップS193の処理がスキップされ、処理はステップS194に進む。
【0200】
ステップS194において、符号化部515は、カレントVPDUの、画像と予測画像の残差データに関する係数データ(residual)を符号化する。ステップS194の処理が終了すると、VPDU符号化処理が終了し、処理は、このVPDU符号化処理が実行されたVPDU処理に戻る。
【0201】
<VPDUラインTに対するVPDU処理の流れ>
次に、
図21のステップS155において実行されるVPDUラインTに対するVPDU処理の流れの例を、
図24のフローチャートを参照して説明する。
【0202】
VPDU処理が開始されると、符号化部515は、ステップS211において、1つ上のVPDUラインT-1を処理するスレッドであるVPDUラインT-1処理ThreadからのVPDU処理完了通知を受け取るまで待機する。VPDUラインT-1処理ThreadからVPDU処理完了通知を取得すると処理はステップS212に進む。
【0203】
ステップS212において、符号化部515は、変数iを初期値(=1)に設定する。また、符号化部515は、値Nに水平方向のVPDU数を設定する。
【0204】
ステップS213において、符号化部515は、1つ上のVPDUラインT-1のVPDU処理において保存されたCABACのコンテキスト(生起確率)を引き継ぎ、CABACを初期化する。
【0205】
ステップS214において、符号化部515は、変数iがN以下である(i <= N)か否かを判定する。変数iがN以下であり、VPDUラインTに未処理のVPDUが存在すると判定された場合、処理はステップS215に進む。
【0206】
ステップS215において、符号化部515は、処理のタイミングを制御するために、VPDUラインT-1処理ThreadからのVPDU処理完了通知を受け取るまで待機する。VPDUラインT-1処理ThreadからVPDU処理完了通知を取得すると処理はステップS216に進む。
【0207】
ステップS216において、符号化部515は、VPDU符号化処理(
図23)を実行し、左端からi番目のVPDUを符号化する。左端からi番目のVPDUを符号化すると処理はステップS217に進む。
【0208】
ステップS217において、符号化部515は、変数iの値が2である(i == 2)か否かを判定する。変数iの値が2であると判定された場合、処理はステップS218に進む。
【0209】
ステップS218において、符号化部515は、ステップS216において生成された、画像の左端から2番目のVPDUのCABACのコンテキスト(生起確率)を保存する。コンテキストが保存されると処理はステップS219に進む。
【0210】
また、ステップS217において、変数iの値が2でない(処理対象が画像の左端から2番目のVPDUでなかった)と判定された場合、ステップS218の処理がスキップされ、処理はステップS219に進む。
【0211】
ステップS219において、符号化部515は、変数iの値が2以上である(i >= 2)か否かを判定する。変数iの値が2以上であると判定された場合、処理はステップS220に進む。
【0212】
ステップS220において、符号化部515は、1つ下のVPDUラインであるVPDUラインT+1を処理するスレッドであるVPDUラインT+1処理Threadに対してVPDU処理の完了通知を行う。VPDU処理完了通知が行われると処理はステップS221に進む。
【0213】
また、ステップS219において、変数iの値が2より小さい(処理対象が画像の左端のVPDUであった)と判定された場合、ステップS220の処理がスキップされ、処理はステップS221に進む。
【0214】
ステップS221において、符号化部515は、変数iの値に1を加算する(i = i+1)。変数iの値をインクリメントすると、処理はステップS214に戻る。
【0215】
つまり、VPDUラインTの全てのVPDUが処理されるまで、ステップS214乃至ステップS221の各処理が繰り返される。そして、ステップS214において、未処理のVPDUが存在しない(VPDUラインTの全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図21に戻る。
【0216】
以上のように各処理を実行することにより、画像符号化装置500は、符号化の並列度の低減を抑制することができる。
【0217】
<5-3:画像復号装置>
また、以上に説明した本技術は、例えば、画像データが符号化された符号化データを復号する画像復号装置に、上述した本技術を適用することができる。
【0218】
図25は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。
図25に示される画像復号装置600は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置600は、非特許文献1乃至非特許文献6に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置600は、上述の画像符号化装置500により生成された符号化データ(ビットストリーム)を復号する。
【0219】
なお、
図25においては、処理部やデータの流れ等の主なものを示しており、
図25に示されるものが全てとは限らない。つまり、画像復号装置600において、
図25においてブロックとして示されていない処理部が存在したり、
図25において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0220】
図25において、画像復号装置600は、蓄積バッファ611、復号部612、逆量子化部613、逆直交変換部614、演算部615、インループフィルタ部616、並べ替えバッファ617、フレームメモリ618、および予測部619を備えている。なお、予測部619は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置600は、符号化データ(ビットストリーム)を復号することによって、動画像データを生成するための装置である。
【0221】
<蓄積バッファ>
蓄積バッファ611は、画像復号装置600に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ611は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部612に供給する。
【0222】
<復号部>
復号部612は、画像の復号に関する処理を行う。例えば、復号部612は、蓄積バッファ611から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
【0223】
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部612は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
【0224】
<ヘッダ情報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(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
【0225】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【0226】
コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
【0227】
なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
【0228】
<予測モード情報Pinfo>
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
【0229】
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
【0230】
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
【0231】
コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
【0232】
多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
【0233】
色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式(4)のような割り当て方となる。
【0234】
【0235】
なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
【0236】
色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
【0237】
動き予測情報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を参照)。
【0238】
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0239】
<変換情報Tinfo>
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0240】
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。変換スキップフラグ(ts_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子(scanIdx)
量子化パラメータ(qp)
量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
【0241】
<残差情報Rinfo>
残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
【0242】
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:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)
など。
【0243】
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0244】
<フィルタ情報Finfo>
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
【0245】
デブロッキングフィルタ(DBF)に関する制御情報
適応オフセットフィルタ(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
【0246】
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0247】
復号部612の説明に戻り、復号部612は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルqcoefを導出する。復号部612は、その量子化変換係数レベルqcoefを、逆量子化部613に供給する。
【0248】
また、復号部612は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルqcoef、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
【0249】
ヘッダ情報Hinfoは、逆量子化部613、逆直交変換部614、予測部619、インループフィルタ部616に供給される。予測モード情報Pinfoは、逆量子化部613および予測部619に供給される。変換情報Tinfoは、逆量子化部613および逆直交変換部614に供給される。フィルタ情報Finfoは、インループフィルタ部616に供給される。
【0250】
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
【0251】
<逆量子化部>
逆量子化部613は、逆量子化に関する処理を行う。例えば、逆量子化部613は、復号部612から供給される変換情報Tinfoおよび量子化変換係数レベルqcoefを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルqcoefの値をスケーリング(逆量子化)し、逆量子化後の変換係数coefIを導出する。
【0252】
なお、この逆量子化は、量子化部514による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部517による逆量子化と同様の処理である。つまり、逆量子化部517は、逆量子化部613と同様の処理(逆量子化)を行う。
【0253】
逆量子化部613は、導出した変換係数coefIを逆直交変換部614に供給する。
【0254】
<逆直交変換部>
逆直交変換部614は、逆直交変換に関する処理を行う。例えば、逆直交変換部614は、逆量子化部613から供給される変換係数coefI、および、復号部612から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数coefIに対して逆直交変換処理を行い、予測残差resiIを導出する。
【0255】
なお、この逆直交変換は、直交変換部513による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部518による逆直交変換と同様の処理である。つまり、逆直交変換部518は、逆直交変換部614と同様の処理(逆直交変換)を行う。
【0256】
逆直交変換部614は、導出した予測残差resiIを演算部615に供給する。
【0257】
<演算部>
演算部615は、画像に関する情報の加算に関する処理を行う。例えば、演算部615は、逆直交変換部614から供給される予測残差resiIと、予測部619から供給される予測画像Pとを入力とする。演算部615は、以下の式(5)に示されるように、予測残差resiIとその予測残差resiIに対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。
【0258】
【0259】
演算部615は、導出した局所復号画像Rlocalを、インループフィルタ部616およびフレームメモリ618に供給する。
【0260】
<インループフィルタ部>
インループフィルタ部616は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部616は、演算部615から供給される局所復号画像Rlocalと、復号部612から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部616に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
【0261】
インループフィルタ部616は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
【0262】
例えば、インループフィルタ部616は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0263】
インループフィルタ部616は、符号化側(例えば画像符号化装置500のインループフィルタ部520)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部616が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部616がウィーナーフィルタ等を適用するようにしてもよい。
【0264】
インループフィルタ部616は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ617およびフレームメモリ618に供給する。
【0265】
<並べ替えバッファ>
並べ替えバッファ617は、インループフィルタ部616から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ617は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ617は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ617は、並べ替えた復号画像R群を動画像データとして画像復号装置600の外部に出力する。
【0266】
<フレームメモリ>
フレームメモリ618は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ618は、演算部615より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ618内のバッファへ格納する。
【0267】
また、フレームメモリ618は、インループフィルタ部616から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ618内のバッファへ格納する。フレームメモリ618は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部619に供給する。
【0268】
なお、フレームメモリ618が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
【0269】
<予測部>
予測部619は、予測画像の生成に関する処理を行う。例えば、予測部619は、復号部612から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部619は、その予測モード情報Pinfoによって指定される、フレームメモリ618に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部619は、導出した予測画像Pを、演算部615に供給する。
【0270】
<本技術の適用>
以上のような構成の画像復号装置600において、<3.コンセプト>や<4.方法1>において上述した本技術を適用する。つまり、復号部612が変換ブロック毎のWPPを適用する。例えば、復号部612が、画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する。
【0271】
この画像復号装置600において「方法1」を適用するようにしてもよい。例えば、復号部612が、CTU111にVPDU121を設定し、そのVPDUライン毎に並列に復号を行う(VPDUライン毎のWPPを適用する)ようにしてもよい。また、復号部612が、各VPDUラインの処理を、その1つ上のVPDUラインに対して、2VPDUだけ遅延して実行するようにしてもよい。
【0272】
また、この画像復号装置600において「方法1-1」や「方法1-2」を適用するようにしてもよい。つまり、復号部612が、CTU111内の各段のVPDU121の処理において互いに異なるCABACのコンテキストを用いるようにしてもよい。また、復号のコンテキストの継承(コピー)をVPDUライン間で行うようにしてもよい。
【0273】
例えば、復号部612が、画像に関する係数データの変換ブロックの各ラインの符号化データを、左の変換ブロックから順に1変換ブロックずつ復号するようにしてもよい。また、復号部612が、各変換ブロックの符号化データを、1つ前のエントロピ復号により導出された生起確率を用いてエントロピ復号するようにしてもよい。
【0274】
また例えば、復号部612が、画像の1番上の変換ブロックのラインの1番左の変換ブロックの符号化データを、生起確率の初期値を用いてエントロピ復号するようにしてもよい。また、復号部612が、画像の上から2番目以降の変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号するようにしてもよい。
【0275】
また、この画像復号装置600において「方法1-3」を適用するようにしてもよい。すなわち、予測部619が、イントラ予測において一部のモードを制限するようにしてもよい。例えば、この画像復号装置600において「方法1-3-1」を適用するようにしてもよい。すなわち、CTUの左上のVPDUについて、予測部619が、その1つ前に処理されるCTU(すなわち、左隣のCTU)の右下のVPDUの参照を無効(unavailable)としてイントラ予測を行うようにしてもよい。
【0276】
例えば、予測部619が、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのイントラ予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの参照を無効としてイントラ予測を行うようにしてもよい。
【0277】
また、この画像復号装置600において「方法1-4」を適用するようにしてもよい。すなわち、予測部619が、イントラ予測において制限を行うようにしてもよい。例えば、この画像復号装置600において「方法1-4-1」を適用するようにしてもよい。すなわち、CTUの左上のVPDUをカレント予測ブロックとするインター予測において、予測部619が、その1つ前に処理されるCTU(すなわち、左隣のCTU)の右下のVPDUのインター予測モードと動きベクトルの参照を無効(unavailable)としてインター予測を行うようにしてもよい。
【0278】
例えば、予測部619が、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのインター予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの動きベクトルの参照を無効としてインター予測を行うようにしてもよい。
【0279】
また、例えば、この画像復号装置600において「方法1-4-2」を適用するようにしてもよい。すなわち、ブロックサイズ128xNの予測ブロックのインター予測において、予測部619が、その右上のブロックのインター予測モードや動きベクトルの参照を無効(unavailable)としてインター予測を行うようにしてもよい。
【0280】
例えば、予測部619が、インター予測の処理単位であり、水平方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックのインター予測において、右上の変換ブロックの動きベクトルの参照を無効とするようにしてもよい。
【0281】
また、例えば、この画像復号装置600において「方法1-4-3」を適用するようにしてもよい。すなわち、復号部612が、インター予測が行われたブロックサイズがNx128の予測ブロックについて、インター予測のモードを示すモード(mode)情報の符号化データを予測ブロック毎に復号し、画像と予測画像の残差データに関する係数データ(residual)の符号化データを変換ブロック毎に復号するようにしてもよい。
【0282】
例えば、復号部612が、インター予測の処理単位であり、垂直方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックについて、インター予測のモードを示すモード情報の符号化データを予測ブロック毎に復号し、画像と予測画像の残差データの符号化データを予測ブロックに含まれる変換ブロック毎に復号するようにしてもよい。
【0283】
このような構成とすることにより、画像復号装置600は、復号の並列度の低減を抑制することができ、処理時間の増大を抑制することができる。
【0284】
<5-4:処理の流れ>
<画像復号処理の流れ>
次に、以上のような画像復号装置600により実行される各処理の流れについて説明する。最初に、
図26のフローチャートを参照して、画像復号処理の流れの例を説明する。
【0285】
画像復号処理が開始されると、蓄積バッファ611は、ステップS301において、画像復号装置600の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
【0286】
ステップS302において、復号部612は、復号処理を行い、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルqcoefを得る。また、復号部612は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。この復号処理の詳細については後述する。
【0287】
ステップS303において、逆量子化部613は、ステップS302の処理により得られた量子化変換係数レベルqcoefに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数coefIを得る。
【0288】
ステップS304において、逆直交変換部614は、ステップS303の処理により得られた変換係数coefIに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差resiIを得る。
【0289】
ステップS305において、予測部619は、ステップS302においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ618に記憶されている参照画像を参照する等して、予測画像Pを生成する。
【0290】
ステップS306において、演算部615は、ステップS304の処理により得られた予測残差resiIと、ステップS305の処理により得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
【0291】
ステップS307において、インループフィルタ部616は、ステップS306の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
【0292】
また、ステップS308において、フレームメモリ618は、ステップS306の処理により得られた局所復号画像Rlocal、および、ステップS307の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
【0293】
ステップS309において、並べ替えバッファ617は、ステップS307の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。
【0294】
ステップS310において、並べ替えバッファ617は、再生順に並べ替えた復号画像R群を、動画像として画像復号装置600の外部に出力する。ステップS310の処理が終了すると、画像復号処理が終了する。
【0295】
このような画像復号処理のステップS302において実行される復号処理において、復号部612は、画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する。このようにすることにより、画像復号装置600は、復号の並列度の低減を抑制することができ、処理時間の増大を抑制することができる。
【0296】
<復号処理の流れ>
次に、
図26のステップS302において実行される復号処理の流れの例を、
図27のフローチャートを参照して説明する。
【0297】
復号処理が開始されると、復号部612は、ステップS331において、処理対象とするVPDUラインの位置(画像の上からのライン数)を示す変数Tを初期値(=1)に設定する。
【0298】
ステップS332において、復号部612は、画像の上から1ライン目のVPDUラインであるVPDUライン1に対するVPDU処理を行う。この処理の詳細については後述する。VPDUライン1に対する処理が終了すると、処理はステップS333に進む。
【0299】
ステップS333において、復号部612は、未処理のVPDUラインが存在するか否かを判定する。画像の最下段のVPDUラインまで処理が終了しておらず、未処理のVPDUラインが存在すると判定された場合、処理はステップS334に進む。
【0300】
ステップS334において、復号部612は、変数Tの値に1を加算する(T = T+1)。変数Tの値をインクリメントすると、処理はステップS335に進む。
【0301】
ステップS335において、復号部612は、変数Tが偶数であるか否かを判定する。変数Tが偶数である(すなわち、カレントVPDUラインTが画像の上から偶数番目のVPDUラインであり、カレントVPDUがCTU内の下の段のVPDUである)と判定された場合、処理はステップS336に進む。
【0302】
ステップS336において、復号部612は、画像の上からTライン目(すなわち偶数番目)のVPDUラインであるVPDUラインT(偶数)に対するVPDU処理を行う。この処理の詳細については後述する。VPDUラインT(偶数)に対する処理が終了すると、処理はステップS333に戻る。
【0303】
また、ステップS335において、変数Tが(T=1を除く)奇数である(すなわち、カレントVPDUラインTが画像の上から奇数番目(上から1番目を除く奇数番目)のVPDUラインであり、カレントVPDUがCTU内の上の段のVPDUである)と判定された場合、処理はステップS337に進む。
【0304】
ステップS337において、復号部612は、画像の上からTライン目(すなわち上から1番目を除く奇数番目)のVPDUラインであるVPDUラインT(奇数)に対するVPDU処理を行う。この処理の詳細については後述する。VPDUラインT(奇数)に対する処理が終了すると、処理はステップS333に戻る。
【0305】
つまり、全てのVPDUラインが処理されるまで、ステップS333乃至ステップS336(または、ステップS333乃至ステップS335、並びにステップS337)の各処理が繰り返される。そして、ステップS333において、未処理のVPDUラインが存在しない(全てのVPDUラインが処理された)と判定された場合、復号処理が終了し、処理は
図26に戻る。
【0306】
<VPDUライン1に対するVPDU処理の流れ>
次に、
図27のステップS332において実行されるVPDUライン1に対するVPDU処理の流れの例を、
図28のフローチャートを参照して説明する。
【0307】
VPDU処理が開始されると、復号部612は、ステップS351において、カレントVPDUの位置(画像左端からのVPDU数)を示す変数iを初期値(=1)に設定する。また、復号部612は、値Nに水平方向のVPDU数を設定する。
【0308】
ステップS352において、復号部612は、CABACのコンテキスト(生起確率)を初期化する。
【0309】
ステップS353において、復号部612は、変数iがN以下である(i <= N)か否かを判定する。変数iがN以下であり、VPDUライン1に未処理のVPDUが存在すると判定された場合、処理はステップS354に進む。
【0310】
ステップS354において、復号部612は、変数iが奇数であるか否かを判定する。変数iが奇数である(すなわちカレントVPDUがCTUの左上のVPDUである)と判定された場合、処理はステップS355に進む。
【0311】
ステップS355において、復号部612は、イントラ予測およびインター予測において、1つ前のCTUの右下のVPDUの参照を無効(unavailable)とする。ステップS355の処理が終了すると処理はステップS356に進む。
【0312】
また、ステップS354において、変数iが偶数である(すなわちカレントVPDUがCTUの右上のVPDUである)と判定された場合、ステップS355の処理がスキップされ、処理はステップS356に進む。
【0313】
ステップS356において、復号部612は、VPDU復号処理を実行し、左端からi番目のVPDUの符号化データを復号する。このVPDU復号処理については後述する。左端からi番目のVPDUの符号化データを復号すると処理はステップS357に進む。
【0314】
ステップS357において、復号部612は、変数iの値が2である(i == 2)か否かを判定する。変数iの値が2であると判定された場合、処理はステップS358に進む。
【0315】
ステップS358において、復号部612は、ステップS356において生成された、画像の左端から2番目のVPDUのCABACのコンテキスト(生起確率)を保存する。コンテキストが保存されると処理はステップS359に進む。
【0316】
また、ステップS357において、変数iの値が2でない(処理対象が画像の左端から2番目のVPDUでなかった)と判定された場合、ステップS358の処理がスキップされ、処理はステップS359に進む。
【0317】
ステップS359において、復号部612は、変数iの値が2以上である(i >= 2)か否かを判定する。変数iの値が2以上であると判定された場合、処理はステップS360に進む。
【0318】
ステップS360において、復号部612は、VPDUライン2を処理するスレッドであるVPDUライン2処理Threadに対してVPDU処理の完了通知を行う。VPDU処理完了通知が行われると処理はステップS361に進む。
【0319】
また、ステップS359において、変数iの値が2より小さい(処理対象が画像の左端のVPDUであった)と判定された場合、ステップS360の処理がスキップされ、処理はステップS361に進む。
【0320】
ステップS361において、復号部612は、変数iの値に1を加算する(i = i+1)。変数iの値をインクリメントすると、処理はステップS353に戻る。
【0321】
つまり、VPDUライン1の全てのVPDUが処理されるまで、ステップS353乃至ステップS361の各処理が繰り返される。そして、ステップS353において、未処理のVPDUが存在しない(VPDUライン1の全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図27に戻る。
【0322】
<VPDU復号処理の流れ>
次に、例えば
図28のステップS356等において実行されるVPDU復号処理の流れの例を、
図29のフローチャートを参照して説明する。
【0323】
VPDU復号処理が開始されると、復号部612は、ステップS381において、i番目のVPDU(すなわちカレントVPDU)はInterNx128モードであるか(すなわち、インター予測が行われたブロックサイズNx128の予測ブロックに含まれるか)否かを判定する。InterNx128モードであると判定された場合、処理はステップS382に進む。
【0324】
ステップS382において、復号部612は、変数Tが奇数であるか否か、すなわち、処理対象であるカレントVPDUラインTが画像の上から奇数番目のVPDUラインであるか否かを判定する。変数Tが奇数であると判定された場合、処理はステップS383に進む。
【0325】
また、ステップS381において、カレントVPDUがInterNx128モードでないと判定された場合、ステップS382の処理がスキップされ、処理はステップS383に進む。
【0326】
ステップS383において、復号部612は、この場合カレントVPDUがCTU内の上の段のVPDUであるので、モード(mode)情報の符号化データを復号する。モード(mode)情報の符号化データが復号されると処理はステップS384に進む。
【0327】
また、ステップS382において、変数Tが偶数である(すなわち、カレントVPDUラインTが画像の上から偶数番目のVPDUラインであり、カレントVPDUがCTU内の下の段のVPDUである)と判定された場合、そのCTUの上の段のVPDUの復号結果が適用される。すなわち、ステップS383の処理がスキップされ、処理はステップS384に進む。
【0328】
ステップS384において、復号部612は、カレントVPDUの、画像と予測画像の残差データに関する係数データ(residual)の符号化データを復号する。ステップS384の処理が終了すると、VPDU復号処理が終了し、処理は、このVPDU復号処理が実行されたVPDU処理に戻る。
【0329】
<VPDUラインT(偶数)に対するVPDU処理の流れ>
次に、
図27のステップS336において実行されるVPDUラインT(偶数)に対するVPDU処理の流れの例を、
図30のフローチャートを参照して説明する。
【0330】
この場合のVPDU処理が開始されると、復号部612は、ステップS401において、1つ上のVPDUラインT-1を処理するスレッドであるVPDUラインT-1処理ThreadからのVPDU処理完了通知を受け取るまで待機する。VPDUラインT-1処理ThreadからVPDU処理完了通知を取得すると処理はステップS402に進む。
【0331】
ステップS402において、復号部612は、変数iを初期値(=1)に設定する。また、復号部612は、値Nに水平方向のVPDU数を設定する。
【0332】
ステップS403において、復号部612は、1つ上のVPDUラインT-1のVPDU処理において保存されたCABACのコンテキスト(生起確率)を引き継ぎ、CABACを初期化する。
【0333】
ステップS404において、復号部612は、変数iがN以下である(i <= N)か否かを判定する。変数iがN以下であり、VPDUラインTに未処理のVPDUが存在すると判定された場合、処理はステップS405に進む。
【0334】
ステップS405において、復号部612は、処理のタイミングを制御するために、VPDUラインT-1処理ThreadからのVPDU処理完了通知を受け取るまで待機する。VPDUラインT-1処理ThreadからVPDU処理完了通知を取得すると処理はステップS406に進む。
【0335】
ステップS406において、復号部612は、VPDU復号処理(
図29)を実行し、左端からi番目のVPDUの符号化データを復号する。左端からi番目のVPDUの符号化データを復号すると処理はステップS407に進む。
【0336】
ステップS407において、復号部612は、変数iの値が2である(i == 2)か否かを判定する。変数iの値が2であると判定された場合、処理はステップS408に進む。
【0337】
ステップS408において、復号部612は、ステップS406において生成された、画像の左端から2番目のVPDUのCABACのコンテキスト(生起確率)を保存する。コンテキストが保存されると処理はステップS409に進む。
【0338】
また、ステップS407において、変数iの値が2でない(処理対象が画像の左端から2番目のVPDUでなかった)と判定された場合、ステップS408の処理がスキップされ、処理はステップS409に進む。
【0339】
ステップS409において、復号部612は、変数iの値が2以上である(i >= 2)か否かを判定する。変数iの値が2以上であると判定された場合、処理はステップS410に進む。
【0340】
ステップS410において、復号部612は、1つ下のVPDUラインであるVPDUラインT+1を処理するスレッドであるVPDUラインT+1処理Threadに対してVPDU処理の完了通知を行う。VPDU処理完了通知が行われると処理はステップS411に進む。
【0341】
また、ステップS409において、変数iの値が2より小さい(処理対象が画像の左端のVPDUであった)と判定された場合、ステップS410の処理がスキップされ、処理はステップS411に進む。
【0342】
ステップS411において、復号部612は、変数iの値に1を加算する(i = i+1)。変数iの値をインクリメントすると、処理はステップS404に戻る。
【0343】
つまり、VPDUラインTの全てのVPDUが処理されるまで、ステップS404乃至ステップS411の各処理が繰り返される。そして、ステップS404において、未処理のVPDUが存在しない(VPDUラインTの全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図27に戻る。
【0344】
<VPDUラインT(奇数)に対するVPDU処理の流れ>
次に、
図27のステップS337において実行されるVPDUラインT(奇数)に対するVPDU処理(つまり、上から1番目を除く奇数番目のVPDUラインに対するVPDU処理)の流れの例を、
図31および
図32のフローチャートを参照して説明する。
【0345】
この場合のVPDU処理が開始されると、
図31のステップS431乃至ステップS435の各処理が、
図30のステップS401乃至ステップS405の各処理と同様に実行される。ステップS435の処理が終了すると、処理はステップS436に進む。
【0346】
ステップS436において、復号部612は、変数iが奇数であるか否かを判定する。変数iが奇数である(すなわちカレントVPDUがCTUの左上のVPDUである)と判定された場合、処理はステップS437に進む。
【0347】
ステップS437において、復号部612は、イントラ予測およびインター予測において、1つ前のCTUの右下のVPDUの参照を無効(unavailable)とする。ステップS437の処理が終了すると処理はステップS438に進む。
【0348】
また、ステップS436おいて、変数iが偶数である(すなわちカレントVPDUがCTUの右上のVPDUである)と判定された場合、ステップS437の処理がスキップされ、処理はステップS438に進む。
【0349】
ステップS438において、復号部612は、VPDU復号処理(
図29)を実行し、左端からi番目のVPDUの符号化データを復号する。左端からi番目のVPDUの符号化データを復号すると処理は
図31のステップS441に進む。
【0350】
図31のステップS441において、復号部612は、i番目のVPDUはInter128xNモードであるか(すなわち、インター予測が行われたブロックサイズ128xNの予測ブロックに含まれるか)否かを判定する。Inter128xNモードであると判定された場合、処理はステップS442に進む。
【0351】
ステップS442において、復号部612は、この場合カレントVPDUがそのインター予測が行われたブロックサイズ128xNの予測ブロックに含まれるので、その予測ブロックの右上のブロックの参照を無効(unavailable)とする。ステップS442の処理が終了すると処理はステップS443に進む。
【0352】
また、ステップS441において、Inter128xNモードでないと判定された場合、処理はステップS443に進む。
【0353】
そして、ステップS443乃至ステップS447の各処理が、
図30のステップS407乃至ステップS411の各処理と同様に実行される。ステップS447の処理が終了すると、処理は
図31のステップS434に戻る。
【0354】
つまり、VPDUラインTの全てのVPDUが処理されるまで、
図31のステップS434乃至ステップS438、並びに
図32のステップS441乃至ステップS447の各処理が繰り返し実行される。そして、
図31のステップS434において、未処理のVPDUが存在しない(VPDUラインTの全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図27に戻る。
【0355】
以上のように各処理を実行することにより、画像復号装置600は、復号の並列度の低減を抑制することができる。
【0356】
<6.方法2>
次に、上述した「方法2」についてより詳細に説明する。
図33は、
図6と同様に、符号化対象の画像の一部を示している。方法2では、方法1の場合と同様に、
図33の点線矢印のように、VPDU121のライン毎に処理(エントロピ符号化・エントロピ復号)が並列化される。ただし、方法2の場合、上から偶数番目のVPDUラインの処理は、その1つ上のVPDUラインに対して、2VPDUだけ遅延して実行されるが、上から1番目を除く奇数番目のVPDUラインの処理は、その1つ上のVPDUラインに対して、3VPDUだけ遅延して実行される。
【0357】
図33において、各VPDU121内の数字は、処理順を示している。つまり、パイプライン遅延は、CTU内において2VPDUとなり、CTU間において3VPDUとなる。
【0358】
<6-1:方法2-1、方法2-2>
方法2-1では、CTU111内の各段のVPDU121の処理において互いに異なるCABACのコンテキストが用いられる。また、方法2-2では、CABACのコンテキストの継承(コピー)がVPDUライン間で行われる。
【0359】
上述したように各VPDUラインにおいて、各VPDUは、1つ前のVPDUの処理の際に導出された生起確率をコンテキストとして用いて処理される。ただし、画像の1番上のVPDUラインの左端のVPDUは、初期値のコンテキストを用いて処理される。また、上から偶数番目のVPDUラインの左端のVPDUは、
図33において黒四角と矢印により示されるように、カレントVPDUラインの1つ上のVPDUラインの左端から2番目のVPDUの処理の際に導出された生起確率をコンテキストとして用いて処理される。また、上から1番目を除く奇数番目のVPDUラインの左端のVPDUは、
図33において黒四角と矢印により示されるように、カレントVPDUラインの1つ上のVPDUラインの左端から3番目のVPDUの処理の際に導出された生起確率をコンテキストとして用いて処理される。
【0360】
つまり、
図34に示されるように、上から偶数番目のVPDUラインの処理スレッド(Thread)は、その1つ上のVPDUラインの処理スレッドに対して2VPDUずつ遅延し、上から1番目を除く奇数番目のVPDUラインの処理スレッド(Thread)は、その1つ上のVPDUラインの処理スレッドに対して3VPDUずつ遅延している。
【0361】
このように、上から1番目を除く奇数番目のVPDUラインの処理遅延を3VPDUとすることにより、方法1-4-2のインター予測の制限を用いずに、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。
【0362】
なお、方法2-3、方法2-3-1、方法2-4、方法2-4-1、および方法2-4-2については、それぞれ、<4.方法1>において上述した方法1-3、方法1-3-1、方法1-4、方法1-4-1、および方法1-4-3と同様であるので、その説明は省略する。
【0363】
<7.第2の実施の形態>
<7-1:画像符号化装置>
<本技術の適用>
以上に説明した方法2乃至方法2-4-2も、任意の装置、デバイス、システム等に適用することができる。例えば、
図18の画像符号化装置500において、<6.方法2>において上述した本技術を適用してもよい。つまり、符号化部515において、上から偶数番目のVPDUラインの処理スレッド(Thread)が、その1つ上のVPDUラインの処理スレッドに対して2VPDUずつ遅延して処理を実行し、上から1番目を除く奇数番目のVPDUラインの処理スレッド(Thread)が、その1つ上のVPDUラインの処理スレッドに対して3VPDUずつ遅延して処理を実行するようにしてもよい。
【0364】
例えば、符号化部515が、画像の1番上の変換ブロックのラインの1番左の変換ブロックを、生起確率の初期値を用いてエントロピ符号化し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の変換ブロックのラインの左から3番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化するようにしてもよい。
【0365】
このような構成とすることにより、画像符号化装置500は、方法1-4-2のインター予測の制限を用いずに、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。また、画像符号化装置500は、符号化の並列度の低減を抑制することができる。
【0366】
<7-2:処理の流れ>
<画像符号化処理の流れ>
次に、この場合の画像符号化装置500により実行される各処理の流れについて説明する。この場合の画像符号化処理は、
図19のフローチャートを参照して説明した場合と同様の流れで実行される。
【0367】
<予測処理の流れ>
次に、この場合の予測処理の流れの例を、
図35のフローチャートを参照して説明する。
【0368】
この場合、予測処理が開始されると、ステップS501乃至ステップS505の各処理は、
図20のステップS131乃至ステップS133、ステップS135、並びにステップS136の各処理と同様に実行される。すなわち、この場合、
図20のステップS134の処理がスキップ(省略)される。
【0369】
<符号化処理の流れ>
この場合の符号化処理は、
図21のフローチャートを参照して説明した場合と同様の流れで実行される。
【0370】
<VPDUライン1に対するVPDU処理の流れ>
この場合の、VPDUライン1に対するVPDU処理は、
図22のフローチャートを参照して説明した場合と同様の流れで実行される。
【0371】
<VPDU符号化処理の流れ>
また、この場合のVPDU符号化処理は、
図23のフローチャートを参照して説明した場合と同様の流れで実行される。
【0372】
<VPDUラインT(奇数)に対するVPDU処理の流れ>
なお、この場合、上から1番目を除く奇数番目のVPDUラインT(奇数)に対するVPDU処理は、
図24のフローチャートを参照して説明した場合と同様の流れで実行される。
【0373】
<VPDUラインT(偶数)に対するVPDU処理の流れ>
この場合の、上から偶数番目のVPDUラインT(偶数)に対するVPDU処理の流れの例を、
図36のフローチャートを参照して説明する。
【0374】
VPDU処理が開始されると、ステップS521乃至ステップS526の各処理が、
図24のステップS211乃至ステップS216の各処理と同様に実行される。
【0375】
ステップS527において、符号化部515は、変数iの値が3である(i == 2)か否かを判定する。変数iの値が3であると判定された場合、処理はステップS528に進む。
【0376】
ステップS528において、符号化部515は、ステップS526において生成された、画像の左端から3番目のVPDUのCABACのコンテキスト(生起確率)を保存する。コンテキストが保存されると処理はステップS529に進む。
【0377】
また、ステップS527において、変数iの値が3でない(処理対象が画像の左端から3番目のVPDUでなかった)と判定された場合、ステップS528の処理がスキップされ、処理はステップS529に進む。
【0378】
ステップS529において、符号化部515は、変数iの値が3以上である(i >= 3)か否かを判定する。変数iの値が3以上であると判定された場合、処理はステップS530に進む。
【0379】
ステップS530において、符号化部515は、1つ下のVPDUラインであるVPDUラインT+1を処理するスレッドであるVPDUラインT+1処理Threadに対してVPDU処理の完了通知を行う。VPDU処理完了通知が行われると処理はステップS531に進む。
【0380】
また、ステップS529において、変数iの値が3より小さい(処理対象が画像の左端から1番目または2番目のVPDUであった)と判定された場合、ステップS530の処理がスキップされ、処理はステップS531に進む。
【0381】
ステップS531において、符号化部515は、変数iの値に1を加算する(i = i+1)。変数iの値をインクリメントすると、処理はステップS524に戻る。
【0382】
つまり、VPDUラインTの全てのVPDUが処理されるまで、ステップS524乃至ステップS531の各処理が繰り返される。そして、ステップS524において、未処理のVPDUが存在しない(VPDUラインTの全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図21に戻る。
【0383】
以上のように各処理を実行することにより、画像符号化装置500は、方法1-4-2のインター予測の制限を用いずに、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。また、画像符号化装置500は、符号化の並列度の低減を抑制することができる。
【0384】
<7-3:画像復号装置>
<本技術の適用>
また、以上に説明した<6.方法2>において上述した本技術(方法2乃至方法2-4-2)は、例えば、
図25の画像復号装置600において適用することもできる、つまり、復号部612において、上から偶数番目のVPDUラインの処理スレッド(Thread)が、その1つ上のVPDUラインの処理スレッドに対して2VPDUずつ遅延して処理を実行し、上から1番目を除く奇数番目のVPDUラインの処理スレッド(Thread)が、その1つ上のVPDUラインの処理スレッドに対して3VPDUずつ遅延して処理を実行するようにしてもよい。
【0385】
例えば、復号部612が、画像の1番上の変換ブロックのラインの1番左の変換ブロックの符号化データを、生起確率の初期値を用いてエントロピ復号し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号し、画像の上から2番目以降の変換ブロックのラインであって、1つ上の変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の変換ブロックのラインの左から3番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号するようにしてもよい。
【0386】
このような構成とすることにより、画像復号装置600は、方法1-4-2のインター予測の制限を用いずに、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。また、画像復号装置600は、復号の並列度の低減を抑制することができる。
【0387】
<7-4:処理の流れ>
<画像復号処理の流れ>
次に、この場合の画像復号装置600により実行される各処理の流れについて説明する。この場合の画像復号処理は、
図26のフローチャートを参照して説明した場合と同様の流れで実行される。
【0388】
<復号処理の流れ>
また、この場合の復号処理は、
図27のフローチャートを参照して説明した場合と同様の流れで実行される。
【0389】
<VPDUライン1に対するVPDU処理の流れ>
また、この場合のVPDUライン1に対するVPDU処理は、
図28のフローチャートを参照して説明した場合と同様の流れで実行される。
【0390】
<VPDU復号処理の流れ>
また、この場合のVPDU復号処理は、
図29のフローチャートを参照して説明した場合と同様の流れで実行される。
【0391】
<VPDUラインT(偶数)に対するVPDU処理の流れ>
次に、この場合のVPDUラインT(偶数)に対するVPDU処理の流れの例を、
図37のフローチャートを参照して説明する。
【0392】
この場合のVPDU処理が開始されると、ステップS601乃至ステップS606の各処理が、
図30のステップS401乃至ステップS406の各処理と同様に実行される。
【0393】
ステップS607において、復号部612は、変数iの値が3である(i == 2)か否かを判定する。変数iの値が3であると判定された場合、処理はステップS608に進む。
【0394】
ステップS608において、復号部612は、ステップS606において生成された、画像の左端から3番目のVPDUのCABACのコンテキスト(生起確率)を保存する。コンテキストが保存されると処理はステップS609に進む。
【0395】
また、ステップS607において、変数iの値が3でない(処理対象が画像の左端から3番目のVPDUでなかった)と判定された場合、ステップS608の処理がスキップされ、処理はステップS609に進む。
【0396】
ステップS609において、復号部612は、変数iの値が3以上である(i >= 3)か否かを判定する。変数iの値が3以上であると判定された場合、処理はステップS610に進む。
【0397】
ステップS610において、復号部612は、1つ下のVPDUラインであるVPDUラインT+1を処理するスレッドであるVPDUラインT+1処理Threadに対してVPDU処理の完了通知を行う。VPDU処理完了通知が行われると処理はステップS611に進む。
【0398】
また、ステップS609において、変数iの値が3より小さい(処理対象が画像の左端から1番目または2番目のVPDUであった)と判定された場合、ステップS610の処理がスキップされ、処理はステップS611に進む。
【0399】
ステップS611において、復号部612は、変数iの値に1を加算する(i = i+1)。変数iの値をインクリメントすると、処理はステップS604に戻る。
【0400】
つまり、このVPDUラインT(偶数)の全てのVPDUが処理されるまで、ステップS604乃至ステップS611の各処理が繰り返される。そして、ステップS604において、未処理のVPDUが存在しない(このVPDUラインT(偶数)の全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図21に戻る。
【0401】
<VPDUラインT(奇数)に対するVPDU処理の流れ>
次に、この場合のVPDUラインT(奇数)に対するVPDU処理(つまり、上から1番目を除く奇数番目のVPDUラインに対するVPDU処理)の流れの例を、
図38および
図39のフローチャートを参照して説明する。
【0402】
この場合のVPDU処理が開始されると、
図38のステップS631乃至ステップS638の各処理が、
図31のステップS431乃至ステップS438の各処理と同様に実行される。ステップS638の処理が終了すると、処理は
図39のステップS641に進む。
【0403】
そして、
図39のステップS641乃至ステップS645の各処理が、
図32のステップS443乃至ステップS447の各処理と同様に実行される。つまり、この場合、
図32のステップS441およびステップS442の処理がスキップ(省略)される。
【0404】
ステップS645の処理が終了すると、処理は
図38のステップS634に戻る。
【0405】
つまり、このVPDUラインT(奇数)の全てのVPDUが処理されるまで、
図38のステップS634乃至ステップS638、並びに
図39のステップS641乃至ステップS645の各処理が繰り返し実行される。そして、
図38のステップS634において、未処理のVPDUが存在しない(このVPDUラインT(奇数)の全てのVPDUが処理された)と判定された場合、このVPDU処理が終了し、処理は
図27に戻る。
【0406】
以上のように各処理を実行することにより、画像復号装置600は、方法1-4-2のインター予測の制限を用いずに、インター予測の参照による変換ブロックライン間の依存関係を低減させ、待機時間の増大を抑制することができる。また、画像復号装置600は、復号の並列度の低減を抑制することができる。
【0407】
<8.付記>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【0408】
図40は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0409】
図40に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
【0410】
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
【0411】
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
【0412】
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0413】
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
【0414】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
【0415】
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
【0416】
<情報・処理の単位>
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
【0417】
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
【0418】
<本技術の適用対象>
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
【0419】
また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
【0420】
さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
【0421】
上述した実施の形態に係る画像処理装置、画像符号化装置、および画像復号装置は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
【0422】
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等(すなわち、装置の一部の構成)として実施することもできる。
【0423】
さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスに適用することもできる。
【0424】
なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【0425】
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
【0426】
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【0427】
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【0428】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
【0429】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0430】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0431】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0432】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0433】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0434】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0435】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0436】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0437】
なお、本技術は以下のような構成も取ることができる。
(1) 画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する符号化部
を備える画像処理装置。
(2) 前記符号化部は、
前記画像に関する係数データの前記変換ブロックの各ラインを、左の変換ブロックから順に1変換ブロックずつ符号化し、
各変換ブロックを、1つ前のエントロピ符号化により導出された生起確率を用いてエントロピ符号化する
(1)に記載の画像処理装置。
(3) 前記符号化部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックを、前記生起確率の初期値を用いてエントロピ符号化し、
前記画像の上から2番目以降の前記変換ブロックのラインの1番左の変換ブロックを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化する
(2)に記載の画像処理装置。
(4) 前記符号化部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックを、前記生起確率の初期値を用いてエントロピ符号化し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックを、1つ上の前記変換ブロックのラインの左から3番目の変換ブロックのエントロピ符号化により導出された生起確率を用いてエントロピ符号化する
(2)に記載の画像処理装置。
(5) 前記変換ブロックは、VPDU(Virtual pipeline data Unit)である
(1)に記載の画像処理装置。
(6) 前記画像のイントラ予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのイントラ予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの参照を無効とする
(1)に記載の画像処理装置。
(7) 前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのインター予測において、1つ前に符号化される符号化ツリーユニットの右下の変換ブロックの動きベクトルの参照を無効とする
(1)に記載の画像処理装置。
(8) 前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、前記インター予測の処理単位であり、水平方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックのインター予測において、右上の変換ブロックの動きベクトルの参照を無効とする
(1)に記載の画像処理装置。
(9) 前記符号化部は、インター予測の処理単位であり、垂直方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックについて、インター予測のモードを示すモード情報を前記予測ブロック毎に符号化し、前記画像と予測画像の残差データを前記予測ブロックに含まれる変換ブロック毎に符号化する
(1)に記載の画像処理装置。
(10) 画像に関する係数データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に符号化する
画像処理方法。
【0438】
(11) 画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する復号部
を備える画像処理装置。
(12) 前記復号部は、
前記画像に関する係数データの前記変換ブロックの各ラインの符号化データを、左の変換ブロックから順に1変換ブロックずつ復号し、
各変換ブロックの符号化データを、1つ前のエントロピ復号により導出された生起確率を用いてエントロピ復号する
(11)に記載の画像処理装置。
(13) 前記復号部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックの符号化データを、前記生起確率の初期値を用いてエントロピ復号し、
前記画像の上から2番目以降の前記変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号する
(12)に記載の画像処理装置。
(14) 前記復号部は、
前記画像の1番上の前記変換ブロックのラインの1番左の変換ブロックの符号化データを、前記生起確率の初期値を用いてエントロピ復号し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと同一のツリー構造の符号化ブロックの最上位である符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の前記変換ブロックのラインの左から2番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号し、
前記画像の上から2番目以降の前記変換ブロックのラインであって、1つ上の前記変換ブロックと異なる符号化ツリーユニットに属する変換ブロックのラインの1番左の変換ブロックの符号化データを、1つ上の前記変換ブロックのラインの左から3番目の変換ブロックの符号化データのエントロピ復号により導出された生起確率を用いてエントロピ復号する
(12)に記載の画像処理装置。
(15) 前記変換ブロックは、VPDU(Virtual pipeline data Unit)である
(11)に記載の画像処理装置。
(16) 前記画像のイントラ予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのイントラ予測において、1つ前に復号される符号化ツリーユニットの右下の変換ブロックの参照を無効とする
(11)に記載の画像処理装置。
(17) 前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、ツリー構造の符号化ブロックの最上位である符号化ツリーユニットの左上の変換ブロックのインター予測において、1つ前に復号される符号化ツリーユニットの右下の変換ブロックの動きベクトルの参照を無効とする
(11)に記載の画像処理装置。
(18) 前記画像のインター予測を行う予測部をさらに備え、
前記予測部は、前記インター予測の処理単位であり、水平方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックのインター予測において、右上の変換ブロックの動きベクトルの参照を無効とする
(11)に記載の画像処理装置。
(19) 前記復号部は、インター予測の処理単位であり、垂直方向の長さがツリー構造の符号化ブロックの最上位である符号化ツリーユニットと同一である予測ブロックについて、インター予測のモードを示すモード情報の符号化データを前記予測ブロック毎に復号し、前記画像と予測画像の残差データの符号化データを前記予測ブロックに含まれる変換ブロック毎に復号する
(11)に記載の画像処理装置。
(20) 画像に関する係数データが符号化された符号化データを、画像データを係数データに変換する単位である変換ブロックのライン毎に並列に復号する
画像処理方法。
【符号の説明】
【0439】
500 画像符号化装置, 501 制御部, 515 符号化部, 522 予測部, 600 画像復号装置, 612 復号部, 619 予測部