JP2023112105A - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
JP2023112105A
JP2023112105A JP2023102286A JP2023102286A JP2023112105A JP 2023112105 A JP2023112105 A JP 2023112105A JP 2023102286 A JP2023102286 A JP 2023102286A JP 2023102286 A JP2023102286 A JP 2023102286A JP 2023112105 A JP2023112105 A JP 2023112105A
Authority
JP
Japan
Prior art keywords
transform
unit
orthogonal transform
conversion
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023102286A
Other languages
English (en)
Inventor
健史 筑波
Kenji Tsukuba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Group Corp
Original Assignee
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Group Corp filed Critical Sony Group Corp
Publication of JP2023112105A publication Critical patent/JP2023112105A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】符号化効率の低減を抑制する(符号化効率を改善する)ことができるようにする。【解決手段】符号化データを復号して係数データを生成し、符号化パラメータに基づいて制御された逆直交変換のタイプに従って、生成された係数データを、逆直交変換する。本開示は、例えば、画像処理装置、画像符号化装置、または画像復号装置等に適用することができる。【選択図】図1

Description

本開示は、画像処理装置および方法に関し、特に、符号化効率の低減を抑制する(符号化効率を改善する)ことができるようにした画像処理装置および方法に関する。
従来、輝度について、TU(Transform Unit)単位毎の、水平方向のプライマリ変換PThor(プライマリ水平変換とも称する)および垂直方向のプライマリ変換PTver(プライマリ垂直変換とも称する)毎に、適応的に複数の異なる直交変換から、プライマリ変換を選択する適応プライマリ変換(AMT: Adaptive Multiple Core Transforms)が開示されている(例えば、非特許文献1参照)。
非特許文献1では、プライマリ変換の候補として、DCT-II, DST-VII, DCT-VIII, DST-I, DCT-VIの5つの1次元直交変換がある。AMTが適用される場合、予測モードで決まる変換セットの中から、水平/垂直にどの直交変換を適用するかを表す2ビットのインデックスがシグナルされ、方向毎に2つの候補から1つの変換が選択されていた。また、さらに、DST-IVおよびIDT(Identity Transform: 1次元変換スキップ)の2つの1次元直交変換を追加し、計7つの1次元直交変換をプライマリ変換の候補とすることが提案されている(例えば、非特許文献2参照)。
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 V. Lorcy, P. Philippe, "Proposed improvements to the Adaptive multiple Core transform", JVET-C0022, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 3rd Meeting: Geneva, CH, 26 May - 1 June 2016
ところで、相対的に残差信号の符号量が多くAMTのモード情報の符号量が少ないブロックでは、残差信号の符号量をより削減することが望ましい。これに対して、相対的に残差信号の符号量が少なくAMTのモード情報の符号量が多いブロックでは、AMTのモード情報の符号量をより削減することが望ましい。しかしながら、従来の方法の場合、AMTの変換の候補の数が固定であり、上述の傾向に対応することが困難であった。そのため、AMTのモード情報や残差信号の符号量が不要に増大し、符号化効率が低減するおそれがあった。
本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制する(符号化効率を改善する)ことができるようにするものである。
本技術の一側面の画像処理装置は、直交変換の処理対象が輝度信号であるか色差信号であるかに応じて直交変換のタイプの候補の数を設定し、前記候補の中から適用する前記直交変換のタイプを選択し、前記直交変換のタイプに関する情報を設定する制御部と、選択された前記直交変換のタイプに従って画像データを直交変換して係数データを生成する直交変換部と、前記係数データと前記直交変換のタイプに関する情報とを符号化して、符号化データを生成する符号化部とを備え、前記直交変換のタイプの候補の数は、前記処理対象が色差信号の場合、前記処理対象が輝度信号の場合よりも少なく設定される画像処理装置である。
本技術の一側面の画像処理方法は、直交変換の処理対象が輝度信号であるか色差信号であるかに応じて直交変換のタイプの候補の数を設定し、前記候補の中から適用する前記直交変換のタイプを選択し、前記直交変換のタイプに関する情報を設定し、選択された前記直交変換のタイプに従って画像データを直交変換して係数データを生成し、前記係数データと前記直交変換のタイプに関する情報とを符号化して、符号化データを生成し、前記直交変換のタイプの候補の数は、前記処理対象が色差信号の場合、前記処理対象が輝度信号の場合よりも少なく設定される画像処理方法である。
本技術の一側面の画像処理装置および方法においては、直交変換の処理対象が輝度信号であるか色差信号であるかに応じて直交変換のタイプの候補の数が設定され、その候補の中から適用する直交変換のタイプが選択され、その直交変換のタイプに関する情報が設定され、その選択された直交変換のタイプに従って画像データが直交変換されて係数データが生成され、その係数データと直交変換のタイプに関する情報とが符号化されて、符号化データが生成される。
本開示によれば、画像を処理することができる。特に、直交変換および逆直交変換に必要なメモリ容量の増大を抑制することができる。また、直交変換のモード情報や残差信号の符号量をより効率的に削減することができる。なお、上述の効果は必ずしも限定的なものではなく、上述の効果と共に、または上述の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
符号化パラメータに応じた選択可能な変換ペア数の例を示す図である。 各変換セットにおいて選択可能な変換ペアの例を示す図である。 変換セットと予測モードとの対応関係を示す図である。 画像符号化装置の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 変換ペア数の制御に用いる符号化パラメータの一覧の例を示す図である。 画像符号化装置の主な構成例を示すブロック図である。 制御部の、直交変換の制御に関する主な構成例を示すブロック図である。 直交変換部の主な構成例を示すブロック図である。 プライマリ水平変換部の主な構成例を示すブロック図である。 変換行列導出部の主な構成例を示すブロック図である。 プライマリ垂直変換部の主な構成例を示すブロック図である。 変換行列導出部の主な構成例を示すブロック図である。 画像符号化処理の流れの例を示すフローチャートである。 直交変換制御処理の流れの例を説明するフローチャートである。 直交変換処理の流れの例を説明するフローチャートである。 プライマリ変換処理の流れの例を説明するフローチャートである。 プライマリ水平変換処理の流れの例を説明するフローチャートである。 変換行列導出処理の流れの例を説明するフローチャートである。 プライマリ垂直変換処理の流れの例を説明するフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 復号部の、逆直交変換の制御に関する主な構成例を示すブロック図である。 逆直交変換部の主な構成例を示すブロック図である。 逆プライマリ垂直変換部の主な構成例を示すブロック図である。 変換行列導出部の主な構成例を示すブロック図である。 逆プライマリ水平変換部の主な構成例を示すブロック図である。 変換行列導出部の主な構成例を示すブロック図である。 画像復号処理の流れの例を説明するフローチャートである。 逆直交変換制御処理の流れの例を説明するフローチャートである。 逆直交変換処理の流れの例を説明するフローチャートである。 逆プライマリ変換処理の流れの例を説明するフローチャートである。 逆プライマリ垂直変換処理の流れの例を説明するフローチャートである。 逆プライマリ水平変換処理の流れの例を説明するフローチャートである。 符号化パラメータに応じた、選択可能な変換ペア数の例を示す図である。 変換ペア識別情報の符号化・復号の例を示す図である。 方法#1による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#2-1による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#2-2による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#3による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#4-1による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#4-2による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#5-1による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#5-2による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 方法#5-3による、選択可能な変換ペア数の設定の様子の例を示す図である。 変換ペア数設定処理の流れの例を説明するフローチャートである。 選択可能な変換ペア数の例を示す図である。 選択可能な変換ペア数の設定の仕方の例を示す図である。 選択可能な変換ペア数の設定に関する制御情報の例を示すシンタックスである。 コンピュータの主な構成例を示すブロック図である。
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.適応直交変換
2.共通コンセプト
2-1.画像符号化装置
2-2.画像復号装置
2-3.方法一覧
2-4.画像符号化装置
2-5.画像復号装置
2-6.その他
3.第1の実施の形態(方法#1)
4.第2の実施の形態(方法#2)
4-1.方法#2-1
4-2.方法#2-2
4-3.方法#2-3
5.第3の実施の形態(方法#3)
6.第4の実施の形態(方法#4)
6-1.方法#4-1
6-2.方法#4-2
7.第5の実施の形態(方法#5)
7-1.方法#5-1
7-2.方法#5-2
7-3.方法#5-3
8.応用例
9.付記
<1.適応直交変換>
<技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
非特許文献1:(上述)
非特許文献3:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献4:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献4に記載されているQuad-Tree Block Structure、非特許文献1に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献1、非特許文献3、および非特許文献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)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
<適応直交変換>
非特許文献1に記載のテストモデル(JEM4(Joint Exploration Test Model 4))においては、輝度の変換ブロックについて、水平方向のプライマリ変換PThor(プライマリ水平変換とも称する)、および垂直方向のプライマリ変換PTver(プライマリ垂直変換とも称する)毎に、適応的に複数の異なる1次元直交変換から、プライマリ変換を選択する適応プライマリ変換(AMT(Adaptive Multiple core Transforms))が開示されている。なお、AMTは、EMT(Explicit Multiple core Transforms)とも称する。
具体的には、輝度の変換ブロックについて、適応プライマリ変換を実施するか否かを示す適応プライマリ変換フラグapt_flagが0(偽)の場合には、プライマリ変換として、DCT(Discrete Cosine Transform)-II、またはDST(Discrete Sine Transform)-VIIがモード情報によって一意に決定される(TrSetIdx = 4)。
適応プライマリ変換フラグapt_flagが1(真)の場合であって、処理対象の輝度の変換ブロックを含むカレントCU(Coding Unit)がイントラCUである場合、水平方向(x方向)と垂直方向(y方向)のそれぞれについてのプライマリ変換の候補となる直交変換を含む変換セットTrSetが、3つの変換セットTrSet(TrSetIdx = 0,1,2)の中から選択される。なお、上述したDST-VIIやDCT-VIII等は、直交変換のタイプを示している。
この変換セットTrSetは、モード情報と変換セットの対応表(のイントラ予測モード情報)に基づいて一意に決定される。例えば、以下の式(1)および式(2)のように、各変換セットTrSetH, TrSetVに対して、対応する変換セットTrSetを指定する変換セット識別子TrSetIdxを設定するように実施される。
Figure 2023112105000002
ここで、TrSetHは、プライマリ水平変換PThorの変換セットを示し、TrSetVは、プライマリ垂直変換PTverの変換セットを示し、ルックアップテーブルLUT_IntraModeToTrSetは、モード情報と変換セットの対応表である。ルックアップテーブルLUT_IntraModeToTrSet[][]の1番目の配列は、イントラ予測モードIntraModeを引数とし、2番目の配列は、{H=0, V=1}を引数とする。
例えば、イントラ予測モード番号19(IntraMode == 19)の場合、プライマリ水平変換PThorの変換セットTrSetH(プライマリ水平変換セットとも称する)として、変換セット識別子TrSetIdx = 0の変換セットが選択され、プライマリ垂直変換PTverの変換セットTrSetV(プライマリ垂直変換セットとも称する)として、変換セット識別子TrSetIdx=2の変換セットが選択される。
なお、適応プライマリ変換フラグapt_flagが1(真)の場合であって、処理対象の輝度の変換ブロックを含むカレントCUがインターCUである場合、プライマリ水平変換の変換セットTrSetHおよびプライマリ垂直変換の変換セットTrSetVには、インターCU専用の変換セットInterTrSet(TrSetIdx = 3)を割り当てる。
続いて、水平方向と垂直方向のそれぞれについて、選択された変換セットTrSetのうち、どの直交変換を適用するかを、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagの内の対応する方によって選択する。
例えば、以下の式(3)および式(4)のように、プライマリ{水平,垂直}変換セットTrSet{H,V}と、プライマリ{水平,垂直}変換指定フラグpt_{hor,ver}_flagとを引数として、図1に示される変換セットの定義表(LUT_TrSetToTrTypeIdx)から導出する。
Figure 2023112105000003
例えば、イントラ予測モード番号34(IntraMode == 34)(すなわち、プライマリ水平変換セットTraSetHが0)であり、プライマリ水平変換指定フラグpt_hor_flagが0である場合、変換セット定義表(LUT_TrSetToTrTypeIdx)から、式(3)の変換タイプ識別子TrTypeIdxHの値は4であり、該変換タイプ識別子TrTypeIdxHの値に対応する変換タイプはDST-VIIである。つまり、変換セット識別子TrSetIdxが0の変換セットのDST-VIIがプライマリ水平変換PThorの変換タイプとして選択される。また、プライマリ水平変換指定フラグpt_hor_flagが1の場合、DCT-VIIIが変換タイプとして選択される。なお、変換タイプを選択するとは、変換タイプ識別子TrTypeIdxを介して、該変換タイプ識別子TrTypeIdxで指定される変換タイプを選択することを含む。
なお、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagからプライマリ変換識別子pt_idxが、以下の式(5)に基づいて導出される。すなわち、プライマリ変換識別子pt_idxの上位1bitは、プライマリ垂直変換指定フラグの値に対応し、下位1bitは、プライマリ水平変換指定フラグの値に対応する。
Figure 2023112105000004
導出されたプライマリ変換識別子pt_idxのbin列に対して、算術符号化を適用して、ビット列を生成することで、符号化が実施される。なお、適応プライマリ変換フラグapt_flag、およびプライマリ変換識別子pt_idxは、輝度の変換ブロックにおいてシグナルされる。
以上のように、非特許文献1では、プライマリ変換の候補として、DCT-II(DCT2), DST-VII(DST7), DCT-VIII(DCT8), DST-I(DST1), DCT-V(DCT5)の5つの1次元直交変換が提案されている。AMTが適用される場合、予測モードで決まる変換セットの中から、水平/垂直にどの直交変換を適用するかを表す2ビットのインデックスがシグナルされ、方向毎に2つの候補から1つの変換が選択されていた。また、非特許文献2においては、それらに加えて、さらに、DST-IV(DST4)およびIDT(Identity Transform:1次元変換スキップ)の2つの1次元直交変換が追加され、計7つの1次元直交変換をプライマリ変換の候補とすることが提案されている。
<符号化効率>
ところで、一般的に、AMTの変換をより多くの候補の中から選択するようにする程(つまり、AMTの選択可能な変換の数が多い程)、より適切な変換を選択する可能性が向上するため、残差信号の符号量が低減する。ただし、候補の数が増大すると、適用した変換を示す情報を含むAMTのモード情報の符号量が増大する(符号量の大きい値となる)可能性が高くなる。換言するに、AMTの変換の候補の数が少ない程、AMTのモード情報の符号量は低減し(符号量の小さい値となり)、残差信号の符号量が増大する可能性が高くなる。
ただし、相対的に残差信号の符号量に対してAMTのモード情報の符号量が少なければ、残差信号の符号量の増減に対してAMTのモード情報の符号量の増減は小さいものとなる。そのため、相対的に残差信号の符号量が多くAMTのモード情報の符号量が少ないブロックでは、AMTの変換の候補の数を増大させて残差信号の符号量を低減させる方が、AMTのモード情報の符号量を低減させる場合よりも効率よく符号量を低減させることができる。
逆に、相対的に残差信号の符号量に対してAMTのモード情報の符号量が多ければ、残差信号の符号量の増減に対してAMTのモード情報の符号量の増減は大きいものとなる。そのため、相対的に残差信号の符号量が少なくAMTのモード情報の符号量が多いブロックでは、AMTの変換の候補の数を低減させてAMTのモード情報の符号量を低減させる方が、残差信号の符号量を低減させる場合よりも効率よく符号量を低減させることができる。
しかしながら、従来の方法の場合、AMTの変換の候補の数が固定であり、上述のような符号量の制御を行うことが困難であった。そのため、AMTのモード情報や残差信号の符号量が不要に増大し、符号化効率が低減するおそれがあった。
<2.共通コンセプト>
<符号化パラメータに基づく直交変換タイプの制御>
そこで、画像データの符号化に関する情報である符号化パラメータに基づいて、その画像データの予測残差の直交変換のタイプを制御し、その直交変換のタイプの制御に従って予測残差を直交変換して係数データを生成し、その係数データを符号化して符号化データを生成するようにする。
例えば、画像処理装置において、画像データの符号化に関する情報である符号化パラメータに基づいて、その画像データの予測残差の直交変換のタイプを制御する制御部と、その制御部の制御に従って予測残差を直交変換して係数データを生成し、その係数データを符号化して符号化データを生成する符号化部とを備えるようにする。
また、画像データの符号化データの復号に関する情報である符号化パラメータに基づいて、その符号化データから生成される係数データの逆直交変換のタイプを制御し、その符号化データを復号して係数データを生成し、逆直交変換のタイプの制御に従ってその係数データを逆直交変換して画像データを生成するようにする。
例えば、画像処理装置において、画像データの符号化データの復号に関する情報である符号化パラメータに基づいて、その符号化データから生成される係数データの逆直交変換のタイプを制御する制御部と、その符号化データを復号して係数データを生成し、制御部の制御に従ってその係数データを逆直交変換して画像データを生成する復号部とを備えるようにする。
このようにすることにより、例えば、相対的に残差信号の符号量が多くAMTのモード情報の符号量が少ないブロックでは、より残差信号の符号量を削減し、AMTのモード情報の符号量が多いブロックでは、よりAMTのモード情報の符号量を削減するようにすることができる。したがって、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
例えば、制御部が、その符号化パラメータに応じた数の候補の中から直交変換のタイプを選択し、符号化部が、その制御部により選択された直交変換のタイプの変換行列を用いて、予測残差を直交変換するようにしてもよい。
また、例えば、制御部が、その符号化パラメータに応じて逆直交変換のタイプの候補の数を設定し、その設定した逆直交変換のタイプの候補の数に基づいて、その符号化データに含まれる逆直交変換のタイプに関する情報をパースし、そのパースした逆直交変換のタイプに関する情報に基づいて逆直交変換のタイプを設定し、復号部が、その制御部により設定された逆直交変換のタイプの変換行列を用いて、係数データを逆直交変換するようにしてもよい。
このようにすることにより、例えば、相対的に残差信号の符号量が多く、適用した直交変換(逆直交変換)のタイプを示す情報を含むAMTのモード情報の符号量が少ないブロックにおいて、直交変換(逆直交変換)のタイプの候補の数を増大させ、より多くの候補の中から直交変換(逆直交変換)のタイプを選択するようにすることができる。これにより、残差信号の符号量を低減させることができる。逆に、相対的にAMTのモード情報の符号量が多く、残差信号の符号量が少ないブロックにおいては、直交変換(逆直交変換)のタイプの候補の数を低減させ、より少ない候補の中から直交変換(逆直交変換)のタイプを選択するようにすることができる。これにより、AMTのモード情報の符号量を低減させることができる。
例えば、処理対象のブロックの残差信号の符号量がより多い程(AMTのモード情報がより少ない程)、直交変換(逆直交変換)のタイプの候補の数を増大させ、より多くの候補の中から直交変換(逆直交変換)のタイプを選択するようにすることもできる。換言するに、処理対象のブロックの残差信号の符号量がより少ない程(AMTのモード情報がより多い程)、直交変換(逆直交変換)のタイプの候補の数を低減させ、より少ない候補の中から直交変換(逆直交変換)のタイプを選択するようにすることもできる。
したがって、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、上述のように、処理対象のブロックの残差信号やAMTのモード情報の符号量は、符号化パラメータに基づいて推定する。この符号化パラメータは、符号化・復号に関する情報であれば任意である。例えば、図1の表11のように、処理対象が輝度信号であるか色差信号であるか(コンポーネント(Component)が輝度(Luma)であるか、色差(Chroma)であるか)や、予測モードがイントラ予測(Intra)であるか、インター予測(Inter)であるか等の符号化パラメータに応じて、直交変換(逆直交変換)のタイプの候補の数(# of Transform Pair)を可変とすることができる。
一般的に、色差信号は、輝度信号の場合に比べて残差信号の符号量が小さい。したがって、表11の例のように、色差信号の場合の直交変換(逆直交変換)のタイプの候補の数を、輝度信号の場合よりも低減させる(換言するに、輝度信号の場合の直交変換(逆直交変換)のタイプの候補の数を、色差信号の場合よりも低減させる)ことにより、輝度信号および色差信号のいずれの場合であっても、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、このAMTのモード情報として、フラグ(flag)とインデックス(index)とを用いる場合(適用された直交変換(逆直交変換)のタイプを、フラグ(flag)とインデックス(index)とで表すようにする場合)、表11の例のように、そのインデックス(index)のビット長を、AMTの変換の候補の数に応じて可変としてもよい。
例えば、表11に示される例のように、処理対象のブロックの残差信号の符号量がより多い程(AMTのモード情報がより少ない程)、インデックス(index)のビット長を長くするようにしてもよい。換言するに、処理対象ブロックの残差信号の符号量がより少ない程(AMTのモード情報がより多い程)、インデックス(index)のビット長を短くするようにしてもよい。
なお、表11に示される直交変換(逆直交変換)のタイプの候補の数(# of Transform Pair)、フラグ(flag)、およびインデックス(index)等の値は、一例である。これらの値は任意であり、この例に限定されない。
<変換セット>
直交変換として水平方向と垂直方向との1次元直交変換が行われるようにし、それぞれのタイプを制御(設定)するようにしてもよい。例えば、図2に示される表12のように、この水平方向の1次元直交変換のタイプ(TrH)と、垂直方向の1元直交変換のタイプ(TrV)との組み合わせ(変換ペア)を、予測モード等に基づいて選択するようにしてもよい。
表12の場合、インデックス(index)(またはemt_flagおよびemt_idx)により、予測モードに応じた直交変換のタイプの候補群(変換セット)の中から、所望のタイプの組み合わせが選択される。なお、この変換セット(Transform set)は、例えば図3の表31等を用いて、イントラ予測モード(Intra Mode)に基づいて設定される。
このような表12の場合、インデックス(index)(またはemt_flagおよびemt_idx)の取り得る値の範囲を可変とする(符号化パラメータに基づいて制御する)ことにより、表11を参照して上述したように、直交変換(逆直交変換)のタイプの候補の数を可変とすることができる。
例えば、輝度信号(Luma/{Intra,Inter})の場合、枠線21に囲まれる範囲内の組み合わせを候補とし、色差信号のイントラ予測(Chroma/Intra)の場合、枠線22に囲まれる範囲内の組み合わせを候補とし、色差信号のインター予測(Chroma/Inter)の場合、枠線23に囲まれる範囲内の組み合わせを候補とするようにしてもよい。
このようにすることにより、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、表12および表31について、逆直交変換は、上述の直交変換の場合と同様であるので、その説明は省略する。
<2-1.画像符号化装置>
次に、以上のような直交変換の制御を実現するための構成や処理について説明する。図4は、本技術を適用した画像処理装置の一態様である画像符号化装置の主な構成の一例を示すブロック図である。図4に示される画像符号化装置100は、動画像の画像データを符号化する装置である。
図4に示されるように、画像符号化装置100は、直交変換制御部101、直交変換部102、および符号化部103を有する。
直交変換制御部101は、直交変換の制御に関する処理を行うように構成される。例えば、直交変換制御部101は、符号化(復号)に関する情報である符号化パラメータを取得し、その符号化パラメータに基づいて、直交変換部102による直交変換のタイプ(直交変換に用いられる変換行列)を制御する。
例えば、直交変換制御部101は、符号化パラメータに応じて直交変換のタイプの候補の数を設定し、その設定した候補の中から、直交変換部102による直交変換のタイプを選択(設定)する。直交変換制御部101は、その設定した直交変換のタイプに関する情報(AMTのモード情報)を、直交変換部102に供給する。例えば、直交変換制御部101は、そのAMTのモード情報として、設定した直交変換のタイプを示す識別子である変換タイプインデックスを直交変換部102に供給する。図4の例の場合、直交変換制御部101は、その変換タイプインデックスとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、直交変換部102に供給する。水平変換タイプインデックスTrTypeHは、水平方向の1次元直交変換のタイプを示す識別子である。垂直変換タイプインデックスTrTypeVは、垂直方向の1次元直交変換のタイプを示す識別子である。
また、直交変換制御部101は、その設定した直交変換のタイプに関する情報(AMTのモード情報)を、符号化部103に供給し、復号側に伝送させる。例えば、直交変換制御部101は、そのAMTのモード情報として、水平方向の1次元直交変換のタイプと垂直方向の1次元直交変換のタイプとの組み合わせである変換ペアを識別する識別子である変換ペアインデックスに関する情報を、符号化部103に供給する。図4の例の場合、直交変換制御部101は、その変換ペアインデックスに関する情報として、変換フラグemt_flagと変換インデックスemt_idxとを、符号化部103に供給する。変換フラグemt_flagは、直交変換のタイプを適応的に変更するかを示すフラグである。変換インデックスemt_idxは、直交変換のタイプを適応的に変更する場合に、直交変換のタイプの組み合わせの候補を絞り込む識別子である。
直交変換部102は、直交変換に関する処理を行うように構成される。例えば、直交変換部102は、直交変換制御部101の制御に従って、画像符号化装置100に入力される画像データを直交変換し、直交変換係数を生成する。例えば、直交変換部102は、直交変換制御部101から供給される変換タイプインデックスにより指定されるタイプの直交変換(変換タイプインデックスにより指定される変換行列を用いた直交変換)を行う。図4の例の場合、直交変換部102は、直交変換として、水平方向の1次元直交変換と垂直方向の1次元直交変換とを行う。その際、直交変換部102は、直交変換制御部101から供給される水平変換タイプインデックスTrTypeHにより指定される変換行列を用いて、その水平方向の1次元直交変換を行う。また、直交変換部102は、直交変換制御部101から供給される垂直変換タイプインデックスTrTypeVにより指定される変換行列を用いて、その垂直方向の1次元直交変換を行う。
直交変換部102は、このような直交変換により生成した直交変換係数を符号化部103に供給する。なお、直交変換部102が、例えば、画像データの代わりに、その画像データと予測画像のデータとの差分である予測残差を直交変換するようにしてもよい。つまり、本明細書において「画像データ」が「画像データ」そのものだけでなく「予測残差」も示しているものとしてもよい。
符号化部103は、符号化に関する処理を行うように構成される。例えば、符号化部103は、直交変換部102から供給される直交変換係数を符号化し、符号化データを生成する。また、符号化部103は、直交変換制御部101から供給される直交変換のタイプに関する情報(AMTのモード情報)を符号化し、その符号化データに含める(直交変換のタイプに関する情報を含む符号化データを生成する)。例えば、符号化部103は、直交変換制御部101から供給される変換ペアインデックスに関する情報を符号化し、その情報を含む符号化データを生成する。図4の例の場合、符号化部103は、その変換ペアインデックスに関する情報として直交変換制御部101から供給される、変換フラグemt_flagおよび変換インデックスemt_idxを符号化し、それらを含む符号化データを生成する。
符号化部103は、このように生成した符号化データを、画像符号化装置100の外部に出力する。なお、符号化部103が行う符号化の方法は任意である。また、直交変換係数が量子化されるようにし、符号化部103が、直交変換係数の代わりに、その量子化により生成される量子化係数を符号化するようにしてもよい。
なお、直交変換部102および符号化部103は、1つの処理部(ブロック)としてもよい(符号化部110)。つまり、符号化部110は、直交変換制御部101の制御に従って画像データを直交変換して符号化し、符号化データを生成する。なお、直交変換制御部101および直交変換部102を1つの処理部(ブロック)としてもよい。例えば、直交変換部102に直交変換制御部101を含めるようにしてもよい。また、直交変換制御部101および符号化部103を1つの処理部(ブロック)としてもよい。例えば、符号化部103に直交変換制御部101を含めるようにしてもよい。さらに、直交変換制御部101は、それぞれ、1つの独立した装置として構成されるようにしてもよい。直交変換部102、符号化部103、および符号化部110もそれぞれ同様である。
<画像符号化処理の流れ>
このような構成の画像符号化装置100により実行される符号化処理の流れの例を図5のフローチャートを参照して説明する。
符号化処理が開始されると、直交変換制御部101は、ステップS101において、符号化パラメータに基づいて、選択可能な変換ペア数(変換ペアの候補の数)を設定する。
ステップS102において、直交変換制御部101は、選択可能な変換ペア数に基づいて、最適な変換ペア識別情報(変換ペアインデックスに関する情報)を設定し、さらに、変換タイプインデックスを設定する。つまり、直交変換制御部101は、例えばRDコスト等に基づいて、ステップS101において設定した数の変換ペアの候補の中から最適な変換ペアを選択し(変換ペアインデックスを設定し)、その変換ペアインデックスに関する情報(例えば、変換フラグや変換インデックス)を設定する。また、直交変換制御部101は、その選択した変換ペアに対応する変換タイプインデックス(水平変換タイプインデックスおよび垂直変換タイプインデックス)を生成する。
ステップS103において、直交変換部102は、ステップS102において生成された変換タイプインデックスが示すタイプの変換行列を用いて直交変換を行い、直交変換係数を生成する。
ステップS104において、符号化部103は、ステップS103において生成された直交変換係数を符号化し、符号化データを生成する。また、符号化部103は、ステップS102において設定された変換ペアインデックスに関する情報を符号化し、符号化データに含める。
ステップS104の処理が終了すると符号化処理が終了する。
以上のように、符号化パラメータに応じて直交変換のタイプを制御する(例えば、符号化パラメータに応じた数の候補の中から直交変換のタイプを選択する)ことにより、相対的に残差信号とAMTのモード情報の相対的な符号量に応じて、より効率よく符号量を低減させることができる。したがって、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
また、以上のように符号化パラメータに応じて直交変換のタイプの候補数を制御することにより、直交変換のタイプの候補数が不要に増大することを抑制することができる。したがって、直交変換のタイプの選択をより容易に行うことができる。つまり、符号化処理の負荷の増大を抑制することができる。
<2-2.画像復号装置>
次に、以上のような逆直交変換の制御を実現するための構成や処理について説明する。図6は、本技術を適用した画像処理装置の一態様である画像復号装置の主な構成の一例を示すブロック図である。図6に示される画像復号装置130は、動画像の画像データの符号化データを復号する装置である。
図6に示されるように、画像復号装置130は、逆直交変換制御部131、復号部132、および逆直交変換部133を有する。
逆直交変換制御部131は、逆直交変換の制御に関する処理を行うように構成される。例えば、逆直交変換制御部131は、符号化(復号)に関する情報である符号化パラメータを取得し、その符号化パラメータに基づいて、逆直交変換部133による逆直交変換のタイプ(逆直交変換に用いられる変換行列)を制御する。
例えば、逆直交変換制御部131は、符号化パラメータに応じて逆直交変換のタイプの候補の数を設定し、復号部132を制御し、符号化データに含まれる、その設定した候補の数に応じた変換ペアインデックスに関する情報(例えば、変換フラグemt_flagや変換インデックスemt_idx)をパースさせ、抽出させる。逆直交変換制御部131は、抽出された、その設定した候補の数に応じた変換ペアインデックスに関する情報(例えば、変換フラグemt_flagや変換インデックスemt_idx)を取得する。
逆直交変換制御部131は、その取得した変換ペアインデックスに関する情報(例えば、変換フラグemt_flagや変換インデックスemt_idx)や、予測モード情報等に基づいて、その変換ペアインデックスに対応する変換タイプインデックスを設定する。図6の例の場合、逆直交変換制御部131は、その変換タイプインデックスとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。逆直交変換制御部131は、その設定した水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、逆直交変換部133に供給する。
復号部132は、復号に関する処理を行うように構成される。例えば、復号部132は、画像復号装置130に入力される符号化データを復号し、直交変換係数を生成する。復号部132は、その直交変換係数を逆直交変換部133に供給する。
また、復号部132は、逆直交変換制御部131の制御に従って、画像復号装置130に入力される符号化データに含まれる、逆直交変換制御部131により設定された候補の数に応じた変換ペアインデックスに関する情報(例えば、変換フラグemt_flagや変換インデックスemt_idx)をパースし、抽出する。復号部132は、その変換ペアインデックスに関する情報を逆直交変換制御部131に供給する。
逆直交変換部133は、逆直交変換に関する処理を行うように構成される。例えば、逆直交変換部133は、逆直交変換制御部131の制御に従って、復号部132から供給される直交変換係数を逆直交変換し、画像データを生成する。例えば、逆直交変換部133は、逆直交変換制御部131から供給される変換タイプインデックスにより指定されるタイプの逆直交変換(変換タイプインデックスにより指定される変換行列を用いた逆直交変換)を行う。図6の例の場合、逆直交変換部133は、逆直交変換として、水平方向の逆1次元直交変換と垂直方向の逆1次元直交変換とを行う。その際、逆直交変換部133は、逆直交変換制御部131から供給される水平変換タイプインデックスTrTypeHにより指定される変換行列を用いて、その水平方向の逆1次元直交変換を行う。また、逆直交変換部133は、逆直交変換制御部131から供給される垂直変換タイプインデックスTrTypeVにより指定される変換行列を用いて、その垂直方向の逆1次元直交変換を行う。
逆直交変換部133は、このような逆直交変換により生成した画像データを画像復号装置130の外部(例えば、後段の処理部)に供給する。なお、逆直交変換部133が、例えば、直交変換係数を逆量子化して、画像データと予測画像のデータとの差分である予測残差を生成するようにしてもよい。つまり、本明細書において「画像データ」が「画像データ」そのものだけでなく「予測残差」も示しているものとしてもよい。また、復号部132が、符号化データを復号して、直交変換係数の代わりに、量子化係数を生成するようにしてもよい。その場合、逆直交変換部133が、その量子化係数が逆量子化されて生成された直交変換係数を逆直交変換するようにしてもよい。
なお、復号部132および逆直交変換部133は、1つの処理部(ブロック)としてもよい(復号部140)。つまり、復号部140は、逆直交変換制御部131の制御に従って符号化データを復号して逆直交変換し、画像データを生成する。なお、逆直交変換制御部131および逆直交変換部133を1つの処理部(ブロック)としてもよい。例えば、逆直交変換部133に逆直交変換制御部131を含めるようにしてもよい。また、逆直交変換制御部131および復号部132を1つの処理部(ブロック)としてもよい。例えば、復号部132に逆直交変換制御部131を含めるようにしてもよい。さらに、逆直交変換制御部131は、それぞれ、1つの独立した装置として構成されるようにしてもよい。復号部132、逆直交変換部133、および復号部140もそれぞれ同様である。
<画像復号処理の流れ>
このような構成の画像復号装置130により実行される復号処理の流れの例を図7のフローチャートを参照して説明する。
復号処理が開始されると、復号部132は、ステップS131において、符号化データを復号し、直交変換係数を生成する。また、復号部132は、符号化データに含まれる符号化パラメータもパースし、抽出する。
ステップS132において、逆直交変換制御部131は、ステップS131において抽出された符号化パラメータに基づいて、選択可能な変換ペア数(変換ペアの候補数)を設定する。
ステップS133において、逆直交変換制御部131は、ステップS132において設定された選択可能な変換ペア数に基づいて、復号部132に、符号化データに含まれる変換ペア識別情報(例えば、変換フラグおよび変換インデックス)を復号させ、取得する。逆直交変換制御部131は、取得した変換ペア識別情報に基づいて、変換タイプインデックス(水平変換タイプインデックスおよび垂直変換タイプインデックス)を設定する。
ステップS134において、逆直交変換部133は、ステップS133において設定された変換タイプインデックス(水平変換タイプインデックスおよび垂直変換タイプインデックス)が示すタイプの変換行列を用いて逆直交変換を行い、画像データを生成する。
ステップS134の処理が終了すると復号処理が終了する。
以上のように、符号化パラメータに応じて逆直交変換のタイプを制御する(例えば、符号化パラメータに応じた数の候補の中から逆直交変換のタイプを選択する)ことにより、符号化側において、相対的に残差信号とAMTのモード情報の相対的な符号量に応じて、より効率よく符号量を低減させることができる。したがって、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<2-3.符号化パラメータのバリエーション(方法一覧)>
以上のような直交変換(逆直交変換)のタイプの候補の数の制御に用いる符号化パラメータは、符号化(復号)に関する情報であればどのような情報であってもよい。符号化パラメータの例を図8の表151に示す。
例えば、符号化パラメータは、符号化データとして符号化側から復号側に伝送されるシンタックス要素の値を含むようにしてもよい。このようにすることにより、画像符号化装置100は、そのシンタックス要素を設定することにより、容易に直交変換のタイプの候補の数の制御に用いる符号化パラメータを得ることができる。また、画像復号装置130は、符号化データをパースしてそのシンタックス要素を抽出することにより、容易に逆直交変換のタイプの候補の数の制御に用いる符号化パラメータを得ることができる。
<方法#1>
その場合、符号化パラメータは、例えば、コンポーネントの種類に関するシンタックス要素(例えば、コンポーネントID(componentID))の値を含むようにしてもよい。コンポーネントID(componentID)は、輝度信号であるか色差信号であるか(Y,Cb,Crのいずれであるか)を識別する識別子である。つまり、直交変換(逆直交変換)の処理対象が輝度信号であるか色差信号であるかに応じて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#1)。
例えば、色差信号の場合、直交変換(逆直交変換)のタイプの候補の数を、輝度信号の場合よりも少なく設定するようにしてもよい。一般的に色差信号の方が、輝度信号に比べて残差信号の符号量が少ない。そのため、色差信号の場合は、直交変換(逆直交変換)のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。逆に、輝度信号の場合は、直交変換(逆直交変換)のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、この方法#1の場合、さらに、非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報(ラスト係数の位置、非ゼロ係数の絶対値和)に応じて、タイプの候補の数を制御するようにしてもよい。
<方法#2>
また、符号化パラメータが、例えば、予測のモードに関するシンタックス要素の値を含むようにしてもよい。
<方法#2-1>
例えば、直交変換(逆直交変換)の処理対象ブロックの予測モードがイントラ予測(例えばイントラCU)であるか、インター予測(例えばインターCU)であるかに応じて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#2-1)。
例えば、インター予測の場合、直交変換(逆直交変換)のタイプの候補の数を、イントラ予測の場合よりも少なく設定するようにしてもよい。一般的にインターCUの方が、イントラCUに比べて残差信号の符号量が少ない。そのため、インター予測の場合は、直交変換(逆直交変換)のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。逆に、イントラ予測の場合は、直交変換(逆直交変換)のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、この方法#2-1の場合、さらに、非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報(ラスト係数の位置、非ゼロ係数の絶対値和)に応じて、タイプの候補の数を制御するようにしてもよい。
<方法#2-2>
例えば、直交変換(逆直交変換)の処理対象ブロックの予測モードがインター予測(例えばインターCU)の場合に、順予測であるか、双予測であるかに応じて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#2-2)。
例えば、双予測の場合、直交変換(逆直交変換)のタイプの候補の数を、順予測の場合よりも少なく設定するようにしてもよい。一般的に双予測の方が、順予測に比べて予測精度が高く、残差信号の符号量が少ない。そのため、双予測の場合は、直交変換(逆直交変換)のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。逆に、順予測の場合は、直交変換(逆直交変換)のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、この方法#2-2の場合、さらに、非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報(ラスト係数の位置、非ゼロ係数の絶対値和)に応じて、タイプの候補の数を制御するようにしてもよい。
<方法#2-3>
例えば、直交変換(逆直交変換)の処理対象ブロックの予測モードが予め定められた所定のモードであるか、他のモードであるかに応じて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#2-3)。
例えば、予測のモードが予め定められた所定のモードの場合、直交変換(逆直交変換)のタイプの候補の数を、他のモードの場合よりも少なく設定するようにしてもよい。例えば、予測のモードがその所定のモードである場合、予測のモードが他のモードである場合に比べて残差信号の符号量が少ないとする。その場合、予測のモードがその所定のモードであるときは、直交変換(逆直交変換)のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。逆に、予測のモードが他のモードであるときは、直交変換(逆直交変換)のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、予測のモードがその所定のモードである場合に、予測のモードが他のモードである場合に比べて残差信号の符号量が多いときは、直交変換(逆直交変換)のタイプの候補の数の増減を逆にすればよい。
この所定のモードは、他のモードに比べて残差信号の符号量が少ないモードであればどのようなモードであってもよい。例えば、動的に構築される輝度成分の線型関数を予測関数として用いて色差成分の画素値を予測する輝度色差間予測(CCP(Cross-component prediction))の線型モデルモード(LMChroma)を、この所定のモードとしてもよい。一般的に、このLMChromaの場合、他のイントラ予測モードに比べて残差信号の符号量が少ない。そのため、予測モードがこのLMChromaである場合に、直交変換(逆直交変換)のタイプの候補の数を、他のモードの場合よりも少なく設定するようにしてもよい。このようにすることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、この方法#2-3の場合、さらに、非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報(ラスト係数の位置、非ゼロ係数の絶対値和)に応じて、タイプの候補の数を制御するようにしてもよい。
<方法#3>
また、符号化パラメータが、例えば、直交変換(逆直交変換)の処理対象とするブロックのサイズに関するシンタックス要素の値を含むようにしてもよい。例えば、直交変換(逆直交変換)の処理対象ブロックのサイズに応じて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#3)。
例えば、ブロックのサイズがより小さい程、直交変換(逆直交変換)のタイプの候補の数をより少なく設定するようにしてもよい。一般的にブロックサイズがより小さい程、残差信号の符号量が少ない。そのため、ブロックのサイズがより小さい程、直交変換(逆直交変換)のタイプの候補の数をより低減させるようにすることにより、AMTのモード情報の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
換言するに、ブロックサイズがより大きい程、残差信号の符号量が多い。したがって、ブロックのサイズがより大きい程、直交変換(逆直交変換)のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
例えば、所定の閾値を用いてブロックサイズを多段階に分類し(ブロックサイズをその値に応じて複数のグループに分類し)、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
なお、この方法#3の場合、さらに、非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報(ラスト係数の位置、非ゼロ係数の絶対値和)に応じて、タイプの候補の数を制御するようにしてもよい。
<方法#4>
また、符号化パラメータが、例えば、量子化パラメータに関するシンタックス要素の値を含むようにしてもよい。
<方法#4-1>
例えば、量子化パラメータQPの値に応じて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#4-1)。
例えば、量子化パラメータQPの値が大きい程、直交変換(逆直交変換)のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に量子化パラメータQPの値がより大きい程、残差信号の符号量が少ない。そのため、量子化パラメータQPの値が大きい程、直交変換(逆直交変換)のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
換言するに、量子化パラメータQPの値が小さい程、残差信号の符号量が多い。したがって、量子化パラメータQPの値が小さい程、直交変換(逆直交変換)のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
例えば、所定の閾値を用いて量子化パラメータQPを多段階に分類し(量子化パラメータQPをその値に応じて複数のグループに分類し)、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
なお、この方法#4-1の場合、さらに、非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報(ラスト係数の位置、非ゼロ係数の絶対値和)に応じて、タイプの候補の数を制御するようにしてもよい。
<方法#4-2>
例えば、量子化パラメータQPの代わりに、時間方向の階層符号化における階層を示す識別情報であるテンポラルID(temporalID)に基づいて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#4-2)。
例えば、符号化パラメータが、時間方向の階層符号化における階層が上位層である程、直交変換(逆直交変換)のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、このテンポラルID(temporalID)の値が大きい程、すなわち、時間方向の階層符号化における階層が上位層である程、量子化パラメータ(QP)の値が大きい。そのため、このテンポラルID(temporalID)の値が大きい程、直交変換(逆直交変換)のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
換言するに、テンポラルID(temporalID)の値が小さい程、残差信号の符号量が多い。したがって、テンポラルID(temporalID)の値が小さい程、直交変換(逆直交変換)のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
例えば、所定の閾値を用いてテンポラルID(temporalID)の値を多段階に分類し(テンポラルID(temporalID)をその値に応じて複数のグループに分類し)、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
なお、この方法#4-2の場合、さらに、非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報(ラスト係数の位置、非ゼロ係数の絶対値和)に応じて、タイプの候補の数を制御するようにしてもよい。
<方法#5>
例えば、符号化パラメータは、符号化データとして符号化側から復号側に伝送されるシンタックス要素の値から導出される変数を含むようにしてもよい。このようにすることにより、画像符号化装置100は、より多様な符号化パラメータに基づいて、直交変換(逆直交変換)のタイプの候補の数を制御することができる。また、画像復号装置130は、より多様な符号化パラメータに基づいて、逆直交変換のタイプの候補の数を制御することができる。
この変数は、どのような値であってもよい。例えば、この変数が、変換係数から導出される変数であるようにしてもよい。
<方法#5-1>
例えば、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数の数に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#5-1)。
例えば、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数が少ない程、直交変換(逆直交変換)のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、非ゼロ係数の数が少ない程、残差信号の符号量が少ない。そのため、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数が少ない程、直交変換(逆直交変換)のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
換言するに、非ゼロ係数の数が多い程、残差信号の符号量が多い。したがって、非ゼロ係数の数が多い程、直交変換(逆直交変換)のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
例えば、所定の閾値を用いて非ゼロ係数の数を多段階に分類し(非ゼロ係数の数をその値に応じて複数のグループに分類し)、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
<方法#5-2>
例えば、直交変換(逆直交変換)の処理対象とするブロックにおけるラスト係数の位置に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#5-2)。ラスト係数とは、直交変換(逆直交変換)の処理対象とするブロックにおけるスキャン順に最後の非ゼロ係数のことである。このラスト係数の位置(例えば、スキャン順におけるスキャン開始位置からの距離)に応じて、直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい。
例えば、直交変換(逆直交変換)の処理対象とするブロックにおけるラスト係数の位置がスキャン開始位置から近い程、直交変換のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、非ゼロ係数の数が少ない程、このラスト係数の位置は、スキャン開始位置に近くなる。つまり、残差信号の符号量が少ない。そのため、直交変換(逆直交変換)の処理対象とするブロックにおけるラスト係数の位置がスキャン開始位置から近い程、直交変換(逆直交変換)のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
換言するに、ラスト係数の位置がスキャン開始位置から遠い程、残差信号の符号量が多い。したがって、このラスト係数の位置がスキャン開始位置から遠い程、直交変換(逆直交変換)のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
例えば、所定の閾値を用いてスキャン開始位置からラスト係数の位置までの距離を多段階に分類し(この距離をその値に応じて複数のグループに分類し)、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
<方法#5-3>
例えば、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数の絶対値の総和に応じて直交変換(逆直交変換)のタイプの候補の数を制御するようにしてもよい(表151の方法#5-3)。
例えば、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数の絶対値の総和が小さい程、直交変換(逆直交変換)のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、非ゼロ係数の絶対値の総和が小さい程、残差信号の符号量が少ない。そのため、この非ゼロ係数の絶対値の総和が小さい程、直交変換(逆直交変換)のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
換言するに、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数の絶対値の総和が大きい程、残差信号の符号量が多い。したがって、この非ゼロ係数の絶対値の総和が大きい程、直交変換(逆直交変換)のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
例えば、所定の閾値を用いて直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数の絶対値の総和を多段階に分類し(この非ゼロ係数の絶対値の総和をその値に応じて複数のグループに分類し)、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
<方法組み合わせ>
なお、上述した方法の内、任意の複数の方法を組わせてもよい。例えば、方法#5-1、方法#2-1、および方法#1を組わせて適用するようにしてもよい。
<2-4.画像符号化装置>
次に、以上のような直交変換(逆直交変換)の制御の適用例について、より具体的な例を説明する。図9は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図9に示される画像符号化装置200は、動画像の画像データを符号化する装置である。例えば、画像符号化装置200は、非特許文献1、非特許文献3、または非特許文献4に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
なお、図9においては、処理部(ブロック)やデータの流れ等の主なものを示しており、図9に示されるものが全てとは限らない。つまり、画像符号化装置200において、図9においてブロックとして示されていない処理部が存在したり、図9において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置200内の処理部等を説明する他の図においても同様である。
図9に示されるように画像符号化装置200は、制御部201、並べ替えバッファ211、演算部212、直交変換部213、量子化部214、符号化部215、蓄積バッファ216、逆量子化部217、逆直交変換部218、演算部219、インループフィルタ部220、フレームメモリ221、予測部222、およびレート制御部223を有する。
<制御部>
制御部201は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ211により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部201は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
これらの符号化パラメータの詳細については後述する。制御部201は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
ヘッダ情報Hinfoは、各ブロックに供給される。
予測モード情報Pinfoは、符号化部215と予測部222とに供給される。
変換情報Tinfoは、符号化部215、直交変換部213、量子化部214、逆量子化部217、および逆直交変換部218に供給される。
フィルタ情報Finfoは、インループフィルタ部220に供給される。
<直交変換・逆直交変換の制御>
なお、制御部201は、直交変換部213による直交変換や逆直交変換部218による逆直交変換の制御に関する情報を設定したり、導出したりする。制御部201は、そのようにして得られた情報を直交変換部213や逆直交変換部218に供給することにより、直交変換部213により行われる直交変換や、逆直交変換部218により行われる逆直交変換を制御する。
また、その制御の際、制御部201は、直交変換(逆直交変換)のタイプを、上述した各種符号化パラメータに基づいて制御する。より具体的には、制御部201は、選択可能な変換ペア数(変換ペアの候補の数)NumTrPairを、上述した各種符号化パラメータに基づいて制御する。
例えば、制御部201は、符号化パラメータに応じて直交変換(逆直交変換)のタイプの候補の数(選択可能な変換ペア数NumTrPair)を設定し、その設定した直交変換(逆直交変換)のタイプの候補の中から直交変換(逆直交変換)のタイプを選択する。制御部201は、その選択したタイプを示す制御情報を直交変換部213や逆直交変換部218に供給することにより、それらの直交変換および逆直交変換を制御する。
このような制御により、画像符号化装置200は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。また、不要な候補の増大を抑制させることができるので、符号化処理の負荷の増大を抑制することができる。
<並べ替えバッファ>
画像符号化装置200には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ211は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ211は、制御部201の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ211は、処理後の各入力画像を演算部212に供給する。また、並べ替えバッファ211は、その各入力画像(元画像)を、予測部222やインループフィルタ部220にも供給する。
<演算部>
演算部212は、処理単位のブロックに対応する画像I、および予測部222より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式(6)に示されるように減算して、予測残差Dを導出し、それを直交変換部213に供給する。
Figure 2023112105000005
<直交変換部>
直交変換部213は、演算部212から供給される予測残差Dと、制御部201から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。なお、直交変換部213は、直交変換のタイプ(変換係数)を適応的に選択する適応直交変換(AMT)を行うことができる。直交変換部213は、その得られた変換係数Coeffを量子化部214に供給する。
<量子化部>
量子化部214は、直交変換部213から供給される変換係数Coeffと、制御部201から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部223により制御される。量子化部214は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部215および逆量子化部217に供給する。
<符号化部>
符号化部215は、量子化部214から供給された量子化変換係数レベルlevelと、制御部201から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部220から供給されるフィルタ係数等のフィルタに関する情報と、予測部222から供給される最適な予測モードに関する情報とを入力とする。符号化部215は、量子化変換係数レベルlevelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
また、符号化部215は、その量子化変換係数レベルlevelから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
さらに、符号化部215は、インループフィルタ部220から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部222から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部215は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
また、符号化部215は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部215は、その符号化データを蓄積バッファ216に供給する。
<蓄積バッファ>
蓄積バッファ216は、符号化部215において得られた符号化データを、一時的に保持する。蓄積バッファ216は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置200の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ216は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
<逆量子化部>
逆量子化部217は、逆量子化に関する処理を行う。例えば、逆量子化部217は、量子化部214から供給される量子化変換係数レベルlevelと、制御部201から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部214において行われる量子化の逆処理である。逆量子化部217は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部218に供給する。
<逆直交変換部>
逆直交変換部218は、逆直交変換に関する処理を行う。例えば、逆直交変換部218は、逆量子化部217から供給される変換係数Coeff_IQと、制御部201から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部213において行われる直交変換の逆処理である。つまり、逆直交変換部218は、逆直交変換のタイプ(変換係数)を適応的に選択する適応逆直交変換(AMT)を行うことができる。
逆直交変換部218は、このような逆直交変換により得られた予測残差D'を演算部219に供給する。なお、逆直交変換部218は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部218については、復号側について行う説明(後述する)を適用することができる。
<演算部>
演算部219は、逆直交変換部218から供給される予測残差D'と、予測部222から供給される予測画像Pとを入力とする。演算部219は、その予測残差D'と、その予測残差D'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部219は、導出した局所復号画像Rlocalをインループフィルタ部220およびフレームメモリ221に供給する。
<インループフィルタ部>
インループフィルタ部220は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部220は、演算部219から供給される局所復号画像Rlocalと、制御部201から供給されるフィルタ情報Finfoと、並べ替えバッファ211から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部220に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部220に入力されるようにしてもよい。
インループフィルタ部220は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部220は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
例えば、インループフィルタ部220は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
もちろん、インループフィルタ部220が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部220がウィーナーフィルタ等を適用するようにしてもよい。
インループフィルタ部220は、フィルタ処理された局所復号画像Rlocalをフレームメモリ221に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部220は、そのフィルタに関する情報を符号化部215に供給する。
<フレームメモリ>
フレームメモリ221は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ221は、演算部219から供給される局所復号画像Rlocalや、インループフィルタ部220から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ221は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ221内のバッファへ格納する)。フレームメモリ221は、予測部222の要求に応じて、その復号画像R(またはその一部)を予測部222に供給する。
<予測部>
予測部222は、予測画像の生成に関する処理を行う。例えば、予測部222は、制御部201から供給される予測モード情報Pinfoと、並べ替えバッファ211から供給される入力画像(元画像)と、フレームメモリ221から読み出す復号画像R(またはその一部)を入力とする。予測部222は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部222は、生成した予測画像Pを演算部212および演算部219に供給する。また、予測部222は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部215に供給する。
<レート制御部>
レート制御部223は、レート制御に関する処理を行う。例えば、レート制御部223は、蓄積バッファ216に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部214の量子化動作のレートを制御する。
以上のような構成の画像符号化装置200において、制御部201は、直交変換制御部または逆直交変換制御部として、上述した本技術を適用した処理を行う。また、直交変換部213は、直交変換部として、上述した本技術を適用した処理を行う。さらに、符号化部215は、符号化部として、上述した本技術を適用した処理を行う。また、逆直交変換部218は、逆直交変換部として、上述した本技術を適用した処理を行う。したがって、画像符号化装置200は、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<制御部の詳細>
図10は、図9の制御部201が有する、直交変換の制御に関する主な構成例を示すブロック図である。図10に示されるように、制御部201は、直交変換の制御を行う構成として、変換ペア数設定部241、cMax設定部242、変換ペア識別情報設定部243、変換ペアLUT244、および変換タイプインデックス設定部245有する。
変換ペア数設定部241は、選択可能な変換ペア数NumTrPairの設定に関する処理を行うように構成される。選択可能な変換ペア数NumTrPairとは、選択可能な変換ペアの数のことである。選択可能な変換ペアとは、変換ペアの候補のことである。変換ペアとは、水平方向の1次元直交変換のタイプ(TrH)と、垂直方向の1元直交変換のタイプ(TrV)との組み合わせ(または、垂直方向の逆1元直交変換のタイプと、水平方向の逆1次元直交変換のタイプとの組み合わせ)のことである。
変換ペア数設定部241は、符号化パラメータを入力とする。この符号化パラメータは、制御部201(制御部201の図10に示される以外の構成)により設定されたものであってもよいし、画像符号化装置200の外部から供給されるものであってもよい。また、この符号化パラメータは、符号化(復号)に関する情報であり、直交変換の制御に利用することができるものであれば、特に限定はされないが、例えば、図8を参照して説明したような各種パラメータを含む。
変換ペア数設定部241は、この符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairを設定する。変換ペア数設定部241は、設定した選択可能な変換ペア数NumTrPairを、cMax設定部242および変換ペア識別情報設定部243に供給する。
cMax設定部242は、cMaxの設定に関する処理を行うように構成される。このcMaxは、選択可能な変換ペア数(すなわち、変換ペアの候補の数)の最大値を示す変数である。cMax設定部242は、変換ペア数設定部241から供給される、選択可能な変換ペア数NumTrPairを入力とする。cMax設定部242は、その選択可能な変換ペア数NumTrPairに基づいて、cMaxを設定する。cMax設定部242は、設定したcMaxを、変換ペア識別情報設定部243に供給する。
変換ペア識別情報設定部243は、変換ペア識別情報の設定に関する処理を行うように構成される。変換ペア識別情報とは、候補の中から選択された変換ペアを示す識別子である変換ペアインデックスTrPairIdxに関する情報である。つまり、この変換ペア識別情報は、直交変換(逆直交変換)のタイプに関する情報(AMTのモード情報)の1つである。
変換ペア識別情報には、例えば、変換ペアインデックスTrPairIdxが含まれる。また、変換ペア識別情報には、例えば、その変換ペアインデックスTrPairIdxに対応する変換フラグemt_flagや変換インデックスemt_idxが含まれる。変換フラグemt_flagは、直交変換(逆直交変換)のタイプを適応的に変更するかを示すフラグである。変換インデックスemt_idxは、直交変換のタイプを適応的に変更する場合に変換ペアの候補を絞り込む識別子である。なお、変換ペアインデックスTrPairIdxは、例えば、図2の表12のindexに対応する。
変換ペア識別情報設定部243は、変換ペア数設定部241から供給される選択可能な変換ペア数NumTrPairと、cMax設定部242から供給されるcMaxとを入力とする。変換ペア識別情報設定部243は、それらの情報に基づいて、変換ペア識別情報を設定する。
図10に示されるように、変換ペア識別情報設定部243は、変換ペアインデックス設定部251、変換フラグ設定部252、および変換インデックス設定部253を有する。
変換ペアインデックス設定部251は、変換ペアインデックスTrPairIdxの設定に関する処理を行うように構成される。変換ペアインデックス設定部251は、変換ペア数設定部241から供給される選択可能な変換ペア数NumTrPairと、cMax設定部242から供給されるcMaxとを入力とする。変換ペアインデックス設定部251は、それらの情報に基づいて、変換ペアインデックスTrPairIdxを設定する。変換ペアインデックス設定部251は、その設定した変換ペアインデックスTrPairIdxを、変換フラグ設定部252および変換インデックス設定部253に供給する。また、変換ペアインデックス設定部251は、その設定した変換ペアインデックスTrPairIdxを、変換タイプインデックス設定部245にも供給する。
変換フラグ設定部252は、変換フラグemt_flagの設定に関する処理を行うように構成される。変換フラグ設定部252は、変換ペアインデックス設定部251から供給される変換ペアインデックスTrPairIdxを入力とする。変換フラグ設定部252は、その変換ペアインデックスTrPairIdxに対応する変換フラグemt_flagを設定する。変換フラグ設定部252は、設定した変換フラグemt_flagを、AMTのモード情報(変換ペアインデックスに関する情報)として符号化部215に供給し、符号化データとして復号側に伝送させる。
変換インデックス設定部253は、変換インデックスemt_idxの設定に関する処理を行うように構成される。変換インデックス設定部253は、変換ペアインデックス設定部251から供給される変換ペアインデックスTrPairIdxを入力とする。変換インデックス設定部253は、その変換ペアインデックスTrPairIdxに対応する変換インデックスemt_idxを設定する。変換インデックス設定部253は、設定した変換インデックスemt_idxを、AMTのモード情報(変換ペアインデックスに関する情報)として符号化部215に供給し、符号化データとして復号側に伝送させる。
符号化部215は、変換フラグ設定部252から供給される変換フラグemt_flagを符号化し、量子化変換係数レベルlevelを可変長符号化した符号化データに含める(変換フラグemt_flagを含む符号化データを生成する)。同様に、符号化部215は、変換インデックス設定部253から供給される変換インデックスemt_idxを符号化し、量子化変換係数レベルlevelを可変長符号化した符号化データに含める(変換インデックスemt_idxを含む符号化データを生成する)。つまり、符号化部215は、変換ペアインデックスに関する情報を含む符号化データ(変換フラグemt_flagおよび変換インデックスemt_idxを含む符号化データ)を生成する。
変換ペアLUT244は、例えば半導体メモリ等の任意の記憶媒体を有し、変換ペアを選択するためのルックアップテーブル(LUT(Look Up Table))を記憶している。このLUTは、例えば、図2に示される表12のような情報を有する。このLUTは、予め定められたものであってもよいし、RDコスト等に基づいて再設計することが可能であってもよい。変換ペアLUT244は、必要に応じて、このLUTを変換タイプインデックス設定部245に供給する。
変換タイプインデックス設定部245は、変換タイプインデックスTrTypeの設定に関する処理を行うように構成される。変換タイプインデックスTrTypeとは、直交変換(逆直交変換)のタイプ(変換行列)を識別する識別子である。この変換タイプインデックスTrTypeは、例えば、水平変換タイプインデックスTrTypeHと、垂直変換タイプインデックスTrTypeVとを含む。水平変換タイプインデックスTrTypeHは、水平方向の1次元直交変換(逆1次元直交変換)のタイプ(変換行列)を識別する識別子である。垂直変換タイプインデックスTrTypeVは、垂直方向の1次元直交変換(逆1次元直交変換)のタイプ(変換行列)を識別する識別子である。
変換タイプインデックス設定部245は、変換ペアインデックス設定部251から供給される変換ペアインデックスTrPairIdx、変換ペアLUT244から供給されるLUT、および、モード情報を入力とする。このモード情報には、例えば、イントラ予測のモード情報(IntraMode)、インター予測であることを示すモード情報(Inter)、およびコンポーネントID(compID)等の符号化パラメータが含まれる。このモード情報は、制御部201(制御部201の図10に示される以外の構成)により設定されたものであってもよいし、画像符号化装置200の外部から供給されるものであってもよい。
変換タイプインデックス設定部245は、これらの情報に基づいて、変換タイプインデックスTrTypeとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。つまり、変換タイプインデックス設定部245は、変換ペアLUT244から供給されるLUTに従って、変換ペアインデックスTrPairIdxとモード情報とに対応する変換ペアを選択し、その変換ペアを識別する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。
変換タイプインデックス設定部245は、設定した水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、変換情報Tinfoとして、直交変換部213や逆直交変換部218に供給する。
つまり、制御部201は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを直交変換部213や逆直交変換部218に供給することにより、直交変換や逆直交変換を制御する。そして、上述のように、制御部201は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する際に、符号化パラメータに基づいて変換ペアの候補の数(NumTrPair)を制御する。したがって、画像符号化装置200は、図8等を参照して上述したように、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<直交変換部の詳細>
図11は、図9の直交変換部213の主な構成例を示すブロック図である。図11に示されるように、直交変換部213は、プライマリ変換部261およびセカンダリ変換部262を有する。
プライマリ変換部261は、例えば直交変換等の所定の変換処理であるプライマリ変換に関する処理を行うように構成される。例えば、プライマリ変換部261は、予測残差Dおよび変換情報Tinfo(水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeV等)を入力とする。
プライマリ変換部261は、水平変換タイプインデックスTrTypeHに対応する変換行列と、垂直変換タイプインデックスTrTypeVに対応する変換行列とを用いて、予測残差Dに対するプライマリ変換を行い、プライマリ変換後の変換係数Coeff_Pを導出する。プライマリ変換部261は、導出した変換係数Coeff_Pをセカンダリ変換部262に供給する。
図11に示されるように、プライマリ変換部261は、プライマリ水平変換部271およびプライマリ垂直変換部272を有する。
プライマリ水平変換部271は、水平方向の1次元直交変換であるプライマリ水平変換に関する処理を行うように構成される。例えば、プライマリ水平変換部271は、予測残差Dおよび変換情報Tinfo(水平変換タイプインデックスTrTypeH等)を入力とする。プライマリ水平変換部271は、水平変換タイプインデックスTrTypeHに対応する変換行列を用いて、予測残差Dに対するプライマリ水平変換を行う。プライマリ水平変換部271は、プライマリ水平変換後の変換係数をプライマリ垂直変換部272に供給する。
プライマリ垂直変換部272は、垂直方向の1次元直交変換であるプライマリ垂直変換に関する処理を行うように構成される。例えば、プライマリ垂直変換部272は、プライマリ水平変換後の変換係数および変換情報Tinfo(垂直変換タイプインデックスTrTypeV等)を入力とする。プライマリ垂直変換部272は、垂直変換タイプインデックスTrTypeVに対応する変換行列を用いて、プライマリ水平変換後の変換係数に対するプライマリ垂直変換を行う。プライマリ垂直変換部272は、プライマリ垂直変換後の変換係数(つまり、プライマリ変換後の変換係数Coeff_P)をセカンダリ変換部262に供給する。
セカンダリ変換部262は、例えば直交変換等の所定の変換処理であるセカンダリ変換に関する処理を行うように構成される。例えば、セカンダリ変換部262は、変換係数Coeff_Pおよび変換情報Tinfoを入力とする。セカンダリ変換部262は、変換情報Tinfoに基づいて、変換係数Coeff_Pに対するセカンダリ変換を行い、セカンダリ変換後の変換係数Coeffを導出する。セカンダリ変換部262は、その変換係数Coeffを直交変換部213の外部に出力する(量子化部214に供給する)。
なお、直交変換部213においては、プライマリ変換部261によるプライマリ変換、若しくは、セカンダリ変換部262によるセカンダリ変換、またはその両方を、スキップする(省略する)ことができる。また、プライマリ水平変換部271によるプライマリ水平変換をスキップする(省略する)ことができるようにしてもよい。同様に、プライマリ垂直変換部272によるプライマリ垂直変換をスキップする(省略する)ことができるようにしてもよい。
<プライマリ水平変換部>
図12は、図11のプライマリ水平変換部271の主な構成例を示すブロック図である。図12に示されるように、プライマリ水平変換部271は、変換行列導出部281、行列演算部282、スケーリング部283、およびクリップ部284を有する。
変換行列導出部281は、少なくとも、プライマリ水平変換用の変換行列TH(水平方向の1次元直交変換用の変換行列TH)の導出に関する処理を行うのに必要な構成を有する。例えば、変換行列導出部281は、水平変換タイプインデックスTrTypeHと、変換ブロックのサイズに関する情報を入力とする。変換行列導出部281は、その水平変換タイプインデックスTrTypeHに対応する、変換ブロックと同サイズの、プライマリ水平変換用の変換行列THを導出する。変換行列導出部281は、その変換行列THを行列演算部282に供給する。
行列演算部282は、少なくとも、行列演算に関する処理を行うのに必要な構成を有する。例えば、行列演算部282は、変換行列導出部281から供給される変換行列THと入力データXin(すなわち予測残差Dの変換ブロック)とを入力とする。行列演算部282は、その変換行列導出部281から供給される変換行列THを用いて、入力データXin(すなわち予測残差Dの変換ブロック)に対する水平方向の1次元直交変換を行い、中間データY1を得る。この演算は以下の式(7)のように行列式で表すことができる。
Figure 2023112105000006
行列演算部282は、その中間データY1をスケーリング部283に供給する。
スケーリング部283は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SHでスケーリングし、中間データY2を得る。このスケーリングは、以下の式(8)のように表すことができる。以降、ある2次元行列(2次元配列)Xのi行j列成分((i,j)成分)をX[i,j]と表記する。
Figure 2023112105000007
スケーリング部283は、その中間データY2をクリップ部284に供給する。
クリップ部284は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、プライマリ水平変換後の変換係数)を導出する。この処理は、以下の式(9)のように表すことができる。
Figure 2023112105000008
クリップ部284は、その出力データXout(プライマリ水平変換後の変換係数)をプライマリ水平変換部271の外部に出力する(プライマリ垂直変換部272に供給する)。
<変換行列導出部>
図13は、図12の変換行列導出部281の主な構成例を示すブロック図である。図13に示されるように、変換行列導出部281は、変換行列LUT291、フリップ部292、および転置部293を有する。なお、図13においては、データの授受を示す矢印を省略しているが、変換行列導出部281は、任意の処理部(処理ブロック)間で任意のデータを授受することができる。
変換行列LUT291は、水平変換タイプインデックスTrTypeHおよび変換ブロックのサイズNに対応する変換行列を保持(格納)するためのルックアップテーブルである。変換行列LUT291は、水平変換タイプインデックスTrTypeHおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT291は、その変換行列をベース変換行列Tbaseとしてフリップ部292若しくは転置部293、または両方に供給する。
フリップ部292は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部292は、変換行列LUT291から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向(水平方向)にフリップして、フリップ後の変換行列Tflipを、変換行列THとして、変換行列導出部281の外部に出力する(行列演算部282に供給する)。
転置部293は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部293は、変換行列LUT291から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列THとして、変換行列導出部281の外部に出力する(行列演算部282に供給する)。
<プライマリ垂直変換部>
図14は、図11のプライマリ垂直変換部272の主な構成例を示すブロック図である。図14に示されるように、プライマリ垂直変換部272は、変換行列導出部301、行列演算部302、スケーリング部303、およびクリップ部304を有する。
変換行列導出部301は、少なくとも、プライマリ垂直変換用の変換行列TV(垂直方向の1次元直交変換用の変換行列TV)の導出に関する処理を行うのに必要な構成を有する。例えば、変換行列導出部301は、垂直変換タイプインデックスTrTypeVと、変換ブロックのサイズに関する情報を入力とする。変換行列導出部301は、その垂直変換タイプインデックスTrTypeVに対応する、変換ブロックと同サイズの、プライマリ垂直変換用の変換行列TVを導出する。変換行列導出部301は、その変換行列TVを行列演算部302に供給する。
行列演算部302は、少なくとも、行列演算に関する処理を行うのに必要な構成を有する。例えば、行列演算部302は、変換行列導出部301から供給される変換行列TVと入力データXinとを入力とする。例えば、行列演算部302は、その変換行列導出部301から供給される変換行列TVを用いて、入力データXin(すなわちプライマリ水平変換後の変換係数の変換ブロック)に対する垂直方向の1次元直交変換を行い、中間データY1を得る。この演算は以下の式(10)のように行列式で表すことができる。
Figure 2023112105000009
行列演算部302は、その中間データY1をスケーリング部303に供給する。
スケーリング部303は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SVでスケーリングし、中間データY2を得る。このスケーリングは、以下の式(11)のように表すことができる。
Figure 2023112105000010
スケーリング部303は、その中間データY2をクリップ部304に供給する。
クリップ部304は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、プライマリ垂直変換後の変換係数)を導出する。この処理は、以下の式(12)のように表すことができる。
Figure 2023112105000011
クリップ部304は、その出力データXout(プライマリ垂直変換後の変換係数)を、プライマリ変換後の変換係数Coeff_Pとして、プライマリ垂直変換部272の外部に出力する(セカンダリ変換部262に供給する)。
<変換行列導出部>
図15は、図14の変換行列導出部301の主な構成例を示すブロック図である。図15に示されるように、変換行列導出部301は、変換行列LUT311、フリップ部312、および転置部313を有する。なお、図15においては、データの授受を示す矢印を省略しているが、変換行列導出部301は、任意の処理部(処理ブロック)間で任意のデータを授受することができる。
変換行列LUT311は、垂直変換タイプインデックスTrTypeVおよび変換ブロックのサイズNに対応する変換行列を保持(格納)するためのルックアップテーブルである。変換行列LUT311は、垂直変換タイプインデックスTrTypeIdxVおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT311は、その変換行列をベース変換行列Tbaseとしてフリップ部312若しくは転置部313、または両方に供給する。
フリップ部312は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部312は、変換行列LUT311から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向(水平方向)にフリップして、フリップ後の変換行列Tflipを、変換行列TVとして、変換行列導出部301の外部に出力する(行列演算部302に供給する)。
転置部313は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部313は、変換行列LUT311から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列TVとして、変換行列導出部301の外部に出力する(行列演算部302に供給する)。
<画像符号化処理の流れ>
次に、以上のような構成の画像符号化装置100により実行される各処理の流れについて説明する。最初に、図16のフローチャートを参照して、画像符号化処理の流れの例を説明する。
画像符号化処理が開始されると、ステップS201において、並べ替えバッファ211は、制御部201に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
ステップS202において、制御部201は、並べ替えバッファ211が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
ステップS203において、制御部201は、並べ替えバッファ211が保持する入力画像についての符号化パラメータを決定(設定)する。
ステップS204において、制御部201は、直交変換制御処理を行い、例えば変換タイプインデックスを設定する等の直交変換の制御に関する処理を行う。
ステップS205において、予測部222は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部222は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
ステップS206において、演算部212は、入力画像と、ステップS205の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部212は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS207において、直交変換部213は、ステップS204において行われた制御に従って、ステップS206の処理により生成された予測残差Dに対する直交変換処理を行い、変換係数Coeffを導出する。
ステップS208において、量子化部214は、制御部201により算出された量子化パラメータを用いる等して、ステップS207の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
ステップS209において、逆量子化部217は、ステップS208の処理により生成された量子化変換係数レベルlevelを、そのステップS208の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
ステップS210において、逆直交変換部218は、ステップS204において行われた制御に従って、ステップS209の処理により得られた変換係数Coeff_IQを、ステップS207の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS210の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
ステップS211において、演算部219は、ステップS210の処理により導出された予測残差D'に、ステップS205の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
ステップS212において、インループフィルタ部220は、ステップS211の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
ステップS213において、フレームメモリ221は、ステップS211の処理により導出された、局所的に復号された復号画像や、ステップS212においてフィルタ処理された、局所的に復号された復号画像を記憶する。
ステップS214において、符号化部215は、ステップS208の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部215は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部215は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部215は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
ステップS215において、蓄積バッファ216は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置200の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部223は、必要に応じてレート制御を行う。
ステップS214の処理が終了すると、画像符号化処理が終了する。
<直交変換制御処理の流れ>
次に、図17のフローチャートを参照して、図16のステップS204において実行される直交変換制御処理の流れの例を説明する。
直交変換制御処理が開始されると、制御部201の変換ペア数設定部241は、ステップS231において、符号化パラメータに基づいて、選択可能な変換ペア数(変換ペアの候補の数)NumTrPairを設定する。
ステップS232において、変換ペア数設定部241は、ステップS231において設定した選択可能な変換ペア数NumTrPairが「1」であるか否かを判定する。選択可能な変換ペア数NumTrPairが「1」でないと判定された場合、処理はステップS233に進む。
ステップS233において、変換ペア数設定部241は、ステップS231において設定した選択可能な変換ペア数NumTrPairが「2」であるか否かを判定する。選択可能な変換ペア数NumTrPairが「2」でないと判定された場合、処理はステップS234に進む。
ステップS234において、cMax設定部242は、選択可能な変換ペア数NumTrPair の最大値cMaxを設定する。
ステップS235において、変換ペア識別情報設定部243の変換ペアインデックス設定部251は、ステップS231において設定された選択可能な変換ペア数NumTrPairと、ステップS234において設定された最大値cMaxとに基づいて、最適な変換ペアインデックスTrPairIdxを設定する。
変換ペアインデックス設定部251は、その選択可能な変換ペア数NumTrPairおよび最大値cMaxに対応する変換ペアの候補を設定し、RDコスト等に基づいて、その候補の中から最適な変換ペアを設定し、その最適な変換ペアを識別する変換ペアインデックスTrPairIdxを設定する。
ステップS235の処理が終了すると、処理はステップS238に進む。
また、ステップS232において、選択可能な変換ペア数NumTrPairが「1」であると判定された場合、処理はステップS236に進む。
ステップS236において、変換ペアインデックス設定部251は、変換ペアインデックスTrPairIdxを「0」に設定する。ステップS236の処理が終了すると、処理はステップS238に進む。
また、ステップS233において、選択可能な変換ペア数NumTrPairが「2」であると判定された場合、処理はステップS237に進む。
ステップS237において、変換ペアインデックス設定部251は、変換ペアインデックスTrPairIdxを「1」に設定する。ステップS237の処理が終了すると、処理はステップS238に進む。
以上のように最適な変換ペアインデックスTrPairIdxが設定されると、ステップS238において、変換フラグ設定部252は、その最適な変換ペアインデックスTrPairIdxに対応する変換フラグemt_flagを設定する。例えば、変換ペアインデックスTrPairIdxが「0」の場合、変換フラグ設定部252は、変換フラグemt_flagを「0」に設定する。また、例えば、変換ペアインデックスTrPairIdxが「1」以上の場合、変換フラグ設定部252は、変換フラグemt_flagを「1」に設定する。
ステップS239において、変換インデックス設定部253は、その最適な変換ペアインデックスTrPairIdxに対応する変換インデックスemt_idxを設定する。例えば、変換ペアインデックスTrPairIdxが「1」以上の場合、変換フラグ設定部252は、変換フラグemt_flagを(変換ペアインデックスTrPairIdx-1)に設定する。
ステップS240において、変換タイプインデックス設定部245は、変換ペアLUT244が保持するLUTに基づいて、その最適な変換ペアインデックスTrPairIdxおよび予測のモード情報に対応する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。
ステップS240の処理が終了すると、直交変換制御処理が終了し、処理は図16に戻る。
以上のように、直交変換の制御において、符号化パラメータに基づいて変換ペアの候補の数を制御することにより、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。また、変換ペアの候補の数の不要な増大を抑制することにより、符号化処理の負荷の増大を抑制することができる。
<直交変換処理の流れ>
次に図16のステップS207において実行される直交変換処理の流れの例を、図18のフローチャートを参照して説明する。
直交変換処理が開始されると、直交変換部213は、ステップS251において、変換スキップフラグts_flagが2D_TS(2次元変換スキップを示す場合)(例えば1(真))、または、変換量子化バイパスフラグtransquant_bypass_flagが1(真)、であるか否かを判定する。変換スキップフラグts_flagが2D_TS(例えば1(真))、または、変換量子化バイパスフラグが1(真)であると判定された場合、直交変換処理が終了し、処理は図16に戻る。この場合、直交変換処理(プライマリ変換やセカンダリ変換)が省略され、入力された予測残差Dが変換係数Coeffとされる。
また、図18のステップS251において、変換スキップフラグts_flagが2D_TSでなく(2次元変換スキップでなく)(例えば0(偽))、かつ、変換量子化バイパスフラグtransquant_bypass_flagが0(偽)であると判定された場合、処理はステップS252に進む。この場合、プライマリ変換処理およびセカンダリ変換処理が行われる。
ステップS252において、プライマリ変換部261は、入力された予測残差Dに対してプライマリ変換処理を行い、プライマリ変換後の変換係数Coeff_Pを導出する。
ステップS253において、セカンダリ変換部262は、変換係数Coeff_Pに対してセカンダリ変換処理を行い、セカンダリ変換後の変換係数Coeffを導出する。
ステップS253の処理が終了すると直交変換処理が終了する。
<プライマリ変換処理の流れ>
次に、図18のステップS252において実行されるプライマリ変換処理の流れの例を、図19のフローチャートを参照して説明する。
プライマリ変換処理が開始されると、プライマリ変換部261のプライマリ水平変換部271は、ステップS261において、予測残差Dに対してプライマリ水平変換処理を行い、プライマリ水平変換後の変換係数を導出する。
ステップS262において、プライマリ変換部261のプライマリ垂直変換部272は、ステップS261において得られたプライマリ水平変換結果(プライマリ水平変換後の変換係数)に対してプライマリ垂直変換を行い、プライマリ垂直変換後の変換係数(プライマリ変換後の変換係数Coeff_P)を導出する。
ステップS262の処理が終了すると、プライマリ変換処理が終了し、処理は図18に戻る。
<プライマリ水平変換処理の流れ>
図19のステップS261において実行されるプライマリ水平変換処理の流れについて、図20のフローチャートを参照して説明する。
プライマリ水平変換処理が開始されると、プライマリ水平変換部271の変換行列導出部281は、ステップS271において、水平変換タイプインデックスTrTypeHに対応する変換行列THを導出する。
ステップS272において、行列演算部282は、その導出された変換行列THを用いて入力データXin(予測残差D)に対して水平方向の1次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式(7)のように表すことができる。また、この処理を要素毎の演算として表現すると、以下の式(13)のように表すことができる。
Figure 2023112105000012
つまり、中間データY1のi行j列成分の係数Y1[i,j]には、入力データXinのi行目の行ベクトルXin[i,:]と、変換行列THのj行目の行ベクトルTH[j,:]の転置行列TH T[:,j]との内積を設定する(j=0,・・・,M-1, i=0,・・・,N-1)。ここで、Mは、入力データXinのx方向のサイズであり、Nは、入力データXinのy方向のサイズである。MおよびNは、以下の式(14)のように表すことができる。
Figure 2023112105000013
図20に戻り、ステップS273において、スケーリング部283は、ステップS272の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SHでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式(8)のように表すことができる。
ステップS274において、クリップ部284は、ステップS273の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、プライマリ水平変換後の変換係数)を得る。この処理は、上述の式(9)のように表すことができる。
ステップS274の処理が終了すると、プライマリ水平変換処理が終了し、処理は図19に戻る。
<変換行列導出処理の流れ>
次に、図20のステップS271において実行される変換行列導出処理の流れの例を、図21のフローチャートを参照して説明する。
変換行列導出処理が開始されると、変換行列導出部281は、ステップS281において、水平変換タイプインデックスTrTypeHに対応するベース変換タイプBaseTrTypeを求める。なお、この処理を数式で表すと、例えば式(15)のように表現することができる。変換行列導出部281は、その求めたベース変換タイプのN行N列の変換行列を変換行列LUTより読み出し、以下の式(16)のように、それをベース変換行列Tbaseに設定する。
Figure 2023112105000014
また、変換行列導出部281は、以下の式(17)のように、フリップフラグFlipFlagに、水平変換タイプインデックスTrTypeHに対応する値を設定する。また、変換行列導出部281は、以下の式(18)のように、転置フラグTransposeFlagに、変換タイプ識別子TrTypeIdxHに対応する値を設定する。
Figure 2023112105000015
ステップS282において、変換行列導出部281は、フリップフラグFlipFlagと転置フラグTransposeFlagとが以下の式(19)で表される条件(ConditionA1)を満たすか否かを判定する。
Figure 2023112105000016
上述の条件(ConditionA1)を満たすと判定された場合(フリップフラグFlipFlagと転置フラグTransposeFlagとがともに偽(0)の場合)、処理はステップS283に進む。
ステップS283において、変換行列導出部281は、以下の式(20)に示されるように、変換行列Tbaseを変換行列THへ設定する。
Figure 2023112105000017
ステップS283の処理が終了すると、変換行列導出処理が終了し、処理は図20に戻る。また、ステップS282において、上述の条件(ConditionA1)を満たさないと判定された場合(フリップフラグFlipFlagまたは転置フラグTransposeFlagが真(1)の場合)、処理はステップS284に進む。
ステップS284において、変換行列導出部281は、フリップフラグFlipFlagと転置フラグTransposeFlagとが以下の式(21)で表される条件(ConditionA2)を満たすか否かを判定する。
Figure 2023112105000018
上述の条件(ConditionA2)を満たすと判定された場合(フリップフラグFlipFlagが偽(0)であり、かつ、転置フラグTransposeFlagが真(1)である場合)、処理はステップS285に進む。
ステップS285において、変換行列導出部281は、転置部293を介して、ベース変換行列Tbaseを転置して、変換行列THを得る。この処理は、以下の式(22)のように、行列式として表現することができる。
Figure 2023112105000019
また、この処理を要素毎の演算として表現する場合、変換行列導出部281は、以下の式(23)のように、ベース変換行列Tbaseのi行j列成分((i,j)成分)を変換行列THの(j,i)成分に設定する。
Figure 2023112105000020
ここで、N行N列の変換行列THのi行j列成分((i,j)成分)をTH[i,j]と表記する。また、2行目の「for i,j=0,...,N-1」は、iとjとが0乃至N-1の値を持つことを示す。つまり、TH[j,i]がN行N列の変換行列THの全ての要素を示すことを意味する。
このように、ステップS285の処理を、要素毎の演算として表現することにより、簡単な2次元配列へのアクセスで、転置操作を実現することできる。ステップS285の処理が終了すると、変換行列導出処理が終了し、処理は図20に戻る。
また、ステップS284において、上述の条件(ConditionA2)を満たさないと判定された場合(フリップフラグFlipFlagが真(1)である、または、転置フラグTransposeFlagが偽(0)である場合)、処理はステップS286に進む。
ステップS286において、変換行列導出部281は、フリップ部292を介して、ベース変換行列Tbaseをフリップして、変換行列THを得る。この処理は、以下の式(24)のように、行列式として表現することができる。
Figure 2023112105000021
ここで、×は行列積を表す演算子である。また、フリップ行列J(Cross-Identity Matrix)は、N行N列の単位行列Iを左右反転したものである。
また、この処理を要素毎の演算として表現する場合、変換行列導出部281は、以下の式(25)のように、変換行列THのi行j列成分((i,j)成分)に、ベース変換行列Tbaseの(i, N-1-j)成分を設定する。
Figure 2023112105000022
ここで、N行N列の変換行列THのi行j列成分((i,j)成分)をTH[i,j]と表記する。また2行目の「for i,j=0,...,N-1」は、iとjがそれぞれ0乃至N-1の値を持つことを示す。すなわち、TH[i,j]がN行N列の変換行列THの全ての要素を示すことを意味する。
このように、ステップS286の処理を、要素毎の演算として表現することにより、ベース変換行列Tbaseとフリップ行列Jとの行列演算をせずに、簡単な2次元配列へのアクセスで、転置操作を実現することできる。また、フリップ行列Jが不要になる。ステップS286の処理が終了すると、変換行列導出処理が終了し、処理は図20に戻る。
なお、ステップS284の処理とステップS286の処理との間に、以下に説明するような分岐をいれてもよい。つまり、そのステップにおいて、変換行列導出部281は、フリップフラグFlipFlagと転置フラグTransposeFlagとが以下の式(26)で表される条件(ConditionA3)を満たすか否かを判定する。
Figure 2023112105000023
変換行列導出部281は、上述の条件(ConditionA3)を満たすと判定された場合(フリップフラグFlipFlagが真(1)であり、かつ、転置フラグTransposeFlagが偽(0)である場合)、処理はステップS286に進む。
また、上述の条件(ConditionA3)を満たさないと判定された場合(フリップフラグFlipFlagが偽(0)であるか、または、転置フラグTransposeFlagが真(1)である場合)、変換行列導出処理が終了し、処理は図20に戻る。
<プライマリ垂直変換処理の流れ>
次に、図19のステップS262において実行されるプライマリ垂直変換処理の流れについて、図22のフローチャートを参照して説明する。
プライマリ垂直変換処理が開始されると、プライマリ垂直変換部272の変換行列導出部301は、ステップS291において、変換行列導出処理を実行し、垂直変換タイプインデックスTrTypeVに対応する変換行列TVを導出する。
この変換行列導出処理の流れは、図21のフローチャートを参照して説明したプライマリ水平変換の場合と同様であるのでその説明を省略する。例えば、水平変換タイプインデックスTrTypeHを垂直変換タイプインデックスTrTypeVに置き換えたり、導出されるプライマリ水平変換用の変換行列THを、垂直変換用の変換行列TVに置き換えたりする等、図21を参照して行った説明の、水平方向に関する説明を垂直方向に置き換えればよい。
ステップS292において、行列演算部302は、その導出された変換行列TVを用いて入力データXin(プライマリ水平変換後の変換係数)に対して垂直方向の1次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式(10)のように表すことができる。また、この処理を要素毎の演算として表現すると、以下の式(27)のように表すことができる。
Figure 2023112105000024
つまり、この場合、中間データY1のi行j列成分の係数Y1[i,j]には、変換行列TVのi行目の行ベクトルTV[i,:]と入力データXinのj列目の列ベクトルXin[:,j]との内積を設定する(j=0,・・・,M-1, i=0,・・・,N-1)。
ステップS293において、スケーリング部303は、ステップS292の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SVでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式(11)のように表すことができる。
ステップS294において、クリップ部304は、ステップS293の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、プライマリ垂直変換後の変換係数)を得る。この処理は、上述の式(12)のように表すことができる。
ステップS294の処理が終了すると、プライマリ垂直変換処理が終了し、処理は図19に戻る。
以上のように各処理を実行することにより、画像符号化装置200は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。また、変換ペアの候補の数の不要な増大を抑制することにより、符号化処理の負荷の増大を抑制することができる。
<2-5.画像復号装置>
図23は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図23に示される画像復号装置400は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置400は、非特許文献1、非特許文献3、または非特許文献4に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置400は、上述の画像符号化装置200により生成された符号化データ(ビットストリーム)を復号する。
なお、図23においては、処理部やデータの流れ等の主なものを示しており、図23に示されるものが全てとは限らない。つまり、画像復号装置400において、図23においてブロックとして示されていない処理部が存在したり、図23において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置400内の処理部等を説明する他の図においても同様である。
図23において、画像復号装置400は、蓄積バッファ411、復号部412、逆量子化部413、逆直交変換部414、演算部415、インループフィルタ部416、並べ替えバッファ417、フレームメモリ418、および予測部419を備えている。なお、予測部419は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置400は、符号化データ(ビットストリーム)を復号することによって、動画像データを生成するための装置である。
<蓄積バッファ>
蓄積バッファ411は、画像復号装置400に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ411は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部412に供給する。
<復号部>
復号部412は、画像の復号に関する処理を行う。例えば、復号部412は、蓄積バッファ411から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部412は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
<ヘッダ情報Hinfo>
ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence Parameter Set)/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(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
<予測モード情報Pinfo>
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式(28)のような割り当て方となる。
Figure 2023112105000025
なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
動き予測情報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を参照)。
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
<変換情報Tinfo>
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。
変換スキップフラグ(ts_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子(scanIdx)
量子化パラメータ(qp)
量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
<残差情報Rinfo>
残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
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:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)
など。
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
<フィルタ情報Finfo>
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
デブロッキングフィルタ(DBF)に関する制御情報
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
復号部412の説明に戻る。復号部412は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部412は、その量子化変換係数レベルlevelを、逆量子化部413に供給する。
また、復号部412は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
ヘッダ情報Hinfoは、逆量子化部413、逆直交変換部414、予測部419、インループフィルタ部416に供給される。
予測モード情報Pinfoは、逆量子化部413および予測部419に供給される。
変換情報Tinfoは、逆量子化部413および逆直交変換部414に供給される。
フィルタ情報Finfoは、インループフィルタ部416に供給される。
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
<逆直交変換の制御>
復号部412は、また、逆直交変換の制御に関する情報を復号したり、導出したりする。復号部412は、そのようにして得られた情報を逆直交変換部414に供給することにより、逆直交変換部414により行われる逆直交変換を制御する。
また、その逆直交変換の制御の際、復号部412は、符号化側において説明したのと同様に、逆直交変換のタイプを、上述した各種符号化パラメータに基づいて制御する。より具体的には、復号部412は、選択可能な変換ペア数(変換ペアの候補の数)NumTrPairを、上述した各種符号化パラメータに基づいて制御する。
例えば、復号部412は、符号化パラメータに応じて逆直交変換のタイプの候補の数(選択可能な変換ペア数NumTrPair)を設定し、その設定した逆直交変換のタイプの候補の数に基づいて、符号化データに含まれる逆直交変換のタイプに関する情報をパースし、そのパースした逆直交変換のタイプに関する情報に基づいて逆直交変換のタイプを設定する。
このような制御により、画像復号装置400は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<逆量子化部>
逆量子化部413は、少なくとも、逆量子化に関する処理を行うために必要な構成を有する。例えば、逆量子化部413は、復号部412から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。
なお、この逆量子化は、量子化部214による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部217による逆量子化と同様の処理である。つまり、逆量子化部217は、逆量子化部413と同様の処理(逆量子化)を行う。
逆量子化部413は、導出した変換係数Coeff_IQを逆直交変換部414に供給する。
<逆直交変換部>
逆直交変換部414は、逆直交変換に関する処理を行う。例えば、逆直交変換部414は、逆量子化部413から供給される変換係数Coeff_IQ、および、復号部412から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。
なお、この逆直交変換は、直交変換部213による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部218による逆直交変換と同様の処理である。つまり、逆直交変換部218は、逆直交変換部414と同様の処理(逆直交変換)を行う。
逆直交変換部414は、導出した予測残差D'を演算部415に供給する。
<演算部>
演算部415は、画像に関する情報の加算に関する処理を行う。例えば、演算部415は、逆直交変換部414から供給される予測残差D'と、予測部419から供給される予測画像Pとを入力とする。演算部415は、以下の式(29)に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。
Figure 2023112105000026
演算部415は、導出した局所復号画像Rlocalを、インループフィルタ部416およびフレームメモリ418に供給する。
<インループフィルタ部>
インループフィルタ部416は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部416は、演算部415から供給される局所復号画像Rlocalと、復号部412から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部416に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
インループフィルタ部416は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
例えば、インループフィルタ部416は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
インループフィルタ部416は、符号化側(例えば画像符号化装置200のインループフィルタ部220)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部416が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部416がウィーナーフィルタ等を適用するようにしてもよい。
インループフィルタ部416は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ417およびフレームメモリ418に供給する。
<並べ替えバッファ>
並べ替えバッファ417は、インループフィルタ部416から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ417は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ417は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ417は、並べ替えた復号画像R群を動画像データとして画像復号装置400の外部に出力する。
<フレームメモリ>
フレームメモリ418は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ418は、演算部415より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。
また、フレームメモリ418は、インループフィルタ部416から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。フレームメモリ418は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部419に供給する。
なお、フレームメモリ418が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
<予測部>
予測部419は、予測画像の生成に関する処理を行う。例えば、予測部419は、復号部412から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部419は、その予測モード情報Pinfoによって指定される、フレームメモリ418に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部419は、導出した予測画像Pを、演算部415に供給する。
以上のような構成の画像復号装置400において、復号部412は、復号部および制御部として、上述した本技術を適用した処理を行う。また、逆直交変換部414は、逆直交変換部として、上述した本技術を適用した処理を行う。したがって、画像復号装置400は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<復号部の詳細>
図24は、図23の復号部412が有する、逆直交変換の制御に関する主な構成例を示すブロック図である。図24に示されるように、復号部412は、逆直交変換の制御を行う構成として、変換ペア数設定部431、cMax設定部432、変換ペア識別情報復号部433、変換ペアLUT434、および変換タイプインデックス設定部435を有する。
変換ペア数設定部431は、少なくとも、選択可能な変換ペア数NumTrPairの設定に関する処理を行うのに必要な構成を有する。変換ペア数設定部431は、符号化パラメータを入力とする。この符号化パラメータは、符号化データから抽出したものであってもよいし、画像復号装置400の外部から供給されるものであってもよい。また、この符号化パラメータは、符号化(復号)に関する情報であり、直交変換の制御に利用することができるものであれば、特に限定はされないが、例えば、図8を参照して説明したような各種パラメータを含む。
変換ペア数設定部431は、この符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairを設定する。変換ペア数設定部431は、設定した選択可能な変換ペア数NumTrPairを、cMax設定部432および変換ペア識別情報復号部433に供給する。
cMax設定部432は、少なくとも、選択可能な変換ペア数(すなわち、変換ペアの候補の数)の最大値cMaxの設定に関する処理を行うのに必要な構成を有する。cMax設定部432は、変換ペア数設定部431から供給される、選択可能な変換ペア数NumTrPairを入力とする。cMax設定部432は、その選択可能な変換ペア数NumTrPairに基づいて、最大値cMaxを設定する。cMax設定部432は、設定した最大値cMaxを、変換ペア識別情報復号部433に供給する。
変換ペア識別情報復号部433は、少なくとも、変換ペア識別情報の復号に関する処理を行うのに必要な構成を有する。変換ペア識別情報復号部433は、符号化データと、変換ペア数設定部431から供給される選択可能な変換ペア数NumTrPairと、cMax設定部432から供給される最大値cMaxとを入力とする。変換ペア識別情報復号部433は、それらの情報に基づいて、変換ペア識別情報を復号する(符号化データから抽出する)。変換ペア識別情報復号部433は、復号した変換ペア識別情報として変換ペアインデックスTrPairIdxを、変換タイプインデックス設定部435供給する。
図24に示されるように、変換ペア識別情報復号部433は、変換フラグ復号部451、変換インデックス復号部452、および変換ペアインデックス設定部453を有する。
変換フラグ復号部451は、変換フラグemt_flagの復号に関する処理を行うのに必要な構成を有する。変換フラグ復号部451は、符号化データを入力とし、その符号化データから変換フラグemt_flagをパースして抽出する(取得する)。変換フラグ復号部451は、以上のように取得した変換フラグemt_flagを、変換ペアインデックス設定部453に供給する。
変換インデックス復号部452は、少なくとも、変換インデックスemt_idxの復号に関する処理を行うのに必要な構成を有する。変換インデックス復号部452は、符号化データ、変換ペア数設定部431から供給される選択可能な変換ペア数NumTrPair、およびcMax設定部432から供給される最大値cMaxを入力とする。
変換インデックス復号部452は、その選択可能な変換ペア数NumTrPairおよび最大値cMaxに基づいて、符号化データに含まれる変換インデックスemt_idxをパースし、抽出する(取得する)。つまり、変換インデックス復号部452は、選択可能な変換ペア数NumTrPairおよび最大値cMaxに基づいて、符号化データに含まれる変換インデックスemt_idxを特定し、抽出する。変換インデックス復号部452は、このように取得した変換インデックスemt_idxを、変換ペアインデックス設定部453に供給する。
変換ペアインデックス設定部453は、少なくとも、変換ペアインデックスの設定に必要な構成を有する。また、変換ペアインデックス設定部453は、変換フラグ復号部451から供給される変換フラグemt_flagと、変換インデックス復号部452から供給される変換インデックスemt_idxとを入力とする。変換ペアインデックス設定部453は、その変換フラグemt_flagおよび変換インデックスemt_idxに基づいて、それらに対応する変換ペアインデックスTrPairIdxを導出する。変換ペアインデックス設定部453は、その導出した変換ペアインデックスTrPairIdxを変換タイプインデックス設定部435に供給する。
変換ペアLUT434は、例えば半導体メモリ等の任意の記憶媒体を有し、変換ペアを選択するためのルックアップテーブル(LUT(Look Up Table))を記憶している。このLUTは、例えば、図2に示される表12のような情報を有する。このLUTは、予め定められたものであってもよいし、RDコスト等に基づいて再設計することが可能であってもよい。変換ペアLUT434は、必要に応じて、このLUTを変換タイプインデックス設定部435に供給する。
変換タイプインデックス設定部435は、少なくとも、変換タイプインデックスTrTypeの設定に関する処理を行うのに必要な構成を有する。変換タイプインデックス設定部435は、変換ペアインデックス設定部453から供給される変換ペアインデックスTrPairIdx、変換ペアLUT434から供給されるLUT、および、モード情報を入力とする。このモード情報には、例えば、イントラ予測のモード情報(IntraMode)、インター予測であることを示すモード情報(Inter)、およびコンポーネントID(compID)等の符号化パラメータが含まれる。このモード情報は、復号部412(復号部412の図24に示される以外の構成)により設定されたものであってもよいし、画像復号装置400の外部から供給されるものであってもよい。
変換タイプインデックス設定部435は、これらの情報に基づいて、変換タイプインデックスTrTypeとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。つまり、変換タイプインデックス設定部435は、変換ペアLUT434から供給されるLUTに従って、変換ペアインデックスTrPairIdxとモード情報とに対応する変換ペアを選択し、その変換ペアを識別する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。
変換タイプインデックス設定部435は、設定した水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、変換情報Tinfoとして、逆直交変換部414に供給する。
つまり、復号部412は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを逆直交変換部414に供給することにより、その逆直交変換を制御する。そして、上述のように、復号部412は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する際に、符号化パラメータに基づいて変換ペアの候補の数(NumTrPair)を制御する。したがって、画像復号装置400は、図8等を参照して上述したように、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<逆直交変換部の詳細>
図25は、図23の逆直交変換部414の主な構成例を示すブロック図である。図25に示されるように、逆直交変換部414は、逆セカンダリ変換部461および逆プライマリ変換部462を有する。
逆セカンダリ変換部461は、少なくとも、符号化側(例えば、画像符号化装置200のセカンダリ変換部262)において行われるセカンダリ変換の逆処理である逆セカンダリ変換に関する処理を行うのに必要な構成を有する。例えば、逆セカンダリ変換部461は、逆量子化部413から供給される変換係数Coeff_IQおよび変換情報Tinfoを入力とする。
逆セカンダリ変換部461は、変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆セカンダリ変換を行い、逆セカンダリ変換後の変換係数Coeff_ISを導出する。逆セカンダリ変換部461は、その逆セカンダリ変換後の変換係数Coeff_ISを逆プライマリ変換部462に供給する。
逆プライマリ変換部462は、符号化側(例えば、画像符号化装置200のプライマリ変換部261)において行われるプライマリ変換の逆処理である逆プライマリ変換に関する処理を行う。例えば、逆プライマリ変換部462は、逆セカンダリ変換後の変換係数Coeff_ISと、変換タイプインデックス(垂直変換タイプインデックスTrTypeVおよび水平変換タイプインデックスTrTypeH)とを入力とする。
逆プライマリ変換部462は、水平変換タイプインデックスTrTypeHに対応する変換行列と、垂直変換タイプインデックスTrTypeVに対応する変換行列とを用いて、逆セカンダリ変換後の変換係数Coeff_ISに対する逆プライマリ変換を行い、逆プライマリ変換後の変換係数(つまり、予測残差D')を導出する。逆プライマリ変換部462は、導出した予測残差D'を演算部415に供給する。
図25に示されるように、逆プライマリ変換部462は、逆プライマリ垂直変換部471および逆プライマリ水平変換部472を有する。
逆プライマリ垂直変換部471は、垂直方向の逆1次元直交変換である逆プライマリ垂直変換に関する処理を行うように構成される。例えば、逆プライマリ垂直変換部471は、変換係数Coeff_ISおよび変換情報Tinfo(垂直変換タイプインデックスTrTypeV等)を入力とする。逆プライマリ垂直変換部471は、垂直変換タイプインデックスTrTypeVに対応する変換行列を用いて、変換係数Coeff_ISに対する逆プライマリ垂直変換を行う。逆プライマリ垂直変換部471は、逆プライマリ垂直変換後の変換係数を逆プライマリ水平変換部472に供給する。
逆プライマリ水平変換部472は、水平方向の1次元直交変換であるプライマリ水平変換に関する処理を行うように構成される。例えば、逆プライマリ水平変換部472は、逆プライマリ垂直変換後の変換係数および変換情報Tinfo(水平変換タイプインデックスTrTypeH等)を入力とする。逆プライマリ水平変換部472は、水平変換タイプインデックスTrTypeHに対応する変換行列を用いて、逆プライマリ垂直変換後の変換係数に対する逆プライマリ水平変換を行う。逆プライマリ水平変換部472は、逆プライマリ水平変換後の変換係数(つまり、予測残差D')を演算部415に供給する。
なお、逆直交変換部414においては、逆セカンダリ変換部461による逆セカンダリ変換、若しくは、逆プライマリ変換部462による逆プライマリ変換、またはその両方を、スキップする(省略する)ことができる。また、逆プライマリ垂直変換部471による逆プライマリ垂直変換をスキップする(省略する)ことができるようにしてもよい。同様に、逆プライマリ水平変換部472による逆プライマリ水平変換をスキップする(省略する)ことができるようにしてもよい。
<逆プライマリ垂直変換部>
図26は、図25の逆プライマリ垂直変換部471の主な構成例を示すブロック図である。図26に示されるように、逆プライマリ垂直変換部471は、変換行列導出部481、行列演算部482、スケーリング部483、およびクリップ部484を有する。
変換行列導出部481は、垂直変換タイプインデックスTrTypeVと、変換ブロックのサイズに関する情報を入力とし、その垂直変換タイプインデックスTrTypeVに対応する、変換ブロックと同サイズの、逆プライマリ垂直変換用の変換行列TV(垂直方向の逆1次元直交変換用の変換行列TV)を導出する。変換行列導出部481は、その変換行列TVを行列演算部482に供給する。
行列演算部482は、その変換行列導出部481から供給される変換行列TVを用いて、入力データXin(すなわち逆セカンダリ変換後の変換係数Coeff_ISの変換ブロック)に対する垂直方向の逆1次元直交変換を行い、中間データY1を得る。この演算は以下の式(30)のように行列式で表すことができる。
Figure 2023112105000027
行列演算部482は、その中間データY1をスケーリング部483に供給する。
スケーリング部483は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SIVでスケーリングし、中間データY2を得る。このスケーリングは、以下の式(31)のように表すことができる。
Figure 2023112105000028
スケーリング部483は、その中間データY2をクリップ部484に供給する。
クリップ部484は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、逆プライマリ垂直変換後の変換係数)を導出する。この処理は、上述の式(12)のように表すことができる。
クリップ部484は、その出力データXout(逆プライマリ垂直変換後の変換係数)を逆プライマリ垂直変換部471の外部に出力する(逆プライマリ水平変換部472に供給する)。
<変換行列導出部>
図27は、図26の変換行列導出部481の主な構成例を示すブロック図である。図27に示されるように、変換行列導出部481は、変換行列LUT491、フリップ部492、および転置部493を有する。なお、図27においては、データの授受を示す矢印を省略しているが、変換行列導出部481は、任意の処理部(処理ブロック)間で任意のデータを授受することができる。
変換行列LUT491は、垂直変換タイプインデックスTrTypeVおよび変換ブロックのサイズNに対応する変換行列を保持(格納)するためのルックアップテーブルである。変換行列LUT491は、垂直変換タイプインデックスTrTypeVおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT491は、その変換行列をベース変換行列Tbaseとしてフリップ部492若しくは転置部493、または両方に供給する。
フリップ部492は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部492は、変換行列LUT491から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向(水平方向)にフリップして、フリップ後の変換行列Tflipを、変換行列TVとして、変換行列導出部481の外部に出力する(行列演算部482に供給する)。
転置部493は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部493は、変換行列LUT491から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列TVとして、変換行列導出部481の外部に出力する(行列演算部482に供給する)。
<逆プライマリ水平変換部>
図28は、図25の逆プライマリ水平変換部472の主な構成例を示すブロック図である。図28に示されるように、逆プライマリ水平変換部472は、変換行列導出部501、行列演算部502、スケーリング部503、およびクリップ部504を有する。
変換行列導出部501は、水平変換タイプインデックスTrTypeHと、変換ブロックのサイズに関する情報を入力とし、その水平変換タイプインデックスTrTypeHに対応する、変換ブロックと同サイズの、水平変換用の変換行列TH(水平方向の逆1次元直交変換用の変換行列TH)を導出する。変換行列導出部501は、その変換行列THを行列演算部502に供給する。
行列演算部502は、その変換行列導出部501から供給される変換行列THを用いて、入力データXin(すなわち逆プライマリ垂直変換後の変換係数の変換ブロック)に対する水平方向の逆1次元直交変換を行い、中間データY1を得る。この演算は以下の式(32)のように行列式で表すことができる。
Figure 2023112105000029
行列演算部502は、その中間データY1をスケーリング部503に供給する。
スケーリング部503は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SIHでスケーリングし、中間データY2を得る。このスケーリングは、以下の式(33)のように表すことができる。
Figure 2023112105000030
スケーリング部503は、その中間データY2をクリップ部504に供給する。
クリップ部504は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、逆プライマリ水平変換後の変換係数)を導出する。この処理は、上述の式(9)のように表すことができる。
クリップ部504は、その出力データXout(逆プライマリ水平変換後の変換係数(逆プライマリ変換後の変換係数Coeff_IP))を、予測残差D'として、逆プライマリ水平変換部472の外部に出力する(演算部415に供給する)。
<変換行列導出部>
図29は、図28の変換行列導出部501の主な構成例を示すブロック図である。図29に示されるように、変換行列導出部501は、変換行列LUT511、フリップ部512、および転置部513を有する。なお、図29においては、データの授受を示す矢印を省略しているが、変換行列導出部501は、任意の処理部(処理ブロック)間で任意のデータを授受することができる。
変換行列LUT511は、水平変換タイプインデックスTrTypeIdxHおよび変換ブロックのサイズNに対応する変換行列を保持(格納)するためのルックアップテーブルである。変換行列LUT511は、水平変換タイプインデックスTrTypeIdxHおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT511は、その変換行列をベース変換行列Tbaseとしてフリップ部512若しくは転置部513、または両方に供給する。
フリップ部512は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部512は、変換行列LUT511から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向(水平方向)にフリップして、フリップ後の変換行列Tflipを、変換行列THとして、変換行列導出部501の外部に出力する(行列演算部502に供給する)。
転置部513は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部513は、変換行列LUT511から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列THとして、変換行列導出部501の外部に出力する(行列演算部502に供給する)。
<画像復号処理の流れ>
次に、以上のような構成の画像復号装置400により実行される各処理の流れについて説明する。最初に、図30のフローチャートを参照して、画像符号化処理の流れの例を説明する。
画像復号処理が開始されると、蓄積バッファ411は、ステップS401において、画像復号装置400の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
ステップS402において、復号部412は、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルlevelを得る。また、復号部412は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
ステップS403において、復号部412は、符号化パラメータに応じて逆直交変換のタイプを制御する逆直交変換制御処理を行う。
ステップS404において、逆量子化部413は、ステップS402の処理により得られた量子化変換係数レベルlevelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
ステップS405において、逆直交変換部414は、ステップS403の制御に従って、ステップS404において得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。
ステップS406において、予測部419は、ステップS402においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ418に記憶されている参照画像を参照する等して、予測画像Pを生成する。
ステップS407において、演算部415は、ステップS405において得られた予測残差D'と、ステップS406において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
ステップS408において、インループフィルタ部416は、ステップS407の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
ステップS409において、並べ替えバッファ417は、ステップS408の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置400の外部に出力される。
また、ステップS410において、フレームメモリ418は、ステップS407の処理により得られた局所復号画像Rlocal、および、ステップS408の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
ステップS410の処理が終了すると、画像復号処理が終了する。
以上のような流れの画像復号処理において、ステップS403の処理として、上述した本技術を適用した処理が行われる。また、ステップS405の処理として、ステップS403の制御に基づいて逆直交変換処理が行われる。したがって、この画像復号処理を実行することにより、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<逆直交変換制御処理の流れ>
次に、図31のフローチャートを参照して、図30のステップS403において実行される逆直交変換制御処理の流れの例を説明する。
逆直交変換制御処理が開始されると、変換フラグ復号部451は、ステップS421において、符号化データに含まれる変換フラグemt_flagを復号し、取得する。つまり、この処理により、符号化データから変換フラグemt_flagが抽出される。
ステップS422において、復号部412は、符号化データを復号し、各種符号化パラメータを取得する。この符号化パラメータには、符号化データに含まれるシンタックス要素の値の他、そのシンタックス要素の値から導出される変数も含まれる。符号化パラメータの具体的な内容は任意であり、特に限定されないが、例えば、図8を参照して説明したような各種パラメータが含まれる。
ステップS423において、変換ペア数設定部431は、ステップS422において取得した符号化パラメータに基づいて、選択可能な変換ペア数(変換ペアの候補の数)NumTrPairを設定する。
ステップS424において、変換ペア数設定部431は、ステップS423において設定した選択可能な変換ペア数NumTrPairの値が「1」であるか否かを判定する。選択可能な変換ペア数NumTrPairの値が「1」でないと判定された場合、処理はステップS425に進む。
ステップS425において、変換ペア数設定部431は、ステップS423において設定した選択可能な変換ペア数NumTrPairの値が「2」であるか否かを判定する。選択可能な変換ペア数NumTrPairの値が「2」でないと判定された場合、処理はステップS426に進む。
ステップS426において、cMax設定部432は、選択可能な変換ペア数NumTrPairの最大値cMaxを設定する。
ステップS427において、変換インデックス復号部452は、符号化データを算術復号してビン列binStringを取得する。
ステップS428において、変換インデックス復号部452は、ステップS426において設定された最大値cMaxと、指定される2値化方法の逆処理(多値化方法)とに基づいて、ビン列binStringから変換インデックスemt_idxを導出する。つまり、ステップS427およびステップS428の処理により、符号化データから変換インデックスemt_idxが抽出される。
ステップS429において、変換ペアインデックス設定部453は、ステップS421およびステップS428において符号化データから抽出された変換フラグemt_flagおよび変換インデックスemt_idxに基づいて、変換ペアインデックスTrPairIdxを導出(設定)する。例えば、以下の式(34)のように導出される。
Figure 2023112105000031
例えば、変換フラグemt_flag = 0であれば、変換ペアインデックスTrPairIdxの値は「0」に設定される。また、変換フラグemt_flag = 0でなければ、変換ペアインデックスTrPairIdxの値は「変換インデックスemt_idx+1」に設定される。もちろんこの変換ペアインデックスTrPairIdxの算出方法は任意であり、この例に限定されない。
ステップS429の処理が終了すると、処理はステップS432に進む。また、ステップS424において、選択可能な変換ペア数NumTrPairの値が「1」であると判定された場合、処理はステップS430に進む。ステップS430において、変換ペアインデックス設定部453は、変換ペアインデックスTrPairIdxの値を「0」に設定する。ステップS430の処理が終了すると、処理はステップS432に進む。また、ステップS425において、選択可能な変換ペア数NumTrPairの値が「2」であると判定された場合、処理はステップS431に進む。ステップS431において、変換ペアインデックス設定部453は、変換ペアインデックスTrPairIdxの値を「1」に設定する。ステップS431の処理が終了すると、処理はステップS432に進む。
ステップS432において、変換タイプインデックス設定部435は、変換ペアLUT434が保持するLUTに基づいて、以上のように設定された変換ペアインデックスTrPairIdxおよび予測のモード情報(mode)に対応する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。例えば、この導出は、以下の式(35)のように表すことができる。
Figure 2023112105000032
ステップS432の処理が終了すると、逆直交変換制御処理が終了し、処理は図30に戻る。
以上のように、逆直交変換の制御において、符号化パラメータに基づいて変換ペアの候補の数を制御することにより、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<逆直交変換の処理の流れ>
次に、図30のステップS405において実行される逆直交変換処理の流れの例を、図32のフローチャートを参照して説明する。逆直交変換処理が開始されると、逆直交変換部414は、ステップS441において、変換スキップフラグts_flagが2D_TS(2次元変換スキップのモード)(例えば1(真))である、または、変換量子化バイパスフラグtransquant_bypass_flagが1(真)である、か否かを判定する。変換スキップ識別子ts_idxが2D_TSである、または、変換量子化バイパスフラグが1(真)であると判定された場合、逆直交変換処理が終了し、処理は図30に戻る。この場合、逆直交変換処理(逆プライマリ変換や逆セカンダリ変換)が省略され、変換係数Coeff_IQが予測残差D'とされる。
また、ステップS441において、変換スキップ識別子ts_idxが2D_TSでない(2次元変換スキップ以外のモード)(例えば0(偽))であり、かつ、変換量子化バイパスフラグが0(偽)である、と判定された場合、処理はステップS442に進む。この場合、逆セカンダリ変換処理および逆プライマリ変換処理が行われる。
ステップS442において、逆セカンダリ変換部461は、変換係数Coeff_IQに対して、セカンダリ変換識別子st_idxに基づいて逆セカンダリ変換処理を行い、変換係数Coeff_ISを導出し、出力する。
ステップS443において、逆プライマリ変換部462は、変換係数Coeff_ISに対して逆プライマリ変換処理を行い、逆プライマリ変換後の変換係数(予測残差D')を導出する。
ステップS443の処理が終了すると逆直交変換処理が終了し、処理は図30に戻る。
<逆プライマリ変換処理の流れ>
次に、図32のステップS443において実行される逆プライマリ変換処理の流れの例を、図33のフローチャートを参照して説明する。
逆プライマリ変換処理が開始されると、逆プライマリ変換部462の逆プライマリ垂直変換部471は、ステップS451において、逆セカンダリ変換後の変換係数Coeff_ISに対して逆プライマリ垂直変換処理を行い、逆プライマリ垂直変換後の変換係数を導出する。
ステップS452において、逆プライマリ水平変換部472は、その逆プライマリ垂直変換後の変換係数に対して逆プライマリ水平変換処理を行い、逆プライマリ水平変換後の変換係数(すなわち、予測残差D')を導出する。
ステップS452の処理が終了すると、逆プライマリ変換処理が終了し、処理は図32に戻る。
<逆プライマリ垂直変換処理の流れ>
次に、図33のステップS451において実行される逆プライマリ垂直変換処理の流れの例を、図34のフローチャートを参照して説明する。
逆プライマリ垂直変換処理が開始されると、逆プライマリ垂直変換部471の変換行列導出部481は、ステップS461において、変換行列導出処理を実行し、垂直変換タイプインデックスTrTypeVに対応する変換行列TVを導出する。
この場合の変換行列導出処理は、図21のフローチャートを参照して説明したプライマリ水平変換の場合と同様の流れで行われる。したがって、その説明を省略する。例えば、水平変換タイプインデックスTrTypeHを垂直変換タイプインデックスTrTypeVに置き換えたり、導出されるプライマリ水平変換用の変換行列THを、逆プライマリ垂直変換用の変換行列TVに置き換えたりすることにより、図21を参照して行った説明を、この場合の変換行列導出処理の説明として適用することができる。
ステップS462において、行列演算部482は、その導出された変換行列TVを用いて入力データXin(つまり、逆セカンダリ変換後の変換係数Coeff_IS)に対して垂直方向の逆1次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式(30)のように表すことができる。
ステップS463において、スケーリング部483は、ステップS462の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SIVでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式(31)のように表すことができる。
ステップS464において、クリップ部484は、ステップS463の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、逆プライマリ垂直変換後の変換係数)を得る。この処理は、上述の式(12)のように表すことができる。
ステップS464の処理が終了すると、逆プライマリ垂直変換処理が終了し、処理は図33に戻る。
<逆プライマリ水平変換処理の流れ>
次に、図33のステップS452において実行される逆プライマリ水平変換処理の流れについて、図35のフローチャートを参照して説明する。
逆プライマリ水平変換処理が開始されると、逆プライマリ水平変換部472の変換行列導出部501は、ステップS471において、変換行列導出処理を実行し、水平変換タイプインデックスTrTypeHに対応する変換行列THを導出する。
この場合の変換行列導出処理は、図21のフローチャートを参照して説明したプライマリ水平変換の場合と同様の流れで行われる。したがって、その説明を省略する。例えば、プライマリ水平変換を逆プライマリ水平変換に置き換える等すれば、図21を参照して行った説明を、この場合の変換行列導出処理の説明として適用することができる。
ステップS472において、行列演算部502は、その導出された変換行列THを用いて入力データXin(つまり、逆プライマリ垂直変換後の変換係数)に対して水平方向の逆1次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式(32)のように表すことができる。
ステップS473において、スケーリング部503は、ステップS472の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SIHでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式(33)のように表すことができる。
ステップS474において、クリップ部504は、ステップS473の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout(つまり、予測残差D')を得る。この処理は、上述の式(9)のように表すことができる。
ステップS474の処理が終了すると、逆プライマリ水平変換処理が終了し、処理は図33に戻る。
以上のように各処理を実行することにより、画像復号装置400は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<2-6.その他>
以上のように、直交変換および逆直交変換における選択可能な変換ペア数を制御する。この制御を表12(図2)で表すと、例えば、図36のようになる。図36において、枠線531乃至枠線534は、選択可能な変換ペア(候補とされる変換ペア)の範囲を示している。つまり、上述の制御により、図36の枠線531乃至枠線534のように、選択可能な変換ペアの範囲(表12の行数)が可変となる。
換言するに、このような制御により、変換ペアインデックスTrPairIdx(変換フラグemt_flagおよび変換インデックスemt_idx)の取り得る値の範囲が可変となる。
変換フラグemt_flagおよび変換インデックスemt_idxは、例えば、図37のAに示される表541のように、固定長で2値化される(FL(Fixed Length binarization))。したがって、変換フラグemt_flagの2値化後のビット長は固定(1ビット)であるが、変換インデックスemt_idxの2値化後のビット長は、最大値cMaxに依存する。つまり、選択可能な変換ペア数NumTrPairに依存する(cMax=NumTrPair-2)。
したがって、図36の表12の場合、枠線534で囲まれる範囲を候補とする場合よりも、枠線531で囲まれる範囲を候補とする場合の方が、変換ペアインデックスに関する情報の符号量(つまりAMTのモード情報の符号量)を低減させることができる。
ただし、一般的には、候補の数が多い方が残差信号の符号量を低減させることができる。つまり、枠線534で囲まれる範囲を候補とする場合の方が、枠線531で囲まれる範囲を候補とする場合よりも、残差信号の符号量を低減させることができる。
つまり、上述したように、残差信号の符号量の方がAMTのモード情報の符号量よりも多いブロックにおいては、残差信号の符号量を低減させる方がより効率がよい。逆に、AMTのモード情報の符号量の方が残差信号の符号量よりも多いブロックにおいては、AMTのモード情報の符号量を低減させる方がより効率がよい。
そこで、そのような制御を行うように、画像符号化装置200および画像復号装置400は、符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairの数を制御する。したがって、残差信号の符号量の方がAMTのモード情報の符号量よりも多いブロックにおいては、残差信号の符号量を低減させ、AMTのモード情報の符号量の方が残差信号の符号量よりも多いブロックにおいては、AMTのモード情報の符号量を低減させることができる。したがって、どちらの場合も、より効率よく符号量を低減させ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、変換インデックスemt_idxの2値化には、例えば、図37のBに示される表542のように、可変長のトランケーテッドライスバイナリゼーション(TR(Truncated Rice binarization))を適用するようにしてもよい。この場合も、2値化後のビンのビット長は、シンボル値や最大値cMaxに依存する。例えば、シンタックスを2値化する際にプリフィックス(prefix)部分の値(prefixVal)や、プリフィックス部分のTR binの決定に関わるパラメータであるライスパラメータcRiceParamを「0」とすると、TRは、シンボルの値とビット長とが一致するトランケーテッドユーナリーバイナリゼーション(Truncated Unary binarization)に一致する。したがって、そのビンのビット長はシンボルの値に依存する。
つまり、この場合も、固定長2値化の場合と同様に、画像符号化装置200および画像復号装置400が、符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairの数を制御することにより、より効率よく符号量を低減させ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、以上においては、変換ペア識別情報(変換ペアインデックスTrPairIdxに関する情報)を、変換フラグemt_flagと変換インデックスemt_idxとに分けて符号化・復号するように説明した。この場合、変換フラグemt_flagは、index(変換ペアインデックスTrPairIdx)==0の変換ペアにするか否かを示す1ビットのプリフィックス(prefix)部分を構成し、変換インデックスemt_idxは、index(変換ペアインデックスTrPairIdx)==0以外の変換ペアを指定するサフィックス(suffix)部分を構成する。
変換ペア識別情報は、どのように符号化・復号するようにしてもよく、上述のようにプリフィックス部分とサフィックス部分とに分けずに、index(変換ペアインデックスTrPairIdx)を1つのシンタックス要素として符号化・復号するようにしてもよい。この場合、最大値cMaxは、変換ペアの候補テーブル(表12)において、現在の符号化パラメータで決定される「index==0から数えた変換ペア数-1」である。
また、2値化する前の多値データにおいても、変換ペアインデックスTrPairIdx(特に変換インデックスemt_idx)を可変長としてもよい。
例えば、図36の表12の例において(変換フラグemt_flag==1とする)、枠線531で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「0」に固定なので0ビットでよい。また、枠線532で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「0」または「1」であるので、1ビット必要である。また、枠線533で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「0」乃至「3」のいずれかであるので、2ビット必要である。また、枠線534で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「0」乃至「7」のいずれかであるので、3ビット必要である。
このように、変換ペアの候補の数が増大する程、変換インデックスemt_idxに必要なビット数は増大する。つまり、変換ペアの候補の数の最大値を考慮して変換インデックスemt_idxに必要なビット数を設定する必要がある。ただし、言い換えれば、変換ペアの候補の数が低減する程、変換インデックスemt_idxに必要なビット数は低減する。つまり、変換ペアの候補の最大数に合わせて、変換インデックスemt_idxに必要なビット数を設定すると、変換ペアの候補の数が少ない場合に、変換インデックスemt_idxのビット長が不要に長くなる(情報量が不要に増大する)ことになる。
したがって、変換インデックスemt_idxの多値データを可変長とし、符号化パラメータに応じたビット長とすることにより、このような不要な情報量の増大を抑制し、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
その場合、例えば、変換インデックス設定部253(図10)が変換インデックスemt_idxのビット長を符号化パラメータに応じて設定し、変換インデックス復号部452(図24)が、符号化パラメータに応じたビット長で、符号化データの変換インデックスemt_idxをパースして抽出するようにすればよい。
<3.第1の実施の形態>
<方法#1>
次に、このような制御に用いる符号化パラメータの各例について説明する。ここでは、図8の表151の方法#1について説明する。方法#1の場合、符号化パラメータは、例えば、コンポーネントの種類に関するシンタックス要素(例えば、コンポーネントID(componentID))の値を含み、直交変換(逆直交変換)の処理対象が輝度信号であるか色差信号であるかに応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。
例えば、図38の表601のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合(numSIG <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、輝度信号(componentID==0)の場合、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、色差信号(componentID > 0)の場合、選択可能な変換ペア数NumTrPairは、「N2」(N1 >= N2)に設定される。
例えば、TH1=2, N1=9, N2=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、輝度信号の場合「0」乃至「7」となり、色差信号の場合「0」および「1」となる。つまり、色差信号の場合、直交変換(逆直交変換)のタイプの候補の数を、輝度信号の場合よりも少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図39のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS601において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS602に進む。
ステップS602において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS602の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS601において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS603に進む。
ステップS603において、変換ペア数設定部241は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
ステップS604において、変換ペア数設定部241は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である(numSIG <= TH1)と判定された場合、処理はステップS605に進む。
ステップS605において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS605の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS604において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい(numSIG > TH1)と判定された場合、処理はステップS606に進む。
ステップS606において、変換ペア数設定部241は、componentIDを参照し、処理対象が輝度信号であるか否かを判定する。処理対象が輝度信号(Luma)である(componentID==0)と判定された場合、処理は、ステップS607に進む。
ステップS607において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する(NumTrPair=N1)。ステップS607の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS606において、処理対象が色差信号(Chroma)である(componentID > 0)と判定された場合、処理は、ステップS608に進む。
ステップS608において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N2」(N1 > N2)に設定する(NumTrPair=N2)。ステップS608の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、処理対象が輝度信号であるか色差信号であるかに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<4.第2の実施の形態>
<方法#2>
次に、図8の表151の方法#2について説明する。方法#2の場合、符号化パラメータが、例えば、予測のモードに関するシンタックス要素の値を含む。
<4-1.方法#2-1>
そして、図8の表151の方法#2-1の場合、直交変換(逆直交変換)の処理対象ブロックの予測モードがイントラ予測(例えばイントラCU)であるか、インター予測(例えばインターCU)であるかに応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。
例えば、図40のAの表611のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合(numSIG <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、予測モードがイントラ予測(Intra)の場合、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、予測モードがインター予測(Inter)の場合、選択可能な変換ペア数NumTrPairは、「N2」(N1 >= N2)に設定される。
例えば、TH1=2, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、イントラ予測の場合「0」乃至「7」となり、インター予測の場合「0」および「1」となる。つまり、インター予測の場合、直交変換(逆直交変換)のタイプの候補の数を、イントラ予測の場合よりも少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図41のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS621において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS622に進む。
ステップS622において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS622の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS621において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS623に進む。
ステップS623において、変換ペア数設定部241は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
ステップS624において、変換ペア数設定部241は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である(numSIG <= TH1)と判定された場合、処理はステップS625に進む。
ステップS625において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS625の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS624において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい(numSIG > TH1)と判定された場合、処理はステップS626に進む。
ステップS626において、変換ペア数設定部241は、処理対象の予測モードがイントラ予測(Intra)であるか否かを判定する。処理対象の予測モードがイントラ予測(Intra)であると判定された場合、処理は、ステップS627に進む。
ステップS627において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する(NumTrPair=N1)。ステップS627の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS626において、処理対象の予測モードがインター予測(Inter)であると判定された場合、処理は、ステップS628に進む。
ステップS628において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N2」(N1 >= N2)に設定する(NumTrPair=N2)。ステップS628の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、処理対象の予測モードがイントラ予測であるかインター予測であるかに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<変形例>
なお、図40のBの表612に示されるように、処理対象の予測モードがイントラ予測であるかインター予測であるかを、非ゼロ係数の数よりも先に選択するようにしてもよい。つまり、これらの判定の順序は任意である。
<4-2.方法#2-2>
また、図8の表151の方法#2-2の場合、直交変換(逆直交変換)の処理対象の予測モードがインター予測(例えばインターCU)の場合に、その予測方向が順予測であるか、双予測であるかに応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。
例えば、図42の表621のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合(numSIG <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、予測モードがイントラ予測(Intra)の場合、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、予測モードがインター予測(Inter)であり、かつ、順予測の場合、選択可能な変換ペア数NumTrPairは、「N2」(N1 >= N2)に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、予測モードがインター予測(Inter)であり、かつ、双予測の場合、選択可能な変換ペア数NumTrPairは、「N3」(N2 >= N3)に設定される。
例えば、TH1=2, N1=16, N2=9, N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、イントラ予測の場合「0」乃至「14」となり、インター予測の順予測の場合「0」乃至「7」となり、インター予測の双予測の場合「0」および「1」となる。つまり、双予測の場合、直交変換(逆直交変換)のタイプの候補の数を、順予測の場合よりも少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図43のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS641において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS642に進む。
ステップS642において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS642の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS641において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS643に進む。
ステップS643において、変換ペア数設定部241は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
ステップS644において、変換ペア数設定部241は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である(numSIG <= TH1)と判定された場合、処理はステップS645に進む。
ステップS645において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS645の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS644において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい(numSIG > TH1)と判定された場合、処理はステップS646に進む。
ステップS646において、変換ペア数設定部241は、処理対象の予測モードがイントラ予測であるか否かを判定する。処理対象の予測モードがイントラ予測(Intra)であると判定された場合、処理は、ステップS647に進む。
ステップS647において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する(NumTrPair=N1)。ステップS647の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS646において、処理対象の予測モードがインター予測(Inter)であると判定された場合、処理は、ステップS648に進む。
ステップS648において、変換ペア数設定部241は、予測方向が双予測であるか否かを判定する。順予測であると判定された場合、処理は、ステップS649に進む。
ステップS649において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N2」(N1 >= N2)に設定する(NumTrPair=N2)。ステップS649の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS648において、双予測であると判定された場合、処理は、ステップS650に進む。
ステップS650において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N3」(N2 >= N3)に設定する(NumTrPair=N3)。ステップS650の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、双予測であるか順予測であるかに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<4-3.方法#2-3>
また、図8の表151の方法#2-3の場合も、方法#2-1と同様の制御が行われる。つまり、直交変換(逆直交変換)の処理対象ブロックの予測モードが所定のモードであるかに応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。例えば、直交変換(逆直交変換)の処理対象ブロックの予測モードが所定のモードの場合、直交変換(逆直交変換)のタイプの候補の数が、他のモードの場合よりも少なく設定される。
より具体的には、直交変換(逆直交変換)の処理対象ブロックの予測モードが、再構成した輝度信号から色差信号を線形予測するLMChromaである場合、直交変換(逆直交変換)のタイプの候補の数が、他のモードの場合よりも少なく設定される。
この場合の制御の様子や、変換ペア数設定処理の流れは、方法#2-1の場合と同様であるので、その説明は省略する。
<5.第3の実施の形態>
<方法#3>
次に、図8の表151の方法#3について説明する。方法#3の場合、符号化パラメータは、例えば、直交変換(逆直交変換)の処理対象とするブロックのサイズに関するシンタックス要素の値を含み、直交変換(逆直交変換)の処理対象ブロックのサイズに応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。
例えば、図44の表631のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合(numSIG <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、ブロックサイズ(size)が所定の閾値TH2以下の場合(size <= TH2)、選択可能な変換ペア数NumTrPairは、「N3」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、ブロックサイズ(size)が所定の閾値TH2よりも大きく所定の閾値TH3以下である場合(TH2 < size <= TH3)、選択可能な変換ペア数NumTrPairは、「N2」(N2 >= N3)に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、ブロックサイズ(size)が所定の閾値TH3よりも大きい場合(size > TH3)、選択可能な変換ペア数NumTrPairは、「N1」(N1 >= N2)に設定される。
例えば、TH1=2, TH2=32, TH3=256, N1=16, N2=9 ,N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、ブロックサイズが小(<= TH2)の場合「0」および「1」となり、ブロックサイズが中(>TH2 && <= TH3)の場合「0」乃至「7」となり、ブロックサイズが大(> TH3)の場合、「0」乃至「14」となる。つまり、ブロックサイズが小さい程、直交変換(逆直交変換)のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図45のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS661において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS662に進む。
ステップS662において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS662の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS661において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS663に進む。
ステップS663において、変換ペア数設定部241は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
ステップS664において、変換ペア数設定部241は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である(numSIG <= TH1)と判定された場合、処理はステップS665に進む。
ステップS665において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS665の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS664において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい(numSIG > TH1)と判定された場合、処理はステップS666に進む。
ステップS666において、変換ペア数設定部241は、処理対象ブロックのサイズ(W*H)が所定の閾値TH2よりも大きいか否かを判定する。処理対象ブロックのサイズ(W*H)が所定の閾値TH2以下(W*H <= TH2)であると判定された場合、処理はステップS667に進む。
ステップS667において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N3」に設定する(NumTrPair=N3)。ステップS667の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS666において、処理対象ブロックのサイズが所定の閾値TH2よりも大きい(W*H > TH2)と判定された場合、処理はステップS668に進む。
ステップS668において、変換ペア数設定部241は、処理対象ブロックのサイズ(W*H)が所定の閾値TH3(TH3 > TH2)よりも大きいか否かを判定する。処理対象ブロックのサイズ(W*H)が所定の閾値TH3以下(TH2 < W*H <= TH3)であると判定された場合、処理はステップS669に進む。
ステップS669において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N2」(N2 >= N3)に設定する(NumTrPair=N2)。ステップS669の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS668において、処理対象ブロックのサイズが所定の閾値TH3よりも大きい(W*H > TH3)と判定された場合、処理はステップS670に進む。
ステップS670において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N1」(N1 >= N2)に設定する(NumTrPair=N1)。ステップS670の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、処理対象ブロックのサイズに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<6.第4の実施の形態>
<方法#4>
次に、図8の表151の方法#4について説明する。方法#4の場合、符号化パラメータが、例えば、量子化パラメータに関するシンタックス要素の値を含む。
<6-1.方法#4-1>
そして、図8の表151の方法#4-1の場合、直交変換(逆直交変換)の処理対象ブロックの量子化パラメータQPの値に応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。
例えば、図46の表641のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合(numSIG <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、量子化パラメータQPが所定の閾値TH2以下の場合(QP <= TH2)、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、量子化パラメータQPが所定の閾値TH2よりも大きく所定の閾値TH3以下である場合(TH2 < QP <= TH3)、選択可能な変換ペア数NumTrPairは、「N2」(N1 >= N2)に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、量子化パラメータQPが所定の閾値TH3よりも大きい場合(TH3 < QP)、選択可能な変換ペア数NumTrPairは、「N3」(N2 >= N3)に設定される。
例えば、TH1=2, TH2=22, TH3=37, N1=9, N2=5 ,N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、量子化パラメータQPが小(QP <= TH2)の場合「0」乃至「7」となり、量子化パラメータQPが中(TH2 < QP <= TH3)の場合「0」乃至「3」となり、量子化パラメータQPが大(QP > TH3)の場合、「0」および「1」となる。つまり、量子化パラメータQPが大きい程、直交変換(逆直交変換)のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図47のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS681において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS682に進む。
ステップS682において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS682の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS681において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS683に進む。
ステップS683において、変換ペア数設定部241は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
ステップS684において、変換ペア数設定部241は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である(numSIG <= TH1)と判定された場合、処理はステップS685に進む。
ステップS685において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS685の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS684において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい(numSIG > TH1)と判定された場合、処理はステップS686に進む。
ステップS686において、変換ペア数設定部241は、量子化パラメータQPが所定の閾値TH2よりも大きいか否かを判定する。量子化パラメータQPが所定の閾値TH2以下(QP <= TH2)であると判定された場合、処理はステップS687に進む。
ステップS687において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する(NumTrPair=N1)。ステップS687の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS686において、量子化パラメータQPが所定の閾値TH2よりも大きい(QP > TH2)と判定された場合、処理はステップS688に進む。
ステップS688において、変換ペア数設定部241は、量子化パラメータQPが所定の閾値TH3(TH3 > TH2)よりも大きいか否かを判定する。量子化パラメータQPが所定の閾値TH3以下(TH2 < QP <= TH3)であると判定された場合、処理はステップS689に進む。
ステップS689において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N2」に設定する(NumTrPair=N2)。ステップS689の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS688において、量子化パラメータQPが所定の閾値TH3よりも大きい(QP > TH3)と判定された場合、処理はステップS690に進む。
ステップS690において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N3」(N2 >= N3)に設定する(NumTrPair=N3)。ステップS690の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、量子化パラメータQPの値の大きさに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<6-2.方法#4-2>
また、図8の表151の方法#4-2の場合、量子化パラメータQPの代わりに、直交変換(逆直交変換)の処理対象ブロックの時間方向の階層符号化における階層を示すテンポラルID(temporalID)の値に応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。
例えば、図48の表651のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合(numSIG <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、テンポラルID(temporalID)が所定の閾値TH2以下の場合(temporalID <= TH2)、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、テンポラルID(temporalID)が所定の閾値TH2よりも大きく所定の閾値TH3以下である場合(TH2 < temporalID <= TH3)、選択可能な変換ペア数NumTrPairは、「N2」(N1 >= N2)に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく(numSIG > TH1)、かつ、テンポラルID(temporalID)が所定の閾値TH3よりも大きい場合(TH3 < temporalID)、選択可能な変換ペア数NumTrPairは、「N3」(N2 >= N3)に設定される。
例えば、TH1=2, TH2=1, TH3=2, N1=9, N2=5 ,N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、テンポラルID(temporalID)が小(temporalID <= TH2)の場合「0」乃至「7」となり、テンポラルID(temporalID)が中(TH2 < temporalID <= TH3)の場合「0」乃至「3」となり、テンポラルID(temporalID)が大(temporalID > TH3)の場合、「0」および「1」となる。つまり、テンポラルID(temporalID)が大きい程、直交変換(逆直交変換)のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図49のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS701において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS702に進む。
ステップS702において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS682の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS701において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS703に進む。
ステップS703において、変換ペア数設定部241は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
ステップS704において、変換ペア数設定部241は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である(numSIG <= TH1)と判定された場合、処理はステップS705に進む。
ステップS705において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS705の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS704において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい(numSIG > TH1)と判定された場合、処理はステップS706に進む。
ステップS706において、変換ペア数設定部241はテンポラルID(temporalID)が所定の閾値TH2よりも大きいか否かを判定する。テンポラルID(temporalID)が所定の閾値TH2以下(temporalID <= TH2)であると判定された場合、処理はステップS707に進む。
ステップS707において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する(NumTrPair=N1)。ステップS707の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS706において、テンポラルID(temporalID)が所定の閾値TH2よりも大きい(temporalID > TH2)と判定された場合、処理はステップS708に進む。
ステップS708において、変換ペア数設定部241は、テンポラルID(temporalID)が所定の閾値TH3(TH3 > TH2)よりも大きいか否かを判定する。テンポラルID(temporalID)が所定の閾値TH3以下(TH2 < temporalID <= TH3)であると判定された場合、処理はステップS709に進む。
ステップS709において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N2」に設定する(NumTrPair=N2)。ステップS709の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS708において、テンポラルID(temporalID)が所定の閾値TH3よりも大きい(temporalID > TH3)と判定された場合、処理はステップS710に進む。
ステップS710において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを所定の値「N3」(N2 >= N3)に設定する(NumTrPair=N3)。ステップS710の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、テンポラルID(temporalID)の値の大きさに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<7.第5の実施の形態>
<方法#5>
次に、図8の表151の方法#5について説明する。方法#5の場合、符号化パラメータは、シンタックス要素の値から導出される変数を含む。例えば、符号化パラメータは、変換係数から導出される変数を含む。
<7-1.方法#5-1>
そして、図8の表151の方法#5-1の場合、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数の数に応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。
例えば、図50の表661のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合(numSIG <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1より大きく所定の閾値TH2(TH1 < TH2)以下である場合(TH1 < numSIG <= TH2)、選択可能な変換ペア数NumTrPairは、「N2」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH2より大きい場合(numSIG > TH2)、選択可能な変換ペア数NumTrPairは、「N1」(N1 > N2)に設定される。
例えば、TH1=2, TH2=8, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、非ゼロ係数の数numSIGが中(TH1 < numSIG <= TH2)の場合「0」乃至「3」となり、非ゼロ係数の数numSIGが大(numSIG > TH2)の場合、「0」乃至「7」となる。つまり、非ゼロ係数の数numSIGが少ない程、直交変換(逆直交変換)のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図51のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS721において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS722に進む。
ステップS722において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS722の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS721において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS723に進む。
ステップS723において、変換ペア数設定部241は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
ステップS724において、変換ペア数設定部241は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である(numSIG <= TH1)と判定された場合、処理はステップS725に進む。
ステップS725において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS725の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS724において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい(numSIG > TH1)と判定された場合、処理はステップS726に進む。
ステップS726において、変換ペア数設定部241は、非ゼロ係数の数numSIGが所定の閾値TH2(TH2 > TH1)より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH2以下である(TH1 < numSIG <= TH2)と判定された場合、処理はステップS727に進む。
ステップS727において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「N2」に設定する(NumTrPair=N2)。ステップS727の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS726において、非ゼロ係数の数numSIGが所定の閾値TH2より大きい(numSIG > TH2)と判定された場合、処理はステップS728に進む。
ステップS728において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「N1」(N1 > N2)に設定する(NumTrPair=N1)。ステップS728の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、非ゼロ係数の数numSIGに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<7-2.方法#5-2>
また、図8の表151の方法#5-2の場合、直交変換(逆直交変換)の処理対象とするブロックにおけるスキャン順に最後の非ゼロ係数であるラスト係数の位置lastPosに応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。なお、このラスト係数の位置lastPosは、スキャンの開始位置からラスト係数の位置までの距離(スキャン順に沿った距離)である(lastPos = XYtoScanOrder[Y][X])。
例えば、図52の表671のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、ラスト係数の位置lastPosが所定の閾値TH1以下の場合(lastPos <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、かつ、ラスト係数の位置lastPosが所定の閾値TH1より大きく所定の閾値TH2(TH1 < TH2)以下である場合(TH1 < lastPos <= TH2)、選択可能な変換ペア数NumTrPairは、「N2」に設定される。さらに、変換フラグemt_flag==1であり、かつ、ラスト係数の位置lastPosが所定の閾値TH2より大きい場合(lastPos > TH2)、選択可能な変換ペア数NumTrPairは、「N1」(N1 > N2)に設定される。
例えば、TH1=2, TH2=8, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、ラスト係数の位置lastPosが中(TH1 < lastPos <= TH2)の場合「0」乃至「3」となり、ラスト係数の位置lastPosが大(lastPos > TH2)の場合、「0」乃至「7」となる。つまり、ラスト係数の位置lastPosが近い程、直交変換(逆直交変換)のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図53のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS741において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS742に進む。
ステップS742において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS742の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS741において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS743に進む。
ステップS743において、変換ペア数設定部241は、処理対象ブロックのラスト係数のXY座標を導出し、その位置lastPosを導出する。
ステップS744において、変換ペア数設定部241は、そのラスト係数の位置lastPosが所定の閾値TH1より大きいか否かを判定する。ラスト係数の位置lastPosが所定の閾値TH1以下である(lastPos <= TH1)と判定された場合、処理はステップS745に進む。
ステップS745において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS745の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS744において、ラスト係数の位置lastPosが所定の閾値TH1より大きい(lastPos > TH1)と判定された場合、処理はステップS746に進む。
ステップS746において、変換ペア数設定部241は、ラスト係数の位置lastPosが所定の閾値TH2(TH2 > TH1)より大きいか否かを判定する。ラスト係数の位置lastPosが所定の閾値TH2以下である(TH1 < lastPos <= TH2)と判定された場合、処理はステップS747に進む。
ステップS747において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「N2」に設定する(NumTrPair=N2)。ステップS747の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS746において、ラスト係数の位置lastPosが所定の閾値TH2より大きい(lastPos > TH2)と判定された場合、処理はステップS748に進む。
ステップS748において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「N1」(N1 > N2)に設定する(NumTrPair=N1)。ステップS748の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、ラスト係数の位置lastPosに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<変形例>
ラスト係数の位置lastPosは、上述した例に限定されない。例えば、ラスト係数のX座標とY座標との和をラスト係数の位置としてもよい(マンハッタン距離:lastPos = x + y)。
また、閾値TH1および閾値TH2は、それぞれ、変換ブロックのサイズに応じた値としてもよい。例えば、以下の式(36)のようにしてもよい。
Figure 2023112105000033
<7-3.方法#5-3>
また、図8の表151の方法#5-3の場合、直交変換(逆直交変換)の処理対象とするブロックにおける非ゼロ係数の絶対値の総和sumAbsLevelに応じて、直交変換(逆直交変換)のタイプの候補の数が制御される。なお、この非ゼロ係数の絶対値の総和sumAbsLevelは、例えば、以下の式(37)により導出される変数である。
Figure 2023112105000034
なお、式(37)において、qcoef[pos]は、スキャン順でpos番目の量子化された係数の振幅を示す。また、posは、係数のスキャン順位置を示す。
例えば、図54の表681のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「1」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1以下の場合(sumAbsLevel <= TH1)、選択可能な変換ペア数NumTrPairは、「2」に設定される。
また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1より大きく所定の閾値TH2(TH1 < TH2)以下である場合(TH1 < sumAbsLevel <= TH2)、選択可能な変換ペア数NumTrPairは、「N2」に設定される。さらに、変換フラグemt_flag==1であり、かつ、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2より大きい場合(sumAbsLevel > TH2)、選択可能な変換ペア数NumTrPairは、「N1」(N1 > N2)に設定される。
例えば、TH1=2, TH2=8, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、非ゼロ係数の絶対値の総和sumAbsLevelが中(TH1 < sumAbsLevel <= TH2)の場合「0」乃至「3」となり、非ゼロ係数の絶対値の総和sumAbsLevelが大(sumAbsLevel > TH2)の場合、「0」乃至「7」となる。つまり、非ゼロ係数の絶対値の総和sumAbsLevelが小さい程、直交変換(逆直交変換)のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
<変換ペア数設定処理の流れ>
この場合の、図17のステップS231において実行される変換ペア数設定処理の流れ例を、図55のフローチャートを参照して説明する。
変換ペア数設定処理が開始されると、変換ペア数設定部241は、ステップS761において、変換フラグemt_flagの値を「1」にするか否かを判定する。変換フラグemt_flagの値を「0」とすると判定された場合、処理はステップS762に進む。
ステップS762において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「1」に設定する(NumTrPair=1)。ステップS762の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS761において、変換フラグemt_flagの値を「1」とすると判定された場合、処理はステップS763に進む。
ステップS763において、変換ペア数設定部241は、非ゼロ係数の絶対値の総和sumAbsLevelを導出する。
ステップS764において、変換ペア数設定部241は、その非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1以下である(sumAbsLevel <= TH1)と判定された場合、処理はステップS765に進む。
ステップS765において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「2」に設定する(NumTrPair=2)。ステップS765の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS764において、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1より大きい(sumAbsLevel > TH1)と判定された場合、処理はステップS766に進む。
ステップS766において、変換ペア数設定部241は、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2(TH2 > TH1)より大きいか否かを判定する。非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2以下である(TH1 < sumAbsLevel <= TH2)と判定された場合、処理はステップS767に進む。
ステップS767において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「N2」に設定する(NumTrPair=N2)。ステップS767の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
また、ステップS766において、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2より大きい(sumAbsLevel > TH2)と判定された場合、処理はステップS768に進む。
ステップS768において、変換ペア数設定部241は、変換ペアの候補の数NumTrPairを「N1」(N1 >= N2)に設定する(NumTrPair=N1)。ステップS768の処理が終了すると変換ペア数設定処理が終了し、処理は図17に戻る。
以上のように処理を行うことにより、非ゼロ係数の絶対値の総和sumAbsLevelに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する(符号化効率を改善する)ことができる。
なお、復号の場合(逆直交変換の制御の場合)も、同様に変換ペア数設定処理を行えばよい。つまり、図31のステップS423においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部241の代わりに変換ペア数設定部431が処理を実行するようにすることにより、上述の説明を適用することができる。
<変形例>
ラスト係数の位置lastPosは、上述した例に限定されない。例えば、ラスト係数のX座標とY座標との和をラスト係数の位置としてもよい(マンハッタン距離:lastPos = x + y)。
また、閾値TH1および閾値TH2は、それぞれ、変換ブロックのサイズ、量子化パラメータQP、若しくはビット深度bitDepth、またはそれらの組み合わせに応じた値としてもよい。例えば、以下の式(38)のようにしてもよい。
Figure 2023112105000035
式(38)において、f()は、閾値THNを決定する任意の関数である。
<8.応用例>
以上の各実施の形態において、各条件に対応する変換ペア数の組み合わせの例を説明したが、この組み合わせは任意であり、上述の例に限定されない。選択できる変換ペアの最大数以下において、重複しない任意の変換ペア数を選択することができる。
例えば、図56に示される表701のように、選択可能な変換ペア数NumTrPairが16であるとすると、変換ペアの候補は、枠線711に囲まれる範囲、枠線712に囲まれる範囲、枠線713に囲まれる範囲、枠線714に囲まれる範囲、および枠線715に囲まれる範囲の5種類が想定される。この内の任意の数の範囲を、符号化パラメータの各条件に割り当てるようにしてもよい。
例えば、図38の表601の例の場合、componentIDに対する変換ペア数の選択肢は、2種類(N1およびN2)設定することができる。例えば、表701の5種類の範囲を候補とする場合、この5種類の内の任意の2種類を、N1とN2に割り当てることができる。
また、各実施の形態の、選択可能な変換ペア数の選択肢の数は任意であり、上述の例に限定されない。例えば、図38の表601の例の場合、変換ペア数は、componentIDに対して2種類の選択肢(N1とN2)が用意されているように説明したが、3種類以上の選択肢(N1,N2,N3,・・・)が用意されるようにしてももちろんよい。
例えば、図50の表661の例の場合、選択可能な変換ペア数NumTrPairの選択肢が4種類(1,2,N1,N2)であるように説明したが、例えば、図57のAの表721のように、この選択肢の数を5種類(1,2,N1,N2,N3)としてもよい。もちろん、この選択肢の数を3種類以下としてもよいし、6種類以上としてもよい。
また例えば、図52の表671の例の場合、選択可能な変換ペア数NumTrPairの選択肢が4種類(1,2,N1,N2)であるように説明したが、例えば、図57のBの表722のように、この選択肢の数を5種類(1,2,N1,N2,N3)としてもよい。もちろん、この選択肢の数を3種類以下としてもよいし、6種類以上としてもよい。
さらに例えば、図54の表681の例の場合、選択可能な変換ペア数NumTrPairの選択肢が4種類(1,2,N1,N2)であるように説明したが、例えば、図57のCの表723のように、この選択肢の数を5種類(1,2,N1,N2,N3)としてもよい。もちろん、この選択肢の数を3種類以下としてもよいし、6種類以上としてもよい。
また、選択可能な変換ペア数NumTrPairの組み合わせは、ピクチャ内、シーケンス内、予測モード、QPで固定であるようにしてもよいし、可変としてもよい。例えば、CTU、スライス、タイル、ピクチャ、またはシーケンス等、任意のデータ単位で、変換ペア数numTrPairの組み合わせ、あるいは、変換ペア数の{最大値、最小値}をシグナリングすることができるようにしてもよい。すなわち、所定サイズ毎に変換ペア数を制御することができるようにしてもよい。
つまり、符号化側において、制御部が、選択可能な変換ペア数の最大数に関する情報と、選択可能な変換ペア数の最小数に関する情報とを設定し、符号化部が、その最大数に関する情報と最小数に関する情報とを含む符号化データを生成するようにしてもよい。
また、復号側において、制御部(復号部)が、符号化データに含まれる、選択可能な変換ペア数の最大数に関する情報と、選択可能な変換ペア数の最小数に関する情報とをパースし、そのパースした最大数に関する情報および最小数に関する情報と、符号化パラメータとに応じて、逆直交変換のタイプの候補の数を設定するようにしてもよい。
このようにすることにより、簡単な残差信号のところでは、変換ペア数の最大値を小さくすることで、AMTの制御情報に関するオーバーヘッドを削減することができる。また、符号化側は、探索する変換ペアの組み合わせ数が減るため、処理が軽くなる。これに対して、複雑な残差信号のところでは、変換ペア数の最大値を大きくすることで、より多くの変換ペアの候補から適切な変換ペアを選択できるようになり、符号化効率が改善する。
また、直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグを、(例えば所定のデータ単位毎に)シグナリングすることができるようにしてもよい。
例えば、符号化側において、制御部が、直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグを設定し、符号化部が、その変換イネーブルフラグを含む符号化データを生成するようにしてもよい。
また、復号側において、制御部が、符号化データに含まれる、逆直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグをパースし、その変換イネーブルフラグにおいて逆直交変換のタイプの適応的な変更が許可されている場合、符号化パラメータに基づいて逆直交変換のタイプを制御するようにしてもよい。
このようにすることにより、AMTが許可されていない場合にAMTに関する処理を省略することができるので、符号化や復号の負荷の増大を抑制することができる。
図58のシンタックス731は、この場合のシンタックスの例を示すものである。シンタックス731において、emt_enabled_flag(またはamt_enabled_flag)は、逆直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグである。また、emt_max_num_trpair_minusNは、「変換ペア数の最大値 - N」を示すシンタックス要素である。また、emt_min_num_trpair_minusNは、「変換ペア数の最小値 - N」を示すシンタックス要素である。
この例の場合、emt_enabled_flagが1(真)のとき、emt_max_num_trpair_minusNおよびemt_min_num_trpair_minusNがシグナリングされる。つまり、画像復号装置400は、emt_enabled_flagが1(真)である場合に、emt_max_num_trpair_minusNおよびemt_min_num_trpair_minusNを復号する。
変換ペアの最大数は、以下の式(39)のように導出される。また、変換ペアの最小数は、以下の式(40)のように導出される。
Figure 2023112105000036
ここで、例えば、N=1としてもよい。なお、Nは1に限定されず、2であってもよいし、その他の値であってもよい。このように変換ペア数の最大値、最小値をN減算して符号化することで、符号量の増大を抑制することができる。
また、なお、変換ペア数の組み合わせは、予め定められたルールに基づいて、変換ペア数の最大値および最小値から導出されるようにしてもよい。
例えば、変換ペア数の組み合わせを{a, b, c} (a<b<c)の3種類に固定するとする。この場合、cには変換ペアの最大数(maxNumTrPair)を設定し、aには変換ペアの最小数(=minNumTrPair)を設定し、bにはその中間値を設定するようにしてもよい。
また、例えば、最大数の2を底とする対数値と、最小値の2を底とする対数値の平均値aveLog2NumTrPairを求め、その2のべき乗をbに設定するようにしてもよい。つまり、以下の式(41)のように、a,b,cを導出するようにしてもよい。
Figure 2023112105000037
例えば、a,b,cは、以下のように導出される。
maxNumTrPair = 8, minNumTrPair = 1の場合、{a, b, c} = {1, 4, 8}となる。
maxNumTrPair = 8, minNumTrPair = 2の場合、{a, b, c} = {2, 4, 8}となる。
maxNumTrPair = 16, minNumTrPair = 1の場合、{a, b, c} = {1, 8, 16}となる。
maxNumTrPair = 16, minNumTrPair = 4の場合、{a, b, c} = {4, 8, 16}となる。
なお、導出方法はこれに限定されない。例えば、Ceil()関数(少数点以下切り上げ)をfloor()関数(少数点以下切り捨て)に変えてもよい。また、b = 2**(log2(minNumTrPair) + 1) としてよいし、b = 2**(log2(maxNumTrPair) - 1)としてもよい。
以上に説明した各実施の形態を組み合わせて適用するようにしてもよい。この組み合わせ方は任意である。例えば、非特許文献1に記載の方法に対して、第1の実施の形態、第2-1の実施の形態、および第5-1の実施の形態のそれぞれにおいて説明した方法を組み合わせて適用するようにしてもよい。
<9.付記>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図59は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図59に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
<情報・処理の単位>
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
<本技術の適用対象>
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
上述した実施の形態に係る画像符号化装置100、画像復号装置130、画像符号化装置200、および画像復号装置400は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等(すなわち、装置の一部の構成)として実施することもできる。
さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスに適用することもできる。
なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
また、例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
100 画像符号化装置, 101 直交変換制御部, 102 直交変換部, 103 符号化部, 110 符号化部, 130 画像復号装置, 131 逆直交変換制御部, 132 復号部, 133 逆直交変換部, 140 復号部, 200 画像符号化装置, 201 制御部, 213 直交変換部, 215 符号化部, 218 逆直交変換部, 241 変換ペア数設定部, 242 cMax設定部, 243 変換ペア識別情報設定部, 244 変換ペアLUT, 245 変換タイプインデックス設定部, 251 変換ペアインデックス設定部, 252 変換フラグ設定部, 253 変換インデックス設定部, 261 プライマリ変換部, 262 セカンダリ変換部, 271 プライマリ水平変換部, 272 プライマリ垂直変換部, 400 画像復号装置, 412 復号部, 414 逆直交変換部, 431 変換ペア数設定部,432 cMax設定部, 433 変換ペア識別情報復号部, 434 変換ペアLUT, 435 変換タイプインデックス設定部, 451 変換フラグ復号部, 452 変換インデックス復号部, 453 変換ペアインデックス設定部, 461 逆セカンダリ変換部, 462 逆プライマリ変換部, 471 逆プライマリ垂直変換部, 472 逆プライマリ水平変換部

Claims (7)

  1. 直交変換の処理対象が輝度信号であるか色差信号であるかに応じて直交変換のタイプの候補の数を設定し、前記候補の中から適用する前記直交変換のタイプを選択し、前記直交変換のタイプに関する情報を設定する制御部と、
    選択された前記直交変換のタイプに従って画像データを直交変換して係数データを生成する直交変換部と、
    前記係数データと前記直交変換のタイプに関する情報とを符号化して、符号化データを生成する符号化部と
    を備え、
    前記直交変換のタイプの候補の数は、前記処理対象が色差信号の場合、前記処理対象が輝度信号の場合よりも少なく設定される
    画像処理装置。
  2. 前記制御部は、前記直交変換のタイプの候補の数に基づいて、前記直交変換のタイプに関する情報を設定する
    請求項1に記載の画像処理装置。
  3. 前記制御部は、前記直交変換のタイプに関する情報に基づいて、垂直方向の1次元直交変換のタイプと水平方向の1次元直交変換のタイプとを設定し、
    前記直交変換部は、
    前記制御部により設定された前記垂直方向の1次元直交変換のタイプの変換行列を用いて前記垂直方向の1次元直交変換を行い、
    前記制御部により設定された前記水平方向の1次元直交変換のタイプの変換行列を用いて前記水平方向の1次元直交変換を行う
    請求項1に記載の画像処理装置。
  4. 前記制御部は、
    前記直交変換のタイプに関する情報に基づいて、前記垂直方向の1次元直交変換のタイプと前記水平方向の1次元直交変換のタイプとの組み合わせの候補を絞り込む識別子である変換ペアインデックスを設定し、
    前記変換ペアインデックスと予測のモードとに基づいて、前記組み合わせを選択することにより、前記垂直方向の1次元直交変換のタイプと前記水平方向の1次元直交変換のタイプとを設定する
    請求項3に記載の画像処理装置。
  5. 前記直交変換のタイプに関する情報は、前記直交変換のタイプを適応的に変更するかを示す変換フラグと、前記直交変換のタイプを適応的に変更する場合に前記組み合わせの候補を絞り込む識別子である変換インデックスとを含む
    請求項4に記載の画像処理装置。
  6. 前記制御部は、前記変換インデックスを、符号化パラメータに応じたビット長のデータとする
    請求項5に記載の画像処理装置。
  7. 直交変換の処理対象が輝度信号であるか色差信号であるかに応じて直交変換のタイプの候補の数を設定し、前記候補の中から適用する前記直交変換のタイプを選択し、前記直交変換のタイプに関する情報を設定し、
    選択された前記直交変換のタイプに従って画像データを直交変換して係数データを生成し、
    前記係数データと前記直交変換のタイプに関する情報とを符号化して、符号化データを生成し、
    前記直交変換のタイプの候補の数は、前記処理対象が色差信号の場合、前記処理対象が輝度信号の場合よりも少なく設定される
    画像処理方法。
JP2023102286A 2018-03-30 2023-06-22 画像処理装置および方法 Pending JP2023112105A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018069056 2018-03-30
JP2018069056 2018-03-30
JP2020510681A JP7334730B2 (ja) 2018-03-30 2019-03-18 画像処理装置および方法
PCT/JP2019/011048 WO2019188466A1 (ja) 2018-03-30 2019-03-18 画像処理装置および方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020510681A Division JP7334730B2 (ja) 2018-03-30 2019-03-18 画像処理装置および方法

Publications (1)

Publication Number Publication Date
JP2023112105A true JP2023112105A (ja) 2023-08-10

Family

ID=68061522

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020510681A Active JP7334730B2 (ja) 2018-03-30 2019-03-18 画像処理装置および方法
JP2023102286A Pending JP2023112105A (ja) 2018-03-30 2023-06-22 画像処理装置および方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020510681A Active JP7334730B2 (ja) 2018-03-30 2019-03-18 画像処理装置および方法

Country Status (3)

Country Link
US (1) US11665367B2 (ja)
JP (2) JP7334730B2 (ja)
WO (1) WO2019188466A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111226442B (zh) * 2017-08-04 2022-06-21 Lg电子株式会社 配置用于视频压缩的变换的方法及计算机可读存储介质
KR102636267B1 (ko) * 2018-08-16 2024-02-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 변형 행렬 선택의 계수에 따른 코딩
WO2020255578A1 (ja) * 2019-06-19 2020-12-24 ソニー株式会社 画像処理装置および方法
US11470038B1 (en) 2020-05-19 2022-10-11 Marvell Asia Pte Ltd. Line side multiplexers with protection switching
US11856227B2 (en) * 2022-05-26 2023-12-26 Mediatek Inc. Transform architecture in video encoding systems

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2555287B (en) * 2011-10-17 2018-11-07 Kt Corp Video decoding method using transform method selected from a transform method set
RU2719340C2 (ru) * 2011-10-18 2020-04-17 Кт Корпорейшен Способ декодирования видеосигнала
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
AU2015417837B2 (en) * 2015-12-23 2019-07-18 Huawei Technologies Co., Ltd. Method and apparatus for transform coding with block-level transform selection and implicit signaling within hierarchical partitioning
KR20180101711A (ko) * 2016-02-04 2018-09-13 삼성전자주식회사 크로마 다중 변환에 의한 비디오 복호화 방법 및 장치,크로마 다중 변환에 의한 비디오 부호화 방법 및 장치
CN108886613B (zh) * 2016-03-28 2022-04-19 株式会社Kt 用于处理视频信号的方法和装置
US10887626B2 (en) * 2016-05-13 2021-01-05 Sharp Kabushiki Kaisha Image decoding device and image encoding device
WO2018021374A1 (ja) * 2016-07-29 2018-02-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN113873241B (zh) * 2016-08-31 2024-02-20 株式会社Kt 用于对视频进行解码的方法和用于对视频进行编码的方法
JPWO2018061837A1 (ja) * 2016-09-30 2019-07-11 ソニー株式会社 画像処理装置および方法
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
WO2018166429A1 (en) * 2017-03-16 2018-09-20 Mediatek Inc. Method and apparatus of enhanced multiple transforms and non-separable secondary transform for video coding
US10750181B2 (en) * 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding
WO2018226067A1 (ko) * 2017-06-08 2018-12-13 엘지전자 주식회사 비디오 압축을 위한 변환 커널의 저복잡도 연산을 수행하는 방법 및 장치
US11070806B2 (en) * 2017-06-28 2021-07-20 Lg Electronics Inc. Method and apparatus for performing low complexity computation in transform kernel for video compression
WO2019009129A1 (ja) * 2017-07-03 2019-01-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
JP2019017066A (ja) * 2017-07-03 2019-01-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
MX2020001290A (es) * 2017-08-03 2020-03-12 Sharp Kk Sistemas y metodos para particionar bloques de video en un corte de interprediccion de datos de video.
CN111133758B (zh) * 2017-09-28 2022-05-10 夏普株式会社 图像解码装置以及图像编码装置
WO2019069782A1 (ja) 2017-10-06 2019-04-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
JP2021010046A (ja) * 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
KR102418700B1 (ko) * 2017-12-04 2022-07-08 엘지전자 주식회사 영상 코딩 시스템에서 크로마 성분의 효율적 변환에 기반한 영상 디코딩 방법 및 장치
BR122021010320B1 (pt) * 2017-12-15 2022-04-05 Lg Electronics Inc. Método de codificação de imagem com base em transformada secundária não separável e dispositivo para o mesmo
CN115190296A (zh) * 2017-12-28 2022-10-14 松下电器(美国)知识产权公司 编码装置、解码装置和存储介质
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform
US10567801B2 (en) * 2018-03-07 2020-02-18 Tencent America LLC Method and apparatus for video coding with primary and secondary transforms
WO2019190284A1 (ko) * 2018-03-29 2019-10-03 엘지전자 주식회사 비디오 압축을 위한 변환 커널의 저복잡도 연산을 수행하는 방법 및 장치
WO2019190283A1 (ko) * 2018-03-29 2019-10-03 엘지전자 주식회사 저복잡도 연산 dst7을 설계하는 방법 및 장치
US11317085B2 (en) * 2018-03-30 2022-04-26 Vid Scale, Inc. Template-based inter prediction techniques based on encoding and decoding latency reduction
US10986340B2 (en) * 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding

Also Published As

Publication number Publication date
WO2019188466A1 (ja) 2019-10-03
US11665367B2 (en) 2023-05-30
JPWO2019188466A1 (ja) 2021-04-08
JP7334730B2 (ja) 2023-08-29
US20210021870A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
US11695917B2 (en) Image coding method and device using transform skip flag
JP7033117B2 (ja) 拡張型多重変換のためのルックアップテーブル
JP7334730B2 (ja) 画像処理装置および方法
JP7235899B2 (ja) 非分離二次変換に基づいた画像コーディング方法及びその装置
JP2023133553A (ja) 画像処理装置及び画像処理方法
WO2020008909A1 (ja) 画像処理装置および方法
KR20200092314A (ko) 화상 처리 장치 및 방법
CN111937398B (zh) 图像处理装置和方法
KR102470695B1 (ko) 인트라 예측 기반 영상 코딩에서의 변환
CN113545053A (zh) 视频译码中的隐式变换选择
KR20220162847A (ko) 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환
CN111713104B (zh) 图像处理装置和方法
JP2023516617A (ja) サインデータハイディング関連映像デコーディング方法及びその装置
CN113875240A (zh) 使用自适应参数集的视频译码方法和设备
CN113170129A (zh) 用于视频编解码的基于树的变换单元(tu)分割
KR20200092315A (ko) 화상 처리 장치 및 방법
JP2023516172A (ja) 残差コーディングに関する映像デコード方法およびその装置
CN113039794A (zh) 图像处理装置和方法
CN111903125A (zh) 图像编码装置、图像编码方法、图像解码装置和图像解码方法
US20230179779A1 (en) Image processing device and method
CN111699685B (zh) 图像处理设备和方法
KR20220104154A (ko) 화상 처리 장치 및 방법
KR102475963B1 (ko) 변환 프로세스를 위해 사용되는 인코더, 디코더 및 대응하는 방법
US20220124334A1 (en) Image processing apparatus and method
KR20220163419A (ko) 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240611