IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 国立大学法人東北大学の特許一覧

<>
  • 特許-符号化装置、符号化方法及びプログラム 図1
  • 特許-符号化装置、符号化方法及びプログラム 図2
  • 特許-符号化装置、符号化方法及びプログラム 図3
  • 特許-符号化装置、符号化方法及びプログラム 図4
  • 特許-符号化装置、符号化方法及びプログラム 図5
  • 特許-符号化装置、符号化方法及びプログラム 図6
  • 特許-符号化装置、符号化方法及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-19
(45)【発行日】2023-12-27
(54)【発明の名称】符号化装置、符号化方法及びプログラム
(51)【国際特許分類】
   H04N 19/12 20140101AFI20231220BHJP
   H04N 19/136 20140101ALI20231220BHJP
   H04N 19/176 20140101ALI20231220BHJP
【FI】
H04N19/12
H04N19/136
H04N19/176
【請求項の数】 7
(21)【出願番号】P 2020122903
(22)【出願日】2020-07-17
(65)【公開番号】P2022019205
(43)【公開日】2022-01-27
【審査請求日】2022-07-28
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】小林 大祐
(72)【発明者】
【氏名】大森 優也
(72)【発明者】
【氏名】中村 健
(72)【発明者】
【氏名】岩崎 裕江
(72)【発明者】
【氏名】張山 昌論
(72)【発明者】
【氏名】ウィッデヤスーリヤ ハシタ ムトゥマラ
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】特開2014-121051(JP,A)
【文献】特開平6-351008(JP,A)
【文献】国際公開第2019/235491(WO,A1)
【文献】CHOI, Kiho et al.,CE6-related: Simplification on MTS Kernel Derivation,JVET-L0059 (version 2),ITU,2018年10月03日,pp.1-4,[online],[retrieved on 2023-09-29],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0059-v2.zip>,JVET-L0059_v2.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割部と、
前記サブブロックごとに代表値を導出する代表値導出部と、
互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の組み合わせのうちから選択する選択部と、
選択された前記変換基底の組み合わせを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理部と
を備える符号化装置。
【請求項2】
前記選択部は、
前記代表ブロックの水平方向について選択された前記変換基底と、前記水平方向について選択された前記変換基底を用いて前記代表値から変換された変換係数に基づき垂直方向について複数の候補の中から選択された前記変換基底と、を前記変換基底の組み合わせとして選択する、
請求項1に記載の符号化装置。
【請求項3】
画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割部と、
前記サブブロックごとに代表値を導出する代表値導出部と、
互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の組み合わせのうちから選択する選択部と、
選択された前記変換基底の組み合わせと前記複数の組み合わせ以外の変換基底の組み合わせとのうちのいずれかを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理部と
を備える符号化装置。
【請求項4】
前記選択部は、
前記代表ブロックの水平方向について前記変換基底の組み合わせを選択し、前記代表ブロックの垂直方向について前記変換基底の組み合わせを選択し、
前記変換処理部は、
前記水平方向について選択された前記変換基底の組み合わせと前記複数の組み合わせ以外の変換基底の組み合わせとのうちのいずれかを用いて、前記符号化単位のブロックの水平方向について前記周波数変換処理を実行する、
請求項3に記載の符号化装置。
【請求項5】
符号化装置が実行する符号化方法であって、
画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割ステップと、
前記サブブロックごとに代表値を導出する代表値導出ステップと、
互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の組み合わせのうちから選択する選択ステップと、
選択された前記変換基底の組み合わせを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理ステップと
を含む符号化方法。
【請求項6】
符号化装置が実行する符号化方法であって、
画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割ステップと、
前記サブブロックごとに代表値を導出する代表値導出ステップと、
互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の組み合わせのうちから選択する選択ステップと、
選択された前記変換基底の組み合わせと前記複数の組み合わせ以外の変換基底の組み合わせとのうちのいずれかを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理ステップと
を含む符号化方法。
【請求項7】
請求項1から請求項4のいずれか一項に記載の符号化装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号化装置、符号化方法及びプログラムに関する。
【背景技術】
【0002】
符号化された高精細な動画像データが、多様なネットワーク環境下で配信される場合がある。動画像の符号化規格としては、例えば、MPEG(Moving Picture Experts Group)-2と、H.264/AVC(Advanced Video Coding)と、H.265/HEVC(High Efficiency Video Coding)とがあり、動画像のデータ量は、符号化されることによって大幅に削減される。
【0003】
近年、「3840画素×2160ライン」及び「7680画素×4320ライン」等の超高精細な動画像の放送並びに配信サービスの普及が拡大している。そこで、動画像データの符号化効率を向上させることを目的として、次世代の符号化規格であるVVC(Versatile Video Coding)の標準化が進められている。ここで、VVCの符号化効率をHEVCの符号化効率の約2倍とすることが目標とされている。
【0004】
VVC及び「H.265/HEVC」等の符号化規格では、動画像のフレームは、コーディングツリーユニット(Coding Tree Unit : CTU)と呼ばれる基本単位のブロックに分割される。CTUは、MPEG-2又は「H.264/AVC」におけるマクロブロック(Macro Block : MB)に相当する。CTUは、コーディングユニット(Coding Unit : CU)と呼ばれる単位のブロックに分割される。
【0005】
「H.265/HEVC」では、予測処理単位(Prediction Unit : PU)と変換処理単位(Transform Unit : TU)とがCUに定められ、予測処理がPUに対して実行され、変換処理がTUに対して実行される。これに対してVVCでは、予測処理、変換処理及び量子化等の符号化処理が、CUに対して実行される。
【0006】
「H.265/HEVC」では、TUのサイズとして、「32×32」と「16×16」と「8×8」と「4×4」とが定められている。「4×4」のイントラ予測(画面内予測)では、予測処理が実行されたことによって導出された予測残差は、離散サイン変換(Discrete Sine Transform : DST)によって周波数領域に変換される。これに対して、「32×32」、「16×16」又は「8×8」のイントラ予測では、予測残差は、離散コサイン変換(Discrete Cosine Transform : DCT)によって周波数領域に変換される。周波数領域に変換された予測残差の高周波成分は、量子化処理によって削減される。予測残差の高周波成分が削減されることによって、動画像のデータ量は効率的に削減される。
【0007】
VVCでは、MTS(Multiple Transform Selection)と呼ばれる符号化ツールが採用される見込みである。周波数の変換効率が高くなるように変換基底が選択されることによって、HEVCと比較して、VVCの符号化効率が大幅に向上することが期待できる。
【先行技術文献】
【非特許文献】
【0008】
【文献】J.Chen, Y.Ye, S.Kim, “Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5),” JVET(Joint Video Exploration Team)-N1002.
【発明の概要】
【発明が解決しようとする課題】
【0009】
以下、変換基底となるDCTのタイプ「2」は「DCT-2」と表記される。変換基底となるDSTのタイプ「7」は「DST-7」と表記される。変換基底となるDCTのタイプ「8」は「DCT-8」と表記される。
【0010】
MTSでは、CUのサイズが「32×32」以下である場合、(水平,垂直)={(DCT-2,DCT-2),(DCT-8,DCT-8),(DCT-8,DST-7),(DST-7,DCT-8),(DST-7,DST-7)}が、変換基底(直交変換の基底)の組み合わせの候補として存在する。符号化装置が符号化処理において用いる組み合わせを候補のうちから選択するために、レート歪み(Rate Distortion : RD)値等のコスト値が候補ごとに比較される。そして、コスト値が最小となる変換基底の組み合わせが、符号化処理において用いられる。
【0011】
「H.265/HEVC」では、符号化処理において用いられる変換基底が、TUのサイズに応じて一つに定まる。このため、「H.265/HEVC」における変換基底を選択するための処理量は多くない。これに対して、VVCにおける変換基底を選択するための処理量は、「H.265/HEVC」における変換基底を選択するための処理量の5倍である。特にVVCでは、CUのサイズが大きくなるほど、変換基底を選択するための処理量が増加する。このようにVVCでは、変換基底を選択するための処理量が、「H.265/HEVC」と比較して大きく増大している。
【0012】
上記事情に鑑み、本発明は、変換基底を選択するための処理量を削減することが可能である符号化装置、符号化方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0013】
本発明の一態様は、画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割部と、前記サブブロックごとに代表値を導出する代表値導出部と、互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の前記組み合わせのうちから選択する選択部と、選択された前記組み合わせを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理部とである。
【0014】
本発明の一態様は、画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割部と、前記サブブロックごとに代表値を導出する代表値導出部と、互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の前記組み合わせのうちから選択する選択部と、選択された前記組み合わせと前記複数の組み合わせ以外の変換基底の組み合わせとのうちのいずれかを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理部とを備える符号化装置である。
【0015】
本発明の一態様は、上記に記載の符号化装置が実行する符号化方法であって、画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割ステップと、前記サブブロックごとに代表値を導出する代表値導出ステップと、互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の前記組み合わせのうちから選択する選択ステップと、選択された前記組み合わせを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理ステップとを含む符号化方法である。
【0016】
本発明の一態様は、上記に記載の符号化装置が実行する符号化方法であって、画像に定められた符号化単位のブロックを複数のサブブロックに分割するサブブロック分割ステップと、前記サブブロックごとに代表値を導出する代表値導出ステップと、互いに隣接する複数の前記サブブロックから構成される代表ブロックにおける複数の前記代表値に基づいて、変換基底の組み合わせを複数の前記組み合わせのうちから選択する選択ステップと、選択された前記組み合わせと前記複数の組み合わせ以外の変換基底の組み合わせとのうちのいずれかを用いて、前記符号化単位のブロックごとに周波数変換処理を実行する変換処理ステップとである。
【0017】
本発明の一態様は、上記に記載の符号化装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0018】
本発明により、変換基底を選択するための処理量を削減することが可能である。
【図面の簡単な説明】
【0019】
図1】実施形態における、符号化装置の構成例を示す図である。
図2】実施形態における、周波数変換部の構成例を示す図である。
図3】実施形態における、サブブロックの分割の例を示す図である。
図4】実施形態における、判定部とサブブロック分割部と代表値導出部と水平方向選択部との動作例を示すフローチャートである。
図5】実施形態における、垂直方向選択部の動作例を示すフローチャートである。
図6】実施形態における、サブブロック分割部と代表値導出部との動作例を示すフローチャートである。
図7】実施形態における、符号化装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0020】
本発明の実施形態について、図面を参照して詳細に説明する。
図1は、実施形態における、符号化装置1の構成例を示す図である。符号化装置1は、動画像を符号化する装置である。符号化装置1には、符号化対象の動画像(原画像)が入力される。符号化装置1は、指定されたパラメータに基づいて、動画像を符号化する。符号化装置1は、符号化結果をビットストリームとして、所定の外部装置(不図示)に出力する。
【0021】
符号化装置1は、ブロック分割部10と、残差信号生成部11と、周波数変換部12と、量子化部13と、エントロピー符号化部14と、逆量子化部15と、逆周波数変換部16と、復号画像生成部17と、ループフィルタ処理部18と、参照画像バッファ部19と、イントラ予測部20と、インター予測部21と、予測画像生成部22とを備える。
【0022】
ブロック分割部10は、入力された動画像(原画像)のフレームをCUに分割する。CUのサイズは符号化処理の単位であり、動画像のフレームにおけるCUの形状は矩形である。ブロック分割部10は、動画像をCUごとに残差信号生成部11に出力する。
【0023】
残差信号生成部11には、CUごとの動画像が、ブロック分割部10から入力される。残差信号生成部11には、CUごとの動画像の予測画像が、予測画像生成部22から入力される。残差信号生成部11は、動画像と予測画像との差分(予測残差)を、CUごとに導出する。残差信号生成部11は、動画像と予測画像とのCUごとの差分を、予測残差信号として周波数変換部12に出力する。
【0024】
周波数変換部12には、予測残差信号が、残差信号生成部11から入力される。周波数変換部12は、離散コサイン変換又は離散サイン変換による周波数変換を、予測画像の水平方向と予測画像の垂直方向とに対して実行する。周波数変換部12は、周波数変換の結果として導出された変換係数群を、量子化部13に出力する。
【0025】
量子化部13には、変換係数群が、周波数変換部12から入力される。量子化部13は、所定の量子化パラメータを用いて、変換係数を量子化する。量子化部13は、量子化された変換係数を、エントロピー符号化部14と逆量子化部15とに出力する。
【0026】
エントロピー符号化部14には、量子化された変換係数が、量子化部13から入力される。エントロピー符号化部14は、量子化された変換係数をエントロピー符号化する。エントロピー符号化部14は、エントロピー符号化の結果を、ビットストリームとして所定の外部装置(不図示)に出力する。
【0027】
逆量子化部15には、量子化された変換係数が、量子化部13から入力される。逆量子化部15は、量子化された変換係数に対して、逆量子化処理を実行する。これによって、逆量子化部15は変換係数を生成する。
【0028】
逆周波数変換部16には、変換係数が、逆量子化部15から入力される。逆周波数変換部16は、変換係数に対して逆周波数変換を実行する。これによって、逆周波数変換部16は、予測残差の復号画像を復号画像生成部17に出力する。
【0029】
復号画像生成部17には、予測残差の復号画像が、逆周波数変換部16から入力され、予測画像が予測画像生成部22から入力される。復号画像生成部17は、予測残差の復号画像と原画像の予測画像とをCUごとに加算することによって、符号化対象の動画像の復号画像を、CUごとに生成する。復号画像生成部17は、符号化対象の動画像の復号画像を、ループフィルタ処理部18と参照画像バッファ部19とに出力する。
【0030】
ループフィルタ処理部18には、符号化対象の動画像の復号画像が、復号画像生成部17から入力される。ループフィルタ処理部18は、符号化歪みを低減するためのフィルタ処理を、符号化対象の動画像の復号画像に対して実行する。ループフィルタ処理部18は、フィルタ処理が実行された復号画像を、参照画像バッファ部19に記録する。
【0031】
参照画像バッファ部19には、フィルタ処理後の復号画像がループフィルタ処理部18から入力され、符号化対象の動画像の復号画像が復号画像生成部17から入力される。参照画像バッファ部19は、フィルタ処理後の復号画像と、符号化対象の動画像の復号画像とを、参照用の画像として記憶する。すなわち、参照画像バッファ部19は、過去の復号画像を参照用の画像として記憶する。
【0032】
イントラ予測部20は、過去の復号画像を参照画像バッファ部19から取得する。イントラ予測部20は、復号画像に対してフレーム内予測処理を実行することによって、フレーム内予測処理の結果に応じた予測結果を生成する。イントラ予測部20は、原画像の予測結果を予測画像生成部22に出力する。
【0033】
インター予測部21は、過去の復号画像を参照画像バッファ部19から取得する。インター予測部21は、過去の復号画像に対して動き補償予測処理を実行することによって、動き補償予測処理の結果に応じた予測結果を生成する。インター予測部21は、原画像の予測結果を予測画像生成部22に出力する。
【0034】
予測画像生成部22には、原画像の予測結果が、イントラ予測部20又はインター予測部21から入力される。予測画像生成部22は、予測画像に基づいて、参照用の画像として記憶されている過去の復号画像を、参照画像バッファ部19から取得する。予測画像生成部22は、原画像の予測結果と過去の復号画像データとに基づいて、原画像の予測画像を生成する。予測画像生成部22は、原画像の予測画像を残差信号生成部11に出力する。
【0035】
次に、周波数変換部12の詳細を説明する。
図2は、実施形態における、周波数変換部12の構成例を示す図である。周波数変換部12は、絞込部120を備える。絞込部120は、判定部121と、サブブロック分割部122と、代表値導出部123と、水平方向選択部124と、垂直方向選択部125とを備える。周波数変換部12は、変換処理部126とを備える。
【0036】
絞込部120には、符号化対象のCUの予測残差信号と、CUのサイズ情報(以下「変換サイズ情報」という。)と、周波数の変換基底の組み合わせリスト「TrMtxList」とが、ブロック分割部10から入力される。ここで、予測残差信号は、CUにおける2次元(水平方向及び垂直方向)の予測残差の信号である。
【0037】
周波数変換領域の一部に動画像信号の成分が集められることによって、空間的な相関が動画像から除去されて、符号化効率が向上する。例えば、周波数変換後の係数行列が「Z」と、周波数変換前の信号行列が「X」と、第1の変換行列が「B」と、第2の変換領域が「C」と表記される場合、2次元の信号に対する周波数変換は、式(1)のように表される。
【0038】
【数1】
【0039】
式(1)は、信号行列「X」の行(水平成分)に変換行列「C」が適用され、信号行列「X」の列(垂直成分)に変換行列「B」が適用されることを表す。
【0040】
周波数変換前における、信号行列「X」の行(水平成分)又は列(垂直成分)として、N点(Nは2以上の整数)の入力成分「x」は、「x=[x,x_1,…,x{N-1}」と表記される。また、周波数変換後における、入力信号の成分のN点とは別のN点の変換係数の成分「y」は、「y=[y,y,…,y{N-1}」と表記される。これらの式の肩に記載された「T」は、転置を表す。変換係数の成分「y」は式(2)のように表される。
【0041】
【数2】
【0042】
VVCでは、式(2)に示された「T(j)」は、変換基底「DCT-2」が選択された場合、式(3)のように表される。
【0043】
【数3】
【0044】
「T(j)」は、変換基底「DST-7」が選択された場合、式(4)のように表される。
【0045】
【数4】
【0046】
「T(j)」は、変換基底「DCT-8」が選択された場合、式(5)のように表される。
【0047】
【数5】
【0048】
VVCでは、「DCT-2」と「DCT-8」と「DST-7」とが、各変換基底として用意されている。CUのサイズが「64×64」である場合、垂直方向及び水平方向の予測残差に対して、1次元の変換基底「DCT-2」が用いられる。これに対して、CUのサイズが「32×32」以下である場合、「DCT-2」と「DST-7」と「DCT-8」とが、変換基底として選択可能である。つまり、CUのサイズが「32×32」以下である場合、変換基底(直交変換の基底)の組み合わせ「(水平,垂直)={(DCT-2,DCT-2),(DCT-8,DCT-8),(DCT-8,DST-7),(DST-7,DCT-8),(DST-7,DST-7)}」が、垂直方向及び水平方向の予測誤差の周波数変換において選択可能である。
【0049】
絞込部120は、1次元の変換基底の組み合わせを、水平方向の予測残差と垂直方向の予測残差とに対して適用する。
【0050】
判定部121には、符号化対象のCUの予測残差信号と、変換サイズ情報と、周波数の変換基底の組み合わせリスト「TrMtxList」とが、ブロック分割部10から入力される。判定部121は、変換基底を選択する処理を実行するか否かを、例えば変換サイズ情報に基づいて判定する。
【0051】
判定部121は、変換基底を選択する処理を実行すると判定した場合、符号化対象のCUの予測残差信号と、変換サイズ情報と、周波数の変換基底の組み合わせリスト「TrMtxList」とを、サブブロック分割部122に出力する。
【0052】
判定部121は、符号化対象のCUの予測残差信号を、変換処理部126に出力する。判定部121は、変換基底を選択する処理を実行しないと判定した場合、変換サイズ情報と、周波数の変換基底の組み合わせリスト「TrMtxList」とを、変換処理部126に出力する。
【0053】
サブブロック分割部122は、符号化対象の画像(フレーム)に定められた符号化単位のブロック(CU)を、複数のサブブロックに分割する。サブブロック分割部122は、複数のサブブロックと(サブブロックのサイズと)、サブブロックごとの予測残差と、組み合わせリスト「TrMtxList」とを、代表値導出部123に出力する。
【0054】
図3は、実施形態における、サブブロックの分割の例を示す図である。図3には、ブロック30と、サブブロック31と、サブブロック32とが示されている。ブロック30は、CUである。ブロック30のサイズ「N×N」は、一例として「8×8」である。サブブロック31は、ブロック30を16分割するように定められる。サブブロック32は、4個のサブブロック31から構成される。
【0055】
以下、代表値が導出された複数のサブブロックから構成されるブロックを「代表ブロック」という。
【0056】
ブロック30内のサイズ「2×2」の領域における予測残差の平均値が、サイズ「2×2」のサブブロック31における予測残差の代表値として、サブブロック31ごとに導出される。また、互いに隣接する4個のサブブロック31の各代表値の平均値が、代表ブロックとしてのサブブロック32における予測残差として、サブブロック32ごとに導出される。ここで、互いに隣接する4個のサブブロック31の各代表値の平均値の分散値が、サブブロック32ごとに導出されてもよい。
【0057】
図2に示された代表値導出部123には、複数のサブブロックと(サブブロックのサイズ情報と)、サブブロックごとの予測残差と、組み合わせリスト「TrMtxList」とが、サブブロック分割部122から入力される。代表値導出部123は、予測残差の代表値を、サブブロックごとに導出する。代表値導出部123は、サブブロックごとの予測残差の代表値(縮小信号)と、組み合わせリスト「TrMtxList」とを、水平方向選択部124に出力する。
【0058】
水平方向選択部124には、サブブロックごとの予測残差の代表値(縮小信号)が、代表値導出部123から入力される。水平方向選択部124は、サブブロックごとの予測残差の代表値(縮小信号)に対して、変換基底を用いた水平方向の周波数変換を実行する。
【0059】
水平方向選択部124は、変換基底「DST-7」が用いられることによって導出された水平方向の変換係数群の絶対値和と、変換基底「DCT-8」が用いられることによって導出された水平方向の変換係数群の絶対値和との大小を比較する。水平方向選択部124は、変換係数の絶対値和がより小さくなる変換基底を選択する。水平方向選択部124は、サブブロックごとの予測残差の代表値(縮小信号)と、絶対値和がより小さくなるように導出された水平方向の変換係数群と、水平方向について選択された変換基底(「DST-7」又は「DCT-8」)と、組み合わせリスト「TrMtxList」(DCT-2,DCT-2)とを、垂直方向選択部125に出力する。
【0060】
垂直方向選択部125には、サブブロックごとの予測残差の代表値(縮小信号)と、水平方向の変換係数群と、水平方向選択部124によって選択された変換基底と、組み合わせリスト「TrMtxList」とが、水平方向選択部124から入力される。垂直方向選択部125は、サブブロックごとの予測残差の代表値(縮小信号)に対して、変換基底を用いた垂直方向の周波数変換を実行する。
【0061】
垂直方向選択部125は、変換基底「DST-7」が用いられることによって導出された垂直方向の変換係数群の絶対値和と、変換基底「DCT-8」が用いられることによって導出された垂直方向の変換係数群の絶対値和との大小を比較する。垂直方向選択部125は、変換係数の絶対値和がより小さくなる変換基底を選択する。垂直方向選択部125は、サブブロックごとの予測残差の代表値(縮小信号)と、絶対値和がより小さくなるように導出された垂直方向の変換係数群と、垂直方向について選択された変換基底(「DST-7」又は「DCT-8」)と、組み合わせリスト「TrMtxList」(DCT-2,DCT-2)とを、変換処理部126に出力する。
【0062】
変換処理部126には、符号化対象のCUの予測残差信号が、判定部121から入力される。変換処理部126には、変換サイズ情報と、周波数の変換基底の組み合わせリスト「TrMtxList」とが、判定部121から入力されてもよい。また、変換処理部126には、絶対値和がより小さくなるように導出された垂直方向の変換係数群と、水平方向選択部124及び垂直方向選択部125によって選択された各変換基底を含む組み合わせリスト「TrMtxList」とが、垂直方向選択部125から入力される。
【0063】
変換処理部126は、周波数の変換基底の組み合わせリスト「TrMtxList」に含まれている選択された組み合わせごとに(絞り込まれた組み合わせごとに)、符号化単位のブロックに対して周波数変換処理を実行する。変換処理部126は、変換基底の組み合わせごとのレート歪み値等のコスト値に基づいて、周波数の変換基底の最終的な組み合わせを選択する。変換処理部126は、コスト値が最も小さくなる変換基底の組み合わせを、最終的な組み合わせとして選択する。
【0064】
変換処理部126は、周波数の変換基底の最終的な組み合わせを用いて、符号化単位のブロックについて周波数変換を実行する。変換処理部126は、周波数変換の結果として導出された変換係数群を、量子化部13に出力する。
【0065】
次に、周波数変換部12の動作を説明する。
図4は、実施形態における、判定部121と、サブブロック分割部122と、代表値導出部123と、水平方向選択部124との動作例を示すフローチャートである。判定部121は、周波数の変換基底の組み合わせリスト「TrMtxList」に、デフォルトの変換基底である「(水平,垂直)=(DCT-2,DCT-2)」を格納する(ステップS101)。
【0066】
判定部121は、変換基底を選択する処理(絞込処理)を実行するか否かを、例えば、変換サイズ情報と、予測残差の絶対値和と、予測残差の水平方向及び垂直方向の分布形状とのうちのいずれかに基づいて判定する。判定部121は、これらの組み合わせに基づいて、変換基底を選択する処理をするか否かを判定してもよい(ステップS102)。
【0067】
例えば変換サイズ情報(CUSize)が「32×32」を超えている場合(ステップS102:NO)、判定部121は、図4及び図5に記載された処理を終了する。例えば変換サイズ情報が「32×32」以下である場合(ステップS102:YES)、判定部121は、変換サイズ情報が閾値「ThSize」を超えているか否かを判定する(ステップS103)。
【0068】
変換サイズ情報が閾値「ThSize」以下である場合(ステップS103:NO)、周波数変換に要する処理量(演算量)が少ないので、判定部121に入力された予測残差信号に対して周波数変換が実行されるように、判定部121は、ステップS105-1及びステップS105-2に処理を進める。
【0069】
変換サイズ情報が閾値「ThSize」を超えている場合(ステップS103:YES)、サブブロック分割部122及び代表値導出部123は、CUにおける予測残差の解像度を低下させることによって、予測残差信号を縮小する。すなわち、サブブロック分割部122及び代表値導出部123は、CUにおける予測残差の個数を削減する。
【0070】
例えば、サブブロック分割部122は、CUを複数(例えば、4×4個)のサブブロックに分割する。代表値導出部123は、サブブロックごとに1個の代表値を導出する。CUにおいて個数が削減された予測残差を導出するための代表値として、例えば、サブブロックごとに導出された予測残差の平均値と、予測残差の最大値、最小値、中央値又は最頻値と、サブブロック内及びサブブロック間の所定の特徴を表す特徴量とのうちのいずれかが用いられる。これによって、周波数変換に要する処理量が削減される(ステップS104)。
【0071】
水平方向選択部124は、個数が削減された予測残差に対して、所定の複数の変換基底を用いて、水平方向の周波数変換を実行する。すなわち、水平方向選択部124は、個数が削減された予測残差に対して、変換基底「DST-7」を用いた水平方向の周波数変換を実行する(ステップS105-1)。水平方向選択部124は、個数が削減された予測残差に対して、変換基底「DCT-8」を用いた水平方向の周波数変換を実行する(ステップS105-2)。
【0072】
以下、変換基底「DST-7」が用いられることによって導出された水平方向の変換係数群は、「h_Coeff_DST7」と表記される。変換基底「DCT-8」が用いられることによって導出された水平方向の変換係数群は、「h_Coeff_DCT8」と表記される。
【0073】
水平方向選択部124は、変換係数群「h_Coeff_DST7」の絶対値和「|h_Coeff_DST7|」を導出する(ステップS106-1)。水平方向選択部124は、変換係数群「h_Coeff_DCT8」の絶対値和「|h_Coeff_DCT8|」を導出する(ステップS106-2)。
【0074】
水平方向選択部124は、絶対値和「|h_Coeff_DST7|」と絶対値和「|h_Coeff_DCT8|」との大小を比較する(ステップS107)。周波数変換領域の一部に動画像信号の成分が集められることによって、空間的な相関が動画像信号から除去される。この場合、周波数変換後の変換係数が一部の低周波成分に集中するほど、量子化処理の影響を受けにくく、符号化効率が高まる。また、変換係数の値が小さいほど、符号化に必要な情報量が少なくなる。そこで、水平方向選択部124は、異なる変換基底を用いて得られたそれぞれの変換係数(ここで、低周波から高周波までの各周波成分に変換係数がある)の絶対値和を比較する。変換係数の絶対値和がより小さい変換基底を水平方向選択部124が選択することによって、符号化効率がより高くなる変換基底が選択される。
【0075】
絶対値和「|h_Coeff_DST7|」が絶対値和「|h_Coeff_DCT8|」未満である場合(ステップS107:YES)、水平方向選択部124は、より小さい絶対値和に基づいて選択された変換基底「DST-7」を、変換基底のパラメータ「Tr_h」に代入する。水平方向選択部124は、大小比較の結果として選択された変換基底の水平方向の変換係数を、パラメータ「h_Coeff_Best」に代入する(ステップS108)。
【0076】
絶対値和「|h_Coeff_DST7|」が絶対値和「|h_Coeff_DCT8|」以上である場合(ステップS107:NO)、水平方向選択部124は、より小さい絶対値和に基づいて選択された変換基底「DCT-8」を、変換基底のパラメータ「Tr_h」に代入する。水平方向選択部124は、大小比較の結果として選択された変換基底の水平方向の変換係数群を、パラメータ「h_Coeff_Best」に代入する(ステップS109)。
【0077】
図5は、実施形態における、垂直方向選択部125の動作例を示すフローチャートである。垂直方向選択部125は、水平方向選択部124によって導出された水平方向の変換係数群「h_Coeff_Best」に対して、垂直方向の周波数変換を、所定の複数の変換基底を用いて実行する。
【0078】
図4に示されたステップS108が実行された場合、ステップS108に続いて、ステップS110からステップ118までが実行される。垂直方向選択部125は、個数が削減された予測残差に対して、変換基底「DST-7」を用いた垂直方向の周波数変換を実行する(ステップS110-1)。垂直方向選択部125は、個数が削減された予測残差に対して、変換基底「DCT-8」を用いた垂直方向の周波数変換を実行する(ステップS110-2)。
【0079】
以下、変換基底「DST-7」が用いられることによって導出された垂直方向の変換係数群は、「vh_Coeff_DST7」と表記される。変換基底「DCT-8」が用いられることによって導出された垂直方向の変換係数群は、「vh_Coeff_DCT8」と表記される。
【0080】
垂直方向選択部125は、垂直方向の変換係数群「vh_Coeff_DST7」の絶対値和「|vh_Coeff_DST7|」を導出する(ステップS111-1)。垂直方向選択部125は、垂直方向の変換係数群「vh_Coeff_DCT8」の絶対値和「|vh_Coeff_DCT8|」を導出する(ステップS111-2)。
【0081】
垂直方向選択部125は、絶対値和「|vh_Coeff_DST7|」と絶対値和「|vh_Coeff_DCT8|」との大小を比較する(ステップS112)。
【0082】
絶対値和「|vh_Coeff_DST7|」が絶対値和「|vh_Coeff_DCT8|」未満である場合(ステップS112:YES)、垂直方向選択部125は、より小さい絶対値和に基づいて選択された変換基底「DST-7」を、変換基底のパラメータ「Tr_v」に代入する(ステップS113-1)。
【0083】
絶対値和「|vh_Coeff_DST7|」が絶対値和「|vh_Coeff_DCT8|」以上である場合(ステップS112:NO)、垂直方向選択部125は、より小さい絶対値和に基づいて選択された変換基底「DCT-8」を、変換基底のパラメータ「Tr_v」に代入する(ステップS113-2)。
【0084】
図4に示されたステップS109が実行された場合、ステップS109に続いて、ステップS114からステップ118までが実行される。垂直方向選択部125は、個数が削減された予測残差に対して、変換基底「DST-7」を用いた垂直方向の周波数変換を実行する(ステップS114-1)。垂直方向選択部125は、個数が削減された予測残差に対して、変換基底「DCT-8」を用いた垂直方向の周波数変換を実行する(ステップS114-2)。
【0085】
垂直方向選択部125は、変換係数群「vh_Coeff_DST7」の絶対値和「|vh_Coeff_DST7|」を導出する(ステップS115-1)。垂直方向選択部125は、変換係数群「vh_Coeff_DCT8」の絶対値和「|vh_Coeff_DCT8|」を導出する(ステップS115-2)。
【0086】
垂直方向選択部125は、絶対値和「|vh_Coeff_DST7|」と絶対値和「|vh_Coeff_DCT8|」との大小を比較する(ステップS116)。
【0087】
絶対値和「|vh_Coeff_DST7|」が絶対値和「|vh_Coeff_DCT8|」未満である場合(ステップS116:YES)、垂直方向選択部125は、より小さい絶対値和に基づいて選択された変換基底「DST-7」を、変換基底のパラメータ「Tr_v」に代入する(ステップS117-1)。
【0088】
絶対値和「|vh_Coeff_DST7|」が絶対値和「|vh_Coeff_DCT8|」以上である場合(ステップS116:NO)、垂直方向選択部125は、より小さい絶対値和に基づいて選択された変換基底「DCT-8」を、変換基底のパラメータ「Tr_v」に代入する(ステップS117-2)。
【0089】
このような絞込処理によって、垂直方向選択部125は、水平方向及び垂直方向に関して4通りの変換基底のうちから、「(水平,垂直)=(Tr_h,Tr_v)」という1個の変換基底を選択する。
【0090】
垂直方向選択部125は、周波数の変換基底の組み合わせリスト「TrMtxList」に、「(水平,垂直)=(Tr_h,Tr_v)」という1個の変換基底を含める(ステップS118)。これによって、周波数の変換基底の組み合わせリスト「TrMtxList」では、「(水平、垂直)=(DCT-2、DCT-2)」と、「(水平、垂直)=(Tr_h、Tr_v)」という2通りの変換基底の組み合わせに絞り込まれる。
【0091】
次に、予測残差の縮小信号を生成する処理(図4に示されたステップS104)の詳細を説明する。
図6は、実施形態における、サブブロック分割部122と代表値導出部123との動作例を示すフローチャートである。サブブロック分割部122は、予測残差を含むCUのサイズが「N×N」であるブロック30(N×Nブロック)を、「S_1×S_1」のサイズのサブブロック31と、「S_2×S_2」のサイズのサブブロック32とに分割する。ここで、「S_1<S_2」と、「S_2=2×S_1」とが成立している(ステップS201)。
【0092】
サブブロック分割部122は、「s_1[0]」から「s_1[m_1-1]」までの「m_1=(N×N)/(S_1×S_1)」個のサブブロック31を生成する。サブブロック分割部122は、「s_2[0]」から「s_2[m_2-1]」までの「m_2=(N×N)/(S_2×S_2)」個のサブブロック32を生成する(ステップS202)。
【0093】
代表値導出部123は、サブブロック「s_1[i](iは、0から「m_1-1」までの整数)」ごとに、サブブロック31の予測残差の平均値「s_1_ave[i]」を、代表値として導出する(ステップS203)。
【0094】
代表値導出部123は、サブブロック「s_2[j](jは、0から「m_2-1」までの整数)」ごとに、サブブロック32が内包する4個のサブブロック31「s_1[i]」の予測残差の平均値「s_1_ave[i]」の分散値「s_2_in_var[j]」を、代表値として導出する。図3では、代表値導出部123は、平均値「s_1_ave[0]」と平均値「s_1_ave[1]」と平均値「s_1_ave[4]」と平均値「s_1_ave[5]」とを用いて、例えば分散値「s_2_in_Var[0]」を、代表値を導出する(ステップS204)。
【0095】
図3では、代表ブロックとしてのサブブロック32-0「s_2[0]」における予測残差の平均値「s_2_ave[0]」は、「s_2_ave[0]=(s_1_ave[0]+s_1_ave[1]+s_1_ave[4]+s_1_ave[5])/4」である。代表ブロックとしてのサブブロック32-1「s_2[1]」における予測残差の平均値「s_2_ave[1]」は、「s_2_ave[1]=(s_1_ave[2]+s_1_ave[3]+s_1_ave[6]+s_1_ave[7])/4」である。
【0096】
図3では、代表ブロックとしてのサブブロック32-2「s_2[2]」における予測残差の平均値「s_2_ave[2]」は、「s_2_ave[2]=(s_1_ave[8]+s_1_ave[9]+s_1_ave[12]+s_1_ave[13])/4」である。代表ブロックとしてのサブブロック32-3「s_2[3]」における予測残差の平均値「s_2_ave[3]」は、「s_2_ave[3]=(s_1_ave[10]+s_1_ave[11]+s_1_ave[14]+s_1_ave[15])/4」である。
【0097】
代表値導出部123は、分散値「s_2_in_var[j]」が閾値「ThVar」以下であるか否かを判定する(ステップS205)。分散値「s_2_in_var[j]」が所定の閾値「ThVar」以下である場合(ステップS205:YES)、サブブロック「s_2」を構成する4個のサブブロック31「s_1[i]」の間で、各予測残差のばらつきが少なく、各予測残差が互いに近い値である。
【0098】
このような場合、サイズ「N×N」のブロック30がサイズ「S_2×S_2」のサブブロック32に分割されたとしても、サイズ「N×N」のブロック30がサイズ「S_1×S_1」のサブブロック31に分割された場合における予測残差の縮小信号と同様の縮小信号を、代表値導出部123が導出することが可能である。また、周波数変換の対象とされるサブブロックのサイズを代表値導出部123が更に小さくすることによって、処理量をさらに削減することが可能である。
【0099】
代表値導出部123は、サブブロック「s_1[i]」の予測残差の平均値「s_1_ave[i]」に基づいて、サブブロック「s_2[j]」の予測残差の平均値「s_2_ave[j]」を導出する(ステップS206)。代表値導出部123は、サイズ「N/S_2×N/S_2」のサブブロック31「s_2[j]」を、水平方向選択部124に出力する(ステップS207)。
【0100】
分散値「s_2_in_var[j]」が所定の閾値「ThVar」を超える場合(ステップS205:NO)、予測残差信号がさらに縮小されると(予測残差の個数がさらに削減されると)、予測残差の特徴が失われてしまう可能性があるので、代表値導出部123は、サイズ「N/S_1×N/S_1」のサブブロック31「s_1[i]」を、水平方向選択部124に出力する(ステップS208)。
【0101】
以上のように、サブブロック分割部122は、符号化対象の画像に定められた符号化単位のブロックを、複数のサブブロックに分割する。代表値導出部123は、サブブロックごとに代表値を導出する。水平方向選択部124及び垂直方向選択部125は、互いに隣接する複数のサブブロックから構成される代表ブロックにおける複数の代表値に基づいて、変換基底の組み合わせを複数の組み合わせのうちから選択する。変換処理部126は、選択された組み合わせを用いて、符号化単位のブロックごとに周波数変換処理を実行する。
【0102】
このように、最終的な変換モードを変換処理部126が複数の周波数変換モードのうちから選択する際に、変換処理部126は、符号化対象の画像に定められたブロックのサブブロックごとの代表値を用いて、変換基底「DST-7」と変換基底「DCT-8」との組み合わせを絞り込む。変換処理部126は、絞り込まれた組み合わせとDCT-2とについて、コスト値を導出する。変換処理部126は、コスト値に基づいて変換モードを選択する。これによって、変換基底を選択するための処理量を削減することが可能である。
【0103】
水平方向選択部124は、代表ブロックの水平方向について変換基底を選択する。垂直方向選択部125は、水平方向について選択された変換基底を用いて、変換係数を代表値から変換する。垂直方向選択部125は、水平方向について選択された変換基底を用いて代表値から変換された変換係数に基づいて、垂直方向について変換基底を複数の候補の中から選択する。垂直方向選択部125は、水平方向について選択された変換基底と、垂直方向について選択された変換基底とを、変換基底の組み合わせとして選択する。変換処理部126は、「DST-7」と「DCT-8」との4通りの組み合わせのうちから選択された変換基底の組み合わせと、これら4通りの組み合わせ以外の変換基底の組み合わせ「(DCT-2,DCT-2)」とのうちのいずれかを用いて、符号化単位のブロック(CU)ごとに周波数変換処理を実行してもよい。
【0104】
符号化装置1は、複数の周波数変換組み合わせを用いて、変換対象元の予測残差信号の縮小信号(縮小予測残差信号)を導出する。符号化装置1は、水平方向の変換基底と垂直方向の変換基底とを縮小信号に対して段階的に絞り込むことによって、変換基底を決定する。これによって、周波数の変換基底選択に関わる処理量を削減することが可能である。
【0105】
特に大きなサイズのCUに対してMTS処理が実行される場合、周波数変換の対象とされた予測残差のパターンによらず、MTSの変換基底を水平方向と垂直方向とで段階的に絞り込む。これによって、変換基底の選択処理を固定処理量で符号化装置1が実行し、MTSでの変換基底を決定するための処理量を削減することが可能である。
【0106】
図7は、実施形態における、符号化装置1のハードウェア構成例を示す図である。符号化装置1の各機能部のうちの一部又は全部は、CPU(Central Processing Unit)等のプロセッサ100が、不揮発性の記録媒体(非一時的な記録媒体)を有する記憶部200に記憶されたプログラムを実行することにより、ソフトウェアとして実現される。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置などの非一時的な記録媒体である。通信部300は、符号化装置1による処理結果を外部装置(不図示)に送信する。通信部300は、通信回線を経由してプログラムを受信してもよい。表示部400は、符号化装置1による処理結果を表示する。表示部400は、例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイである。
【0107】
符号化装置1の各機能部のうちの一部又は全部は、例えば、LSI(Large Scale Integration circuit)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field Programmable Gate Array)等を用いた電子回路(electronic circuit又はcircuitry)を含むハードウェアを用いて実現されてもよい。
【0108】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0109】
本発明は、符号化等の画像処理を動画像に対して実行する装置に適用可能である。
【符号の説明】
【0110】
1…符号化装置、10…ブロック分割部、11…残差信号生成部、12…周波数変換部、13…量子化部、14…エントロピー符号化部、15…逆量子化部、16…逆周波数変換部、17…復号画像生成部、18…ループフィルタ処理部、19…参照画像バッファ部、20…イントラ予測部、21…インター予測部、22…予測画像生成部、30…ブロック、31…サブブロック、32…サブブロック、100…プロセッサ、121…判定部、122…サブブロック分割部、123…代表値導出部、124…水平方向選択部、125…垂直方向選択部、126…変換処理部、200…記憶部、300…通信部、400…表示部
図1
図2
図3
図4
図5
図6
図7