JP6248648B2 - 情報処理装置、符号化単位の選択方法、及びプログラム - Google Patents

情報処理装置、符号化単位の選択方法、及びプログラム Download PDF

Info

Publication number
JP6248648B2
JP6248648B2 JP2014009998A JP2014009998A JP6248648B2 JP 6248648 B2 JP6248648 B2 JP 6248648B2 JP 2014009998 A JP2014009998 A JP 2014009998A JP 2014009998 A JP2014009998 A JP 2014009998A JP 6248648 B2 JP6248648 B2 JP 6248648B2
Authority
JP
Japan
Prior art keywords
region
area
adjacent
similarity
unit
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.)
Expired - Fee Related
Application number
JP2014009998A
Other languages
English (en)
Other versions
JP2015139117A (ja
Inventor
芳 印
芳 印
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014009998A priority Critical patent/JP6248648B2/ja
Publication of JP2015139117A publication Critical patent/JP2015139117A/ja
Application granted granted Critical
Publication of JP6248648B2 publication Critical patent/JP6248648B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、情報処理装置、符号化単位の選択方法、及びプログラムに関する。
デジタル放送や映像記録などの分野では、AVC(Advanced Video Coding)/H.264と呼ばれる標準規格で規定された動画圧縮技術(以下、AVC方式)が広く利用されている。近年、この標準規格の後継であるHEVC(High Efficiency Video Coding)/H.265と呼ばれる動画圧縮技術(以下、HEVC方式)に注目が集まっている。HEVC方式は、AVC方式に比べて2倍の圧縮率を実現することを目指している。
上記のような高い圧縮率を実現するため、HEVC方式では、符号化の単位となるブロックの決め方に柔軟性を持たせる工夫が追加された。AVC方式では、16×16ピクセルのマクロブロックを単位としてピクチャを分割し、そのマクロブロックを符号化の単位として利用していた。HEVC方式では、CTU(Coding Tree Unit)と呼ばれる固定サイズのブロックを単位としてピクチャを分割し、さらにCTUをCU(Coding Unit)と呼ばれる単位に分割する。このCUが符号化の単位となる。
CTUの分割は、画像の特徴に応じて再帰的に行われる。つまり、CTUを4つのブロックに分割し、さらに、分割して得られたブロックをさらに4つのブロックに分割する処理を繰り返し行って画像の特徴に適したサイズのCUが決定される。なお、CUのサイズは、64×64ピクセル(CU depth 0)、32×32ピクセル(CU depth 1)、16×16ピクセル(CU depth 2)、8×8ピクセル(CU depth 3)のいずれかである。このような分割の仕組みを四分木(Quad Tree)ブロック分割と呼ぶ場合がある。
四分木ブロック分割を採用することで、例えば、物体の輪郭などのエッジ部及びその近傍を小さなCU単位で符号化し、空などの平坦な部分を大きなCU単位で符号化することが可能になる。その結果、符号量を抑えつつ、高画質を実現することが可能になる。また、HEVC方式では、CU毎に設定されたPU(Prediction Unit)と呼ばれるブロックを単位としてフレーム間予測符号化(以下、インター予測)が行われる。各CUには、少なくとも1つのPUが設定される。
PUは、CUと同一の領域(分割なし)、CUを縦方向又は横方向に2分割した領域、CUを縦方向又は横方向に1対3又は3対1の割合で分割(以下、非対称分割)した領域のいずれかに設定される。つまり、7種類の分割方法で得られるPUをインター予測に利用することができる。また、上記のようにCUのサイズが4種類あるため、HEVC方式では、合計で28種類のPUをインター予測に利用することができる。
以下、CUと同一の領域に設定されたPUをPU[2N×2N]と表記する。また、CUを縦方向に2分割した領域のPUをPU[N×2N]と表記する。また、CUを横方向に2分割した領域のPUをPU[2N×N]と表記する。また、CUを縦方向に非対称分割した領域のうち、左側のPUをPU[nL×2N]と表記し、右側のPUをPU[nR×2N]と表記する。また、CUを横方向に非対称分割した領域のうち、上側のPUをPU[2N×nU]と表記し、下側のPUをPU[2N×nD]と表記する。
このように、HEVC方式では、様々なサイズの単位ブロック(PU)をインター予測に利用できるため、AVC方式に比べて効率的な動画像の圧縮が可能になる。
ところで、インター予測に関し、現在ブロックと複数個の隣接パーティションとの空間類似度を計算し、空間類似度をもとに選択した少なくとも1つの隣接パーティションの動きベクトルを現在ブロックの動きベクトルと推定する方法が提案されている。また、予測信号と動画像信号との差分情報から生成したコスト値をもとに少なくとも2つの予測モードを選択し、選択した予測モードに関する差分情報の周波数情報をもとに最適な予測モードを選択する方法が提案されている。
特表2010−515399号公報 特開2006−180195号公報
上記のように、様々なサイズのPUを利用することでインター予測の精度を高めることができる。一方、PUの種類が28種類もあるために、好適なPUの種類を選び出す処理にかかる負荷が大きい。そこで、1つの側面によれば、本発明の目的は、予測符号化にかかる演算負荷を低減することが可能な情報処理装置、符号化単位の選択方法、及びプログラムを提供することにある。
本開示の1つの側面によれば、対象ブロックと、対象ブロックに隣接する隣接ブロックとを記憶する記憶部と、対象ブロックの中で隣接ブロックとの境界に接する第1領域と、隣接ブロックの中で境界に接する隣接領域との類似性を評価し、第1領域と、対象ブロックの中で第1領域に接する第2領域との類似性を評価し、第1領域と隣接領域との類似性が、第1領域と第2領域との類似性よりも高い場合に、第1領域、及び対象ブロックの中から第1領域を除いた領域を予測符号化の単位の候補とする演算部とを有する、情報処理装置が提供される。
また、本開示の他の1つの側面によれば、対象ブロックと、対象ブロックに隣接する隣接ブロックとを記憶する記憶部から、対象ブロック及び隣接ブロックの情報を読み出し可能なコンピュータが、対象ブロックの中で隣接ブロックとの境界に接する第1領域と、隣接ブロックの中で境界に接する隣接領域との類似性を評価し、第1領域と、対象ブロックの中で第1領域に接する第2領域との類似性を評価し、第1領域と隣接領域との類似性が、第1領域と第2領域との類似性よりも高い場合に、第1領域、及び対象ブロックの中から第1領域を除いた領域を予測符号化の単位の候補とする符号化単位の選択方法が提供される。
また、本開示の他の1つの側面によれば、対象ブロックと、対象ブロックに隣接する隣接ブロックとを記憶する記憶部から、対象ブロック及び隣接ブロックの情報を読み出し可能なコンピュータに、対象ブロックの中で隣接ブロックとの境界に接する第1領域と、隣接ブロックの中で境界に接する隣接領域との類似性を評価し、第1領域と、対象ブロックの中で第1領域に接する第2領域との類似性を評価し、第1領域と隣接領域との類似性が、第1領域と第2領域との類似性よりも高い場合に、第1領域、及び対象ブロックの中から第1領域を除いた領域を予測符号化の単位の候補とする処理を実行させる、プログラムが提供される。
本発明によれば、予測符号化にかかる演算負荷を低減することができる。
第1実施形態に係る情報処理装置の一例を示した図である。 CUの種類について説明するための図である。 PUの種類について説明するための図である。 PUに基づく動き検出について説明するための図である。 CUの分割処理について説明するための第1のフロー図である。 CUの分割処理について説明するための第2のフロー図である。 第2実施形態に係る情報処理装置が有する機能を実現可能なハードウェアの一例を示した図である。 第2実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。 第2実施形態に係るPUの分割方法(縦方向分割)について説明するための図である。 第2実施形態に係るPUの分割方法(横方向分割)について説明するための図である。 第2実施形態に係る類似性の評価について説明するための図である。 第2実施形態に係る情報処理装置が実行するCUの分割処理について説明するための第1のフロー図である。 第2実施形態に係る情報処理装置が実行するCUの分割処理について説明するための第2のフロー図である。 第2実施形態に係る情報処理装置が実行するCUの分割処理について説明するための第3のフロー図である。 第3実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。 第3実施形態に係るPUの分割方法(縦方向分割)及び類似性の評価について説明するための図である。 第3実施形態に係るPUの分割方法(横方向分割)及び類似性の評価について説明するための図である。
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。図1は、第1実施形態に係る情報処理装置の一例を示した図である。なお、図1に例示した情報処理装置10は、第1実施形態に係る情報処理装置の一例である。
図1に示すように、情報処理装置10は、記憶部11及び演算部12を有する。
なお、記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置である。演算部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。但し、演算部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路であってもよい。演算部12は、例えば、記憶部11又は他のメモリに記憶されたプログラムを実行する。
記憶部11は、対象ブロックBLoと、対象ブロックBLoに隣接する隣接ブロックBLnとを記憶する。対象ブロックBLoは、例えば、符号化対象のCUである。隣接ブロックBLnは、例えば、対象ブロックBLoに隣接するCUである。図1の例では、説明の都合上、対象ブロックBLoの上側に位置する1つの隣接ブロックBLnだけを示している。もちろん、対象ブロックBLoの下側、左側、右側に隣接するブロックに対しても第1実施形態に係る技術を同様に適用することができる。
演算部12は、対象ブロックBLoの中で隣接ブロックBLnとの境界に接する第1領域A1と、隣接ブロックBLnの中で境界に接する隣接領域Anとの類似性を評価する。図1の例では、対象ブロックBLoのサイズがN×Nピクセルである。また、第1領域A1及び隣接領域Anのサイズは、N×(N/4)ピクセルである。演算部12は、例えば、ピクセル毎に、第1領域A1の輝度と隣接領域Anの輝度との間の差分絶対値和を計算する。そして、演算部12は、差分絶対値和が小さいほど類似性が高いと評価する。
また、演算部12は、第1領域A1と、対象ブロックBLoの中で第1領域A1に接する第2領域A2との類似性を評価する。図1の例では、第2領域A2のサイズは、N×(N/4)ピクセルである。演算部12は、例えば、ピクセル毎に、第1領域A1の輝度と第2領域A2の輝度との間の差分絶対値和を計算する。そして、演算部12は、差分絶対値和が小さいほど類似性が高いと評価する。なお、輝度の差分絶対値和を類似性の評価に利用する方法を例示したが、色差を利用する方法や領域の平坦度などを利用する方法も適用可能である。
演算部12は、第1領域A1と隣接領域Anとの類似性が、第1領域A1と第2領域A2との類似性よりも高い場合に、第1領域A1、及び対象ブロックBLoの中から第1領域A1を除いた領域A5を予測符号化の単位の候補とする。また、演算部12は、第1領域A1と隣接領域Anとの類似性が、第1領域A1と第2領域A2との類似性よりも低い場合に、第1領域A1と第2領域A2とを結合した第3領域A3を予測符号化の単位の候補とする。さらに、演算部12は、対象ブロックBLoの中から第3領域A3を除いた領域A4を予測符号化の単位の候補とする。
例えば、第1領域A1と第2領域A2との類似性に対する評価の高さをEV12と表記し、第1領域A1と隣接領域Anとの類似性に対する評価の高さをEV1nと表記する。演算部12は、評価EV12が評価EV1nよりも高いか否かを判定する。そして、評価EV12が評価EV1nよりも低い場合、演算部12は、第1領域A1及び領域A5を予測符号化の単位の候補とする。一方、評価EV12が評価EV1nよりも高い場合、演算部12は、第3領域A3及び領域A4を予測符号化の単位の候補とする。なお、予測符号化の単位は、例えば、PUである。
例えば、予測符号化の単位を選択する方法として、対象ブロックBLoを上下に2分割する方法と、上下に1対3の割合で分割する方法とがある場合に、上記の仕組みを適用すれば、類似性の評価に基づいて一方の方法に絞り込まれる。例えば、予測符号化の単位がPUである場合、動き検出に基づく評価の対象となるPUの種類が絞り込まれる。その結果、好適なPUを選出する処理の負担が軽減され、予測符号化にかかる演算負荷が低減される。なお、対象ブロックBLoの下側、右側、左側に位置する隣接ブロックについても同様の処理を実行することで、さらに効果が高まる。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、HEVC方式におけるPUの決定方法(CUの分割方法)に関する。
[2−1.CUの分割方法]
図2〜図6を参照しながら、CUの分割方法について説明する。
(CUの種類(CU depth))
HEVC方式では、輝度成分及び色差成分を有するピクチャを固定サイズのCTU単位で分割し、CTU単位で符号化や復号が行われる。CTUは、輝度成分のCTB(Coding Tree Block)と色差成分のCTBとを含む。CTBは、DCT(Discrete Cosine Transform)変換や量子化などの処理単位となるサブブロックである。CTBのサイズには、16×16ピクセル、32×32ピクセル、64×64ピクセルの3種類がある。CTUは、図2に示すように、四分木形式で階層的に分割される。なお、図2は、CUの種類について説明するための図である。
階層の深さは「CU depth」で表現される。最上位の階層は「CU depth 0」と表現される。「CU depth 0」より下位の階層は、順に「CU depth 1」、「CU depth 2」、「CU depth 3」と表現される。CTUのサイズが64×64である場合、CU depth 0のCUは、サイズが64×64となる。CU depth 1のCUは、サイズが32×32となる。CU depth 2のCUは、サイズが16×16となる。CU depth 3のCUは、サイズが最小の8×8となる。CUの最小サイズは、シーケンスを通じて固定される。
(PUの種類)
PUは、CUを分割した領域に設定される。分割方法(“分割しない”場合も含む。)には、図3に示した7種類の方法がある。なお、図3は、PUの種類について説明するための図である。図3の(1)は、CUを分割せずにCU全体をPUとする方法である。CUのサイズが2N×2Nピクセルである場合、PUのサイズも2N×2Nピクセルとなる。この種類をPU[2N×2N]と表記する。図3の(2)は、CUを横方向に2分割した2つの領域をそれぞれPUとする方法である。PUのサイズはN×2Nピクセルとなる。この種類をPU[N×2N]と表記する。
図3の(3)は、CUを縦方向に2分割した2つの領域をそれぞれPUとする方法である。PUのサイズは2N×Nピクセルとなる。この種類をPU[2N×N]と表記する。図3の(4)は、CUを横方向に右側から1対3の割合で2分割した2つの領域をそれぞれPUとする方法である。右側に位置するPUのサイズは(N/2)×2Nピクセルとなる。一方、左側に位置するPUのサイズは(3N/2)×2Nピクセルとなる。この種類をPU[nR×2N]と表記する。
図3の(5)は、CUを縦方向に上側から1対3の割合で2分割した2つの領域をそれぞれPUとする方法である。上側に位置するPUのサイズは2N×(N/2)ピクセルとなる。一方、下側に位置するPUのサイズは2N×(3N/2)ピクセルとなる。この種類をPU[2N×nU]と表記する。
図3の(6)は、CUを横方向に左側から1対3の割合で2分割した2つの領域をそれぞれPUとする方法である。左側に位置するPUのサイズは(N/2)×2Nピクセルとなる。一方、右側に位置するPUのサイズは(3N/2)×2Nピクセルとなる。この種類をPU[nL×2N]と表記する。
図3の(7)は、CUを縦方向に下側から1対3の割合で2分割した2つの領域をそれぞれPUとする方法である。下側に位置するPUのサイズは2N×(N/2)ピクセルとなる。一方、上側に位置するPUのサイズは2N×(3N/2)ピクセルとなる。この種類をPU[2N×nD]と表記する。
上記のように、各種PUのサイズはCUのサイズに依存する。CU depth 0の場合、2N=64である。CU depth 1の場合、2N=32である。CU depth 2の場合、2N=16である。CU depth 3の場合、2N=8である。従って、サイズの違いも考慮すると、PUの種類は28通り存在する。
動き検出は、図4に示すように、PUを単位として実行される。なお、図4は、PUに基づく動き検出について説明するための図である。例えば、時刻Tfに対応するフレームfを符号化対象のピクチャとし、時刻Tf-1に対応するフレーム(f−1)を参照ピクチャとする。動き検出の処理では、参照ピクチャ内でPUの位置を1ピクセルずつ移動させながら類似度が計算され、最も類似度が高いブロックが抽出される。そして、そのPUに対する動きベクトルが得られる。
類似度の計算は、例えば、下記の式(1)で定義されるSAD(Sum of Absolute Difference)に基づいて行われる。下記の式(1)において、C(x,y)は、フレームfの座標(x,y)における輝度値である。また、R(i+x,j+y)は、フレーム(f−1)の座標(i+x,j+y)における輝度値である。なお、SADの代わりにSSD(Sum of Squared Difference)を利用する方法も考えられる。また、輝度値以外の画素値を利用する方法も考えられる。
Figure 0006248648
SADが小さいほど類似度が高く、SADが大きいほど類似度が低い。従って、動き検出においては、上記のSADが最小となる参照ピクチャのブロックが抽出される。HEVC方式では、このような動き検出をPUの種類毎に何度も行って好適なPUを決める。
(分割処理の一例)
例えば、好適なPUの決定(CUの分割処理)は、図5及び図6に例示した処理フローに基づいて実現可能である。図5は、CUの分割処理について説明するための第1のフロー図である。図6は、CUの分割処理について説明するための第2のフロー図である。なお、ここでは、ある符号化装置が図5及び図6に示した処理を実行するものと仮定して説明を進める。
(S11)符号化装置は、CU depthを指定する。例えば、CUの分割処理を開始した直後の場合、符号化装置は、CU depth 0を指定する。また、CU depth k(k>0)を既に指定済みの場合、符号化装置は、CU depth (k+1)を指定する。
(S12)符号化装置は、1つのCUを選択し、選択したCUを対象CU(CUO)とする。このとき、符号化装置は、未だ選択されていないCUの中から1つのCUを選択して対象CUとする。
(S13)符号化装置は、対象CUをPU[2N×2N]のPUに分割する。なお、対象CUとPU[2N×2N]のPUとは同じサイズである。そのため、PUの数は1つである。符号化装置は、分割で得たPUを単位として動き検出を行い、PU毎に評価値を計算する。評価値としては、例えば、ME(Motion Estimation)コストが用いられる。
MEコストとは、動きベクトルを表す符号量や参照画像を指定するために使う符号量の見積り値である。例えば、MEコストは、下記の式(2)で表現される。但し、Ωは、PUを符号化する際に用いる候補モードの全体集合を表す。SADは、上記の式(1)で定義される差分絶対値和である。λは、ラグランジュ未定乗数である。Rは、モードModeで符号化した場合の総符号量である。なお、ここではSADに基づくMEコストを例示したが、SSEに基づくMEコストを評価値として利用することも可能である。
MEコスト(Mode∈Ω) = SAD + λ・R
…(2)
(S14)符号化装置は、対象CUをPU[2N×N]のPUに分割する。この場合、PUは上側PUと下側PUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[2N×N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S15)符号化装置は、対象CUをPU[N×2N]のPUに分割する。この場合、PUは左側PUと右側PUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[N×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S16)符号化装置は、PU[2N×2N]に対応する評価値、PU[2N×N]に対応する評価値、PU[N×2N]に対応する評価値を比較し、評価値が最小となる分割方法を選択する。例えば、PU[2N×2N]に対応する評価値が最小である場合、符号化装置は、分割方法としてPU[2N×2N]を選択する。
(S17)符号化装置は、S16の処理で、PU[2N×2N]の評価値が最小であったか否かを判定する。PU[2N×2N]の評価値が最小であった場合、処理はS18へと進む。PU[2N×2N]の評価値が最小でなかった場合、処理は、図6のS22へと進む。
(S18)符号化装置は、対象CUをPU[2N×nU]のPUに分割する。この場合、PUは上側1/4のPUと下側3/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[2N×nU]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S19)符号化装置は、対象CUをPU[2N×nD]のPUに分割する。この場合、PUは上側3/4のPUと下側1/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[2N×nD]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S20)符号化装置は、対象CUをPU[nL×2N]のPUに分割する。この場合、PUは左側1/4のPUと右側3/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[nL×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。S20の処理が完了すると、処理は、図6のS21へと進む。
(S21)符号化装置は、対象CUをPU[nR×2N]のPUに分割する。この場合、PUは左側3/4のPUと右側1/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[nR×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。S21の処理が完了すると、処理はS27へと進む。
(S22)符号化装置は、S16の処理で、PU[2N×N]の評価値が最小であったか否かを判定する。PU[2N×N]の評価値が最小であった場合、処理はS23へと進む。PU[2N×N]の評価値が最小でなかった場合、処理はS25へと進む。
(S23)符号化装置は、対象CUをPU[2N×nU]のPUに分割する。この場合、PUは上側1/4のPUと下側3/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[2N×nU]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S24)符号化装置は、対象CUをPU[2N×nD]のPUに分割する。この場合、PUは上側3/4のPUと下側1/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[2N×nD]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S25)符号化装置は、対象CUをPU[nL×2N]のPUに分割する。この場合、PUは左側1/4のPUと右側3/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[nL×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S26)符号化装置は、対象CUをPU[nR×2N]のPUに分割する。この場合、PUは左側3/4のPUと右側1/4のPUとに分割される。符号化装置は、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、符号化装置は、PU毎に計算した評価値の合計値をPU[nR×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S27)符号化装置は、計算した評価値の中で最小の評価値に対応する分割方法を選択し、その評価値を保存する。例えば、S16の処理でPU[2N×2N]の評価値が最小であると判定した場合について考える。この場合、符号化装置は、PU[2N×2N]の評価値、PU[2N×nU]の評価値、PU[2N×nD]の評価値、PU[nL×2N]の評価値、PU[nR×2N]の評価値を比較し、最小の評価値に対応する分割方法を選択する。
また、S16の処理でPU[2N×N]の評価値が最小であると判定した場合、符号化装置は、PU[2N×N]の評価値、PU[2N×nU]の評価値、PU[2N×nD]の評価値を比較し、最小の評価値に対応する分割方法を選択する。また、S16の処理でPU[N×2N]の評価値が最小であると判定した場合、符号化装置は、PU[N×2N]の評価値、PU[nL×2N]の評価値、PU[nR×2N]の評価値を比較し、最小の評価値に対応する分割方法を選択する。
(S28)符号化装置は、全てのCUを選択したか否かを判定する。指定されたCU depthについて全てのCUが選択済みの場合、処理はS29へと進む。一方、指定されたCU depthについて選択済みではないCUが存在する場合、処理は、図5のS12へと進む。
(S29)符号化装置は、全てのCU depthを指定したか否かを判定する。CU depth 0からCU depth 3まで全てのCU depthが指定済みの場合、処理はS30へと進む。一方、指定済みではないCU depthが存在する場合、処理は、図5のS11へと進む。
(S30)符号化装置は、CU depth毎に、保存した評価値を合計した評価値合計を計算し、評価値合計が最小となるCU depthを選択する。S30の処理が完了すると、図5及び図6に示した一連の処理は終了する。
図5及び図6に例示した処理フローは、CUの分割を実現する方法の一例である。以下の説明において、この処理フローで示したCUの分割方法よりも効率の良いCUの分割方法及びその分割方法を実現可能な情報処理装置100の機能などについて述べる。
以上、CUの分割方法について説明した。
[2−2.ハードウェア]
ここで、図7を参照しながら、後述する情報処理装置100が有する機能を実現可能なハードウェアについて説明する。情報処理装置100は、第2実施形態に係る情報処理装置の一例である。なお、図7は、第2実施形態に係る情報処理装置が有する機能を実現可能なハードウェアの一例を示した図である。
情報処理装置100が有する機能は、例えば、図7に示すハードウェア資源を用いて実現することが可能である。つまり、情報処理装置100が有する機能は、コンピュータプログラムを用いて図7に示すハードウェアを制御することにより実現される。
図7に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
出力部918としては、例えば、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、又はELD(Electro-Luminescence Display)などのディスプレイ装置が用いられる。また、出力部918として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部918は、情報を視覚的又は聴覚的に出力することが可能な装置である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSD(Solid State Drive)やRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子など、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、プリンタなどが用いられる。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN(Local Area Network)用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、放送網、衛星通信回線などを含む。
以上、情報処理装置100のハードウェアについて説明した。なお、上述した符号化装置の機能も図7に例示したハードウェアを用いて実現可能である。
[2−3.情報処理装置の機能]
次に、図8を参照しながら、情報処理装置100の機能について説明する。なお、図8は、第2実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
図8に示すように、情報処理装置100は、減算器101、整数変換部102、量子化部103、及びエントロピー符号化部104を有する。また、情報処理装置100は、逆量子化部105、逆整数変換部106、加算器107、フィルタ108、及びフレームメモリ109を有する。さらに、情報処理装置100は、イントラ予測部110、差分計算部111、PU決定部112、動き検出部113、動き補償部114、及び切り替え部115を有する。
なお、減算器101、整数変換部102、量子化部103、エントロピー符号化部104、逆量子化部105、逆整数変換部106、加算器107、フィルタ108の機能は、上述したCPU902などを用いて実現できる。また、イントラ予測部110、差分計算部111、PU決定部112、動き検出部113、動き補償部114、及び切り替え部115の機能は、上述したCPU902などを用いて実現できる。また、フレームメモリ109の機能は、上述したRAM906や記憶部920などを用いて実現できる。
情報処理装置100には、符号化対象の動画フレームに対応する画像データ(以下、入力画像データ)が入力される。入力画像データは、減算器101に入力される。また、減算器101には、動き補償により生成された予測画像データが入力される。減算器101は、入力画像データから予測画像データを減算して予測誤差信号を生成する。予測誤差信号は、整数変換部102に入力される。
整数変換部102は、予測誤差信号を整数変換して係数信号を生成する。例えば、整数変換部102は、整数精度が4×4、8×8、16×16、32×32のDCT変換を実行し、予測誤差信号の周波数成分に対応するDCT係数の集合(係数信号)を生成する。係数信号は、量子化部103に入力される。量子化部103は、係数信号を量子化して量子化データを生成する。量子化データは、エントロピー符号化部104及び逆量子化部105に入力される。
エントロピー符号化部104には、後述するイントラ予測部110及び動き検出部113の出力データも入力される。エントロピー符号化部104は、量子化データ、イントラ予測部110の出力データ、及び動き検出部113の出力データ(例えば、動きベクトルの情報)をエントロピー符号化して符号化データを生成する。なお、エントロピー符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる符号化方法である。
逆量子化部105は、入力された量子化データを逆量子化して係数信号を復元する。復元された係数信号は、逆整数変換部106に入力される。逆整数変換部106は、入力された係数信号に逆整数変換を施して予測誤差信号を復元する。復元された予測誤差信号は、減算器101から出力された予測誤差信号と同等の信号である。逆整数変換部106により復元された予測誤差信号は、加算器107に入力される。また、加算器107には、動き補償により生成された予測画像データが入力される。
加算器107は、入力された予測誤差信号と予測画像データとを加算して参照画像信号(参照ピクチャのPUに相当)を生成する。参照画像信号は、フィルタ108及びイントラ予測部110に入力される。フィルタ108は、参照画像信号に対してデブロッキングフィルタ、SAO(Sample Adaptive Offset)、ALF(Adaptive Loop Filter)の処理を施してブロックノイズの発生を抑制する。フィルタ108で処理された参照画像信号は、フレームメモリ109に格納される。イントラ予測部110は、イントラ予測により同じ画像内の周辺画素から予測画像データを生成する。
差分計算部111は、対象CUと、対象CUに隣接するCU(以下、隣接CU)との境界付近に位置するブロック間の類似度を表す差分情報を生成する。差分情報は、PU決定部112に入力される。PU決定部112は、差分情報に基づいて対象CUの分割方法(利用するPUの種類)を絞り込む。PU決定部112が実行する処理の内容については後述する。PU決定部112により絞り込まれた対象CUの分割方法を表す情報(以下、候補PU情報)は、動き検出部113に入力される。
動き検出部113は、入力画像データ、フレームメモリ109から読み出した参照画像信号、及び候補PU情報を用いて動きベクトルを検出する。動き検出部113により検出された動きベクトルは、動き補償部114に入力される。動き補償部114は、入力された動きベクトルに基づき、フレームメモリ109から読み出した参照画像信号に動き補償を施して予測画像データを生成する。切り替え部115は、イントラ予測部110又は動き補償部114を選択し、選択した要素が出力した予測画像データを減算器101及び加算器107に入力する。
(差分計算部111及びPU決定部112の機能について)
ここで、図9及び図10を参照しながら、差分計算部111及びPU決定部112の機能について、さらに説明する。なお、図9は、第2実施形態に係るPUの分割方法(縦方向分割)について説明するための図である。図10は、第2実施形態に係るPUの分割方法(横方向分割)について説明するための図である。
(縦方向分割について)
まず、図9を参照しながら、対象CUの縦方向分割(PU[2N×N]、PU[2N×nU]、PU[2N×nD])について考える。なお、対象CUをCUO、CUOの上側に位置する隣接CUをCUU、CUOの下側に位置する隣接CUをCUDと表記する。また、各CUのサイズは2N×2Nである。
また、CUUの下側1/4を占める領域をRU、CUOの上側1/4を占める領域をR1、R1の下側に隣接する2N×(N/2)の領域をR2と表記する。さらに、CUDの上側1/4を占める領域をRD、CUOの下側1/4を占める領域をR3、R3の上側に隣接する2N×(N/2)の領域をR4と表記する。RUとR1とは、CUUとCUOとの間の境界で接する。また、R3とRDとは、CUOとCUDとの境界で接する。
差分計算部111は、RUとR1との差分を計算する。この差分は、RUとR1との類似性を評価するための評価値の一例である。例えば、差分計算部111は、RUとR1との差分として、RUに含まれる画素の輝度値YUと、R1に含まれる画素の輝度値Y1との差分絶対値和DY1U(下記の式(3)を参照)を計算する。但し、S1は、R1に含まれる全画素の座標を集めた集合を表す。
また、差分計算部111は、R1とR2との差分を計算する。この差分は、R1とR2との類似性を評価するための評価値の一例である。例えば、差分計算部111は、R1とR2との差分として、R1に含まれる画素の輝度値Y1と、R2に含まれる画素の輝度値Y2との差分絶対値和DY12(下記の式(4)を参照)を計算する。
Figure 0006248648
Figure 0006248648
また、差分計算部111は、R3とRDとの差分を計算する。この差分は、R3とRDとの類似性を評価するための評価値の一例である。例えば、差分計算部111は、R3とRDとの差分として、R3に含まれる画素の輝度値Y3と、RDに含まれる画素の輝度値YDとの差分絶対値和DY3D(下記の式(5)を参照)を計算する。但し、S3は、R3に含まれる全画素の座標を集めた集合を表す。
また、差分計算部111は、R3とR4との差分を計算する。この差分は、R3とR4との類似性を評価するための評価値の一例である。例えば、差分計算部111は、R3とR4との差分として、R3に含まれる画素の輝度値Y3と、R4に含まれる画素の輝度値Y4との差分絶対値和DY34(下記の式(6)を参照)を計算する。
Figure 0006248648
Figure 0006248648
差分計算部111により計算されたDY1U、DY12、DY3D、DY34は、PU決定部112に入力される。PU決定部112は、DY1U、DY12、DY3D、DY34を比較する。比較結果は、例えば、下記の4つのケースに分けられる。
(ケース#1:DY1U<DY12、かつ、DY3D<DY34
ケース#1は、R2よりもRUの方がR1に類似しており、かつ、R4よりもRDの方がR3に類似しているケースである。DY1U<DY12、かつ、DY3D<DY34の場合、PU決定部112は、DY1UとDY3Dとを比較する。DY1U<DY3Dの場合、PU決定部112は、縦方向分割に関する分割方法の候補としてPU[2N×nU]を選択する。一方、DY1U>DY3Dの場合、PU決定部112は、縦方向分割に関する分割方法の候補としてPU[2N×nD]を選択する。
(ケース#2:DY1U<DY12、かつ、DY3D>DY34
ケース#2は、R2よりもRUの方がR1に類似しており、かつ、RDよりもR4の方がR3に類似しているケースである。DY1U<DY12、かつ、DY3D>DY34の場合、PU決定部112は、縦方向分割に関する分割方法の候補としてPU[2N×nU]を選択する。
(ケース#3:DY1U>DY12、かつ、DY3D<DY34
ケース#3は、RUよりもR2の方がR1に類似しており、かつ、R4よりもRDの方がR3に類似しているケースである。DY1U>DY12、かつ、DY3D<DY34の場合、PU決定部112は、縦方向分割に関する分割方法の候補としてPU[2N×nD]を選択する。
(ケース#4:DY1U>DY12、かつ、DY3D>DY34
ケース#4は、RUよりもR2の方がR1に類似しており、かつ、RDよりもR4の方がR3に類似しているケースである。DY1U>DY12、かつ、DY3D>DY34の場合、PU決定部112は、縦方向分割に関する分割方法の候補としてPU[2N×N]を選択する。
上記の方法により、差分計算部111及びPU決定部112の機能によって、縦方向分割に関する対象CUの分割方法が1つの候補に絞り込まれる。
(横方向分割について)
次に、図10を参照しながら、対象CUの横方向分割(PU[N×2N]、PU[nR×2N]、PU[nL×2N])について考える。なお、対象CUをCUO、CUOの右側に位置する隣接CUをCUR、CUOの左側に位置する隣接CUをCULと表記する。また、各CUのサイズは2N×2Nである。
また、CURの左側1/4を占める領域をRR、CUOの右側1/4を占める領域をR5、R5の左側に隣接する(N/2)×2Nの領域をR6と表記する。さらに、CULの右側1/4を占める領域をRL、CUOの左側1/4を占める領域をR7、R7の右側に隣接する(N/2)×2Nの領域をR8と表記する。RRとR5とは、CURとCUOとの間の境界で接する。また、R7とRLとは、CUOとCULとの境界で接する。
差分計算部111は、RRとR5との差分を計算する。この差分は、RRとR5との類似性を評価するための評価値の一例である。例えば、差分計算部111は、RRとR5との差分として、RRに含まれる画素の輝度値YRと、R5に含まれる画素の輝度値Y5との差分絶対値和DY5R(下記の式(7)を参照)を計算する。但し、S5は、R5に含まれる全画素の座標を集めた集合を表す。
また、差分計算部111は、R5とR6との差分を計算する。この差分は、R5とR6との類似性を評価するための評価値の一例である。例えば、差分計算部111は、R5とR6との差分として、R5に含まれる画素の輝度値Y5と、R6に含まれる画素の輝度値Y6との差分絶対値和DY56(下記の式(8)を参照)を計算する。
Figure 0006248648
Figure 0006248648
また、差分計算部111は、R7とRLとの差分を計算する。この差分は、R7とRLとの類似性を評価するための評価値の一例である。例えば、差分計算部111は、R7とRLとの差分として、R7に含まれる画素の輝度値Y7と、RLに含まれる画素の輝度値YLとの差分絶対値和DY7L(下記の式(9)を参照)を計算する。但し、S7は、R7に含まれる全画素の座標を集めた集合を表す。
また、差分計算部111は、R7とR8との差分を計算する。この差分は、R7とR8との類似性を評価するための評価値の一例である。例えば、差分計算部111は、R7とR8との差分として、R7に含まれる画素の輝度値Y7と、R8に含まれる画素の輝度値Y8との差分絶対値和DY78(下記の式(10)を参照)を計算する。
Figure 0006248648
Figure 0006248648
差分計算部111により計算されたDY5R、DY56、DY7L、DY78は、PU決定部112に入力される。PU決定部112は、DY5R、DY56、DY7L、DY78を比較する。比較結果は、例えば、下記の4つのケースに分けられる。
(ケース#1:DY5R<DY56、かつ、DY7L<DY78
ケース#1は、R6よりもRRの方がR5に類似しており、かつ、R8よりもRLの方がR7に類似しているケースである。DY5R<DY56、かつ、DY7L<DY78の場合、PU決定部112は、DY5RとDY7Lとを比較する。DY5R<DY7Lの場合、PU決定部112は、横方向分割に関する分割方法の候補としてPU[nR×2N]を選択する。一方、DY5R>DY7Lの場合、PU決定部112は、横方向分割に関する分割方法の候補としてPU[nL×2N]を選択する。
(ケース#2:DY5R<DY56、かつ、DY7L>DY78
ケース#2は、R6よりもRRの方がR5に類似しており、かつ、RLよりもR8の方がR7に類似しているケースである。DY5R<DY56、かつ、DY7L>DY78の場合、PU決定部112は、横方向分割に関する分割方法の候補としてPU[nR×2N]を選択する。
(ケース#3:DY5R>DY56、かつ、DY7L<DY78
ケース#3は、RRよりもR6の方がR5に類似しており、かつ、R8よりもRLの方がR7に類似しているケースである。DY5R>DY56、かつ、DY7L<DY78の場合、PU決定部112は、横方向分割に関する分割方法の候補としてPU[nL×2N]を選択する。
(ケース#4:DY5R>DY56、かつ、DY7L>DY78
ケース#4は、RRよりもR6の方がR5に類似しており、かつ、RLよりもR8の方がR7に類似しているケースである。DY5R>DY56、かつ、DY7L>DY78の場合、PU決定部112は、横方向分割に関する分割方法の候補としてPU[N×2N]を選択する。
上記の方法により、差分計算部111及びPU決定部112の機能によって、横方向分割に関する対象CUの分割方法が1つの候補に絞り込まれる。なお、縦方向分割及び横方向分割に関する対象CUの分割方法に加え、PU[2N×2N]が候補に追加される。PU決定部112は、縦方向分割に関する1つの候補、横方向分割に関する1つの候補、及びPU[2N×2N]に対象CUの分割方法を絞り込む。その結果、PUの種類が低減された分だけ動き検出部113の処理負担が軽減される。
以上、情報処理装置100の機能について説明した。なお、上記の説明では輝度の差分絶対値和を用いて領域間の類似性を評価する方法を紹介したが、第2実施形態に係る技術に適用可能な類似性の評価方法はこれに限定されない。以下、類似性の評価方法について、さらに説明する。
[2−4.類似性の評価]
図11を参照しながら、領域間の類似性を評価する方法について、さらに説明する。図11は、第2実施形態に係る類似性の評価について説明するための図である。ここでは、説明の都合上、図11に示すようなR1とRUとの類似性を評価する方法を例に挙げて説明するが、他の領域間の類似性を評価する方法についても同様である。
(平均輝度の差分絶対値)
1とRUとの差分を平均輝度の差分絶対値で表現する方法について述べる。この方法を採用する場合、差分計算部111は、RUに含まれる全画素の輝度値YUについて平均値AYUを計算する。さらに、差分計算部111は、R1に含まれる画素の輝度値Y1について平均値AY1を計算する。そして、差分計算部111は、AYUとAY1との差分絶対値DAY1Uを計算する。他の領域についても同様である。PU決定部112は、差分計算部111が計算した差分絶対値DAY1Uなどを用いてPUの種類を絞り込む。
(色差の差分絶対値和)
次に、R1とRUとの差分を色差の差分絶対値和で表現する方法について述べる。この方法を採用する場合、差分計算部111は、RUに含まれる画素の色差CU(Cb,Cr)と、R1に含まれる画素の色差C1(Cb,Cr)との差分絶対値和DC1Uを計算する。他の領域についても同様である。PU決定部112は、差分計算部111が計算した差分絶対値和DC1Uなどを用いてPUの種類を絞り込む。
(平均色差の差分絶対値)
次に、R1とRUとの差分を平均色差の差分絶対値で表現する方法について述べる。この方法を採用する場合、差分計算部111は、RUに含まれる全画素の色差CU(Cb,Cr)について平均値ACUを計算する。さらに、差分計算部111は、R1に含まれる画素の色差C1(Cb,Cr)について平均値AC1を計算する。そして、差分計算部111は、ACUとAC1との差分絶対値DAC1Uを計算する。他の領域についても同様である。PU決定部112は、差分計算部111が計算した差分絶対値DAC1Uなどを用いてPUの種類を絞り込む。
(平坦度の差分絶対値)
次に、R1とRUとの差分を平坦度の差分絶対値で表現する方法について述べる。この方法を採用する場合、差分計算部111は、RUの平坦度FU(下記の式(11)を参照)を計算する。さらに、差分計算部111は、R1の平坦度F1(下記の式(12))を計算する。そして、差分計算部111は、FUとF1との差分絶対値DF1Uを計算する。他の領域についても同様である。PU決定部112は、差分計算部111が計算した差分絶対値DF1Uなどを用いてPUの種類を絞り込む。
但し、YUは、RUに含まれる画素の輝度値である。Y1は、R1に含まれる画素の輝度値である。また、AYUは、RUに含まれる全画素の輝度値に関する平均値である。AY1は、R1に含まれる全画素の輝度値に関する平均値である。また、NUは、RUに含まれる画素の総数である。N1は、R1に含まれる画素の総数である。また、SUは、RUに含まれる全画素の座標を集めた集合を表す。S1は、R1に含まれる全画素の座標を集めた集合を表す。
Figure 0006248648
Figure 0006248648
以上、類似性の評価方法について説明した。
[2−5.処理フロー]
次に、図12〜図14を参照しながら、対象CUの分割方法に係る処理の流れについて説明する。図12は、第2実施形態に係る情報処理装置が実行するCUの分割処理について説明するための第1のフロー図である。図13は、第2実施形態に係る情報処理装置が実行するCUの分割処理について説明するための第2のフロー図である。図14は、第2実施形態に係る情報処理装置が実行するCUの分割処理について説明するための第3のフロー図である。
(S101)情報処理装置100は、CU depthを指定する。例えば、CUの分割処理を開始した直後の場合、情報処理装置100は、CU depth 0を指定する。また、CU depth k(k>0)を既に指定済みの場合、情報処理装置100は、CU depth (k+1)を指定する。
(S102)情報処理装置100は、1つのCUを選択し、選択したCUを対象CU(CUO)とする。このとき、情報処理装置100は、未だ選択されていないCUの中から1つのCUを選択して対象CUとする。
(S103)情報処理装置100は、差分計算部111の機能により、対象CUの上下に位置する隣接CUを参照し、対象CUと隣接CUとの境界で接する対象CUの領域と隣接CUの領域との差分を計算する。例えば、情報処理装置100は、差分計算部111の機能により、図9に例示したRUとR1との差分、R1とR2との差分、R3とRDとの差分、R3とR4との差分を計算する。
(S104)情報処理装置100は、差分計算部111の機能により、対象CUの左右に位置する隣接CUを参照し、対象CUと隣接CUとの境界で接する対象CUの領域と隣接CUの領域との差分を計算する。例えば、情報処理装置100は、差分計算部111の機能により、図10に例示したRRとR5との差分、R5とR6との差分、R7とRLとの差分、R7とR8との差分を計算する。
(S105)情報処理装置100は、PU決定部112の機能により、S103、S104で計算した差分に基づいて縦方向分割に関する分割方法の候補、及び横方向分割に関する分割方法の候補を絞り込む。例えば、情報処理装置100は、PU決定部112の機能により、縦方向分割及び横方向分割のそれぞれについて、上述したケース#1〜#4の分類を行って分割方法の候補を選択する。また、情報処理装置100は、PU決定部112の機能により、PU[2N×2N]を分割方法の候補に含める。
(S106)情報処理装置100は、動き検出部113の機能により、対象CUをPU[2N×2N]のPUに分割する。なお、対象CUとPU[2N×2N]のPUとは同じサイズである。そのため、PUの数は1つである。情報処理装置100は、動き検出部113の機能により、分割で得たPUを単位として動き検出を行い、PU毎に評価値を計算する。評価値としては、例えば、上述したMEコストが用いられる。S106の処理が完了すると、処理は、図13のS107へと進む。
(S107)情報処理装置100は、PU[2N×N]が分割方法の候補として選択されているか否かを判定する。PU[2N×N]が分割方法の候補に含まれる場合、処理は、S108へと進む。一方、PU[2N×N]が分割方法の候補に含まれない場合、処理は、S109へと進む。
(S108)情報処理装置100は、動き検出部113の機能により、対象CUをPU[2N×N]のPUに分割する。この場合、PUは上側1/2のPUと下側1/2のPUとに分割される。情報処理装置100は、動き検出部113の機能により、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、情報処理装置100は、動き検出部113の機能により、PU毎に計算した評価値の合計値をPU[2N×N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。S108の処理が完了すると、処理は、図14のS112へと進む。
(S109)情報処理装置100は、PU[2N×nU]が分割方法の候補として選択されているか否かを判定する。PU[2N×nU]が分割方法の候補に含まれる場合、処理は、S110へと進む。一方、PU[2N×nU]が分割方法の候補に含まれない場合、処理は、S111へと進む。
(S110)情報処理装置100は、動き検出部113の機能により、対象CUをPU[2N×nU]のPUに分割する。この場合、PUは上側1/4のPUと下側3/4のPUとに分割される。情報処理装置100は、動き検出部113の機能により、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、情報処理装置100は、動き検出部113の機能により、PU毎に計算した評価値の合計値をPU[2N×nU]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。S110の処理が完了すると、処理は、図14のS112へと進む。
(S111)情報処理装置100は、動き検出部113の機能により、対象CUをPU[2N×nD]のPUに分割する。この場合、PUは上側3/4のPUと下側1/4のPUとに分割される。情報処理装置100は、動き検出部113の機能により、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、情報処理装置100は、動き検出部113の機能により、PU毎に計算した評価値の合計値をPU[2N×nD]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。S110の処理が完了すると、処理は、図14のS112へと進む。
(S112)情報処理装置100は、PU[N×2N]が分割方法の候補として選択されているか否かを判定する。PU[N×2N]が分割方法の候補に含まれる場合、処理は、S113へと進む。一方、PU[N×2N]が分割方法の候補に含まれない場合、処理は、S114へと進む。
(S113)情報処理装置100は、動き検出部113の機能により、対象CUをPU[N×2N]のPUに分割する。この場合、PUは左側1/2のPUと右側1/2のPUとに分割される。情報処理装置100は、動き検出部113の機能により、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、情報処理装置100は、動き検出部113の機能により、PU毎に計算した評価値の合計値をPU[N×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。S113の処理が完了すると、処理は、S117へと進む。
(S114)情報処理装置100は、PU[nL×2N]が分割方法の候補として選択されているか否かを判定する。PU[nL×2N]が分割方法の候補に含まれる場合、処理は、S115へと進む。一方、PU[nL×2N]が分割方法の候補に含まれない場合、処理は、S116へと進む。
(S115)情報処理装置100は、動き検出部113の機能により、対象CUをPU[nL×2N]のPUに分割する。この場合、PUは左側1/4のPUと右側3/4のPUとに分割される。情報処理装置100は、動き検出部113の機能により、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、情報処理装置100は、動き検出部113の機能により、PU毎に計算した評価値の合計値をPU[nL×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。S115の処理が完了すると、処理は、S117へと進む。
(S116)情報処理装置100は、動き検出部113の機能により、対象CUをPU[nR×2N]のPUに分割する。この場合、PUは左側3/4のPUと右側1/4のPUとに分割される。情報処理装置100は、動き検出部113の機能により、分割で得た2つのPUのそれぞれについて動き検出を行い、PU毎に評価値を計算する。そして、情報処理装置100は、動き検出部113の機能により、PU毎に計算した評価値の合計値をPU[nR×2N]に対応する評価値とする。評価値としては、例えば、上記のMEコストが用いられる。
(S117)情報処理装置100は、動き検出部113の機能により、PU[2N×2N]に対応する評価値、縦方向分割に関する候補の評価値、横方向分割に関する候補の評価値を比較する。そして、情報処理装置100は、動き検出部113の機能により、評価値が最小となる分割方法を選択し、その評価値を保存する。例えば、PU[2N×2N]に対応する評価値が最小である場合、情報処理装置100は、動き検出部113の機能により、PU[2N×2N]の評価値を保存する。
(S118)情報処理装置100は、全てのCUを選択したか否かを判定する。指定されたCU depthについて全てのCUが選択済みの場合、処理はS119へと進む。一方、指定されたCU depthについて選択済みではないCUが存在する場合、処理は、図12のS102へと進む。
(S119)情報処理装置100は、全てのCU depthを指定したか否かを判定する。CU depth 0からCU depth 3まで全てのCU depthが指定済みの場合、処理はS120へと進む。一方、指定済みではないCU depthが存在する場合、処理は、図12のS101へと進む。
(S120)情報処理装置100は、CU depth毎に、保存した評価値を合計した評価値合計を計算する。そして、情報処理装置100は、評価値合計が最小となるCU depthを選択する。S120の処理が完了すると、図12〜図14に示した一連の処理は終了する。
以上、対象CUの分割方法に係る処理の流れについて説明した。
以上説明したように、対象CUと隣接CUとの境界に位置する領域間の類似度、及び対象CUを分割した領域間の類似度に基づいてPUの種類を絞り込むことにより、動き検出及びコスト評価の処理を実行する回数が低減され、符号化処理の負担が軽減される。
以上、第2実施形態について説明した。
<3.第3実施形態>
第3実施形態について説明する。上述した第2実施形態では、比較対象の領域に含まれる画素の画素値(輝度値や色差など)を利用して領域間の類似性を評価した。以下で説明する第3実施形態では、比較対象の領域が有するDC(Direct Current)成分を利用して領域間の類似性を評価する方法を提案する。
(情報処理装置の機能)
図15を参照しながら、情報処理装置200の機能について説明する。情報処理装置200は、第3実施形態に係る情報処理装置の一例である。また、情報処理装置200が有する機能は、図7に例示したハードウェアを用いて実現可能である。なお、図15は、第3実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
図15に示すように、情報処理装置200は、減算器201、整数変換部202、量子化部203、及びエントロピー符号化部204を有する。また、情報処理装置200は、逆量子化部205、逆整数変換部206、加算器207、フィルタ208、及びフレームメモリ209を有する。さらに、情報処理装置200は、イントラ予測部210、DC差分計算部211、PU決定部212、動き検出部213、動き補償部214、及び切り替え部215を有する。
なお、減算器201、整数変換部202、量子化部203、エントロピー符号化部204、逆量子化部205、逆整数変換部206、加算器207、フィルタ208の機能は、上述したCPU902などを用いて実現できる。また、イントラ予測部210、DC差分計算部211、PU決定部212、動き検出部213、動き補償部214、及び切り替え部215の機能は、上述したCPU902などを用いて実現できる。また、フレームメモリ209の機能は、上述したRAM906や記憶部920などを用いて実現できる。
情報処理装置200には、符号化対象の動画フレームに対応する画像データ(入力画像データ)が入力される。入力画像データは、減算器201に入力される。また、減算器201には、動き補償により生成された予測画像データが入力される。減算器201は、入力画像データから予測画像データを減算して予測誤差信号を生成する。予測誤差信号は、整数変換部202に入力される。
整数変換部202は、予測誤差信号を整数変換して係数信号を生成する。例えば、整数変換部202は、整数精度が4×4、8×8、16×16、32×32のDCT変換を実行し、予測誤差信号の周波数成分に対応するDCT係数の集合(係数信号)を生成する。係数信号は、量子化部203及びDC差分計算部211に入力される。量子化部203は、係数信号を量子化して量子化データを生成する。量子化データは、エントロピー符号化部204及び逆量子化部205に入力される。
エントロピー符号化部204には、後述するイントラ予測部210及び動き検出部213の出力データも入力される。エントロピー符号化部204は、量子化データ、イントラ予測部210の出力データ、及び動き検出部213の出力データ(例えば、動きベクトルの情報)をエントロピー符号化して符号化データを生成する。なお、エントロピー符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる符号化方法である。
逆量子化部205は、入力された量子化データを逆量子化して係数信号を復元する。復元された係数信号は、逆整数変換部206に入力される。逆整数変換部206は、入力された係数信号に逆整数変換を施して予測誤差信号を復元する。復元された予測誤差信号は、減算器201から出力された予測誤差信号と同等の信号である。逆整数変換部206により復元された予測誤差信号は、加算器207に入力される。また、加算器207には、動き補償により生成された予測画像データが入力される。
加算器207は、入力された予測誤差信号と予測画像データとを加算して参照画像信号(参照ピクチャのPUに相当)を生成する。参照画像信号は、フィルタ208及びイントラ予測部210に入力される。フィルタ208は、参照画像信号に対してデブロッキングフィルタ、SAO(Sample Adaptive Offset)、ALF(Adaptive Loop Filter)の処理を施してブロックノイズの発生を抑制する。フィルタ208で処理された参照画像信号は、フレームメモリ209に格納される。イントラ予測部210は、イントラ予測により同じ画像内の周辺画素から予測画像データを生成する。
DC差分計算部211は、整数変換部202から入力される係数信号のDC成分に基づいて、対象CUと、対象CUに隣接するCU(隣接CU)との境界付近に位置するブロック間の類似度を表す差分情報を生成する。差分情報は、PU決定部212に入力される。PU決定部212は、差分情報に基づいて対象CUの分割方法(利用するPUの種類)を絞り込む。PU決定部212が実行する処理の内容については後述する。PU決定部212により絞り込まれた対象CUの分割方法を表す情報(候補PU情報)は、動き検出部213に入力される。
動き検出部213は、入力画像データ、フレームメモリ209から読み出した参照画像信号、及び候補PU情報を用いて動きベクトルを検出する。動き検出部213により検出された動きベクトルは、動き補償部214に入力される。動き補償部214は、入力された動きベクトルに基づき、フレームメモリ209から読み出した参照画像信号に動き補償を施して予測画像データを生成する。切り替え部215は、イントラ予測部210又は動き補償部214を選択し、選択した要素が出力した予測画像データを減算器201及び加算器207に入力する。
(整数変換部202、DC差分計算部211、PU決定部212の機能について)
ここで、図16及び図17を参照しながら、DC差分計算部211及びPU決定部212の機能について、さらに説明する。なお、図16は、第3実施形態に係るPUの分割方法(縦方向分割)及び類似性の評価について説明するための図である。図17は、第3実施形態に係るPUの分割方法(横方向分割)及び類似性の評価について説明するための図である。
(縦方向分割について)
まず、図16を参照しながら、対象CUの縦方向分割(PU[2N×N]、PU[2N×nU]、PU[2N×nD])について考える。なお、対象CUをCUO、CUOの上側に位置する隣接CUをCUU、CUOの下側に位置する隣接CUをCUDと表記する。また、各CUのサイズは2N×2Nである。
また、CUUの下側1/4を占める領域をRU、CUOの上側1/4を占める領域をR1、R1の下側に隣接する2N×(N/2)の領域をR2と表記する。さらに、CUDの上側1/4を占める領域をRD、CUOの下側1/4を占める領域をR3、R3の上側に隣接する2N×(N/2)の領域をR4と表記する。RUとR1とは、CUUとCUOとの間の境界で接する。また、R3とRDとは、CUOとCUDとの境界で接する。
整数変換部202は、RUを4つの矩形ブロックBU1、BU2、BU3、BU4に分割する。また、整数変換部202は、矩形ブロックBU1、BU2、BU3、BU4の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックBU1、BU2、BU3、BU4のそれぞれについて計算した係数信号の中からDC成分(以下、DC値)を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックBU1、BU2、BU3、BU4のDC値を合計し、合計値をRUのDC値VUとする。
また、整数変換部202は、R1を4つの矩形ブロックB11、B12、B13、B14に分割する。また、整数変換部202は、矩形ブロックB11、B12、B13、B14の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB11、B12、B13、B14のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB11、B12、B13、B14のDC値を合計し、合計値をR1のDC値V1とする。
また、整数変換部202は、R2を4つの矩形ブロックB21、B22、B23、B24に分割する。また、整数変換部202は、矩形ブロックB21、B22、B23、B24の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB21、B22、B23、B24のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB21、B22、B23、B24のDC値を合計し、合計値をR2のDC値V2とする。
また、DC差分計算部211は、RUとR1との差分として、RUのDC値VUと、R1のDC値V1との差分絶対値DV1U(DV1U=|VU−V1|)を計算する。また、DC差分計算部211は、R1とR2との差分として、R1のDC値V1と、R2のDC値V2との差分絶対値DV12(DV12=|V1−V2|)を計算する。
また、整数変換部202は、RDを4つの矩形ブロックBD1、BD2、BD3、BD4に分割する。また、整数変換部202は、矩形ブロックBD1、BD2、BD3、BD4の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックBD1、BD2、BD3、BD4のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックBD1、BD2、BD3、BD4のDC値を合計し、合計値をRDのDC値VDとする。
また、整数変換部202は、R3を4つの矩形ブロックB31、B32、B33、B34に分割する。また、整数変換部202は、矩形ブロックB31、B32、B33、B34の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB31、B32、B33、B34のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB31、B32、B33、B34のDC値を合計し、合計値をR3のDC値V3とする。
また、整数変換部202は、R4を4つの矩形ブロックB41、B42、B43、B44に分割する。また、整数変換部202は、矩形ブロックB41、B42、B43、B44の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB41、B42、B43、B44のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB41、B42、B43、B44のDC値を合計し、合計値をR4のDC値V4とする。
また、DC差分計算部211は、RDとR3との差分として、RDのDC値VDと、R3のDC値V3との差分絶対値DV3D(DV3D=|VD−V3|)を計算する。また、DC差分計算部211は、R3とR4との差分として、R3のDC値V3と、R4のDC値V4との差分絶対値DV34(DV34=|V3−V4|)を計算する。
DC差分計算部211により計算されたDV1U、DV12、DV3D、DV34は、PU決定部212に入力される。PU決定部212は、DV1U、DV12、DV3D、DV34を比較する。比較結果は、例えば、下記の4つのケースに分けられる。
(ケース#1:DV1U<DV12、かつ、DV3D<DV34
ケース#1は、R2よりもRUの方がR1に類似しており、かつ、R4よりもRDの方がR3に類似しているケースである。DV1U<DV12、かつ、DV3D<DV34の場合、PU決定部212は、DV1UとDV3Dとを比較する。DV1U<DV3Dの場合、PU決定部212は、縦方向分割に関する分割方法の候補としてPU[2N×nU]を選択する。一方、DV1U>DV3Dの場合、PU決定部212は、縦方向分割に関する分割方法の候補としてPU[2N×nD]を選択する。
(ケース#2:DV1U<DV12、かつ、DV3D>DV34
ケース#2は、R2よりもRUの方がR1に類似しており、かつ、RDよりもR4の方がR3に類似しているケースである。DV1U<DV12、かつ、DV3D>DV34の場合、PU決定部212は、縦方向分割に関する分割方法の候補としてPU[2N×nU]を選択する。
(ケース#3:DV1U>DV12、かつ、DV3D<DV34
ケース#3は、RUよりもR2の方がR1に類似しており、かつ、R4よりもRDの方がR3に類似しているケースである。DV1U>DV12、かつ、DV3D<DV34の場合、PU決定部212は、縦方向分割に関する分割方法の候補としてPU[2N×nD]を選択する。
(ケース#4:DV1U>DV12、かつ、DV3D>DV34
ケース#4は、RUよりもR2の方がR1に類似しており、かつ、RDよりもR4の方がR3に類似しているケースである。DV1U>DV12、かつ、DV3D>DV34の場合、PU決定部212は、縦方向分割に関する分割方法の候補としてPU[2N×N]を選択する。
上記の方法により、縦方向分割に関する対象CUの分割方法が1つの候補に絞り込まれる。
(横方向分割について)
次に、図17を参照しながら、対象CUの縦方向分割(PU[N×2N]、PU[nR×2N]、PU[nL×2N])について考える。なお、対象CUをCUO、CUOの右側に位置する隣接CUをCUR、CUOの左側に位置する隣接CUをCULと表記する。また、各CUのサイズは2N×2Nである。
また、CURの左側1/4を占める領域をRR、CUOの右側1/4を占める領域をR5、R5の左側に隣接する(N/2)×2Nの領域をR6と表記する。さらに、CULの右側1/4を占める領域をRL、CUOの左側1/4を占める領域をR7、R7の右側に隣接する(N/2)×2Nの領域をR8と表記する。RRとR5とは、CURとCUOとの間の境界で接する。また、R7とRLとは、CUOとCULとの境界で接する。
整数変換部202は、RRを4つの矩形ブロックBR1、BR2、BR3、BR4に分割する。また、整数変換部202は、矩形ブロックBR1、BR2、BR3、BR4の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックBR1、BR2、BR3、BR4のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックBR1、BR2、BR3、BR4のDC値を合計し、合計値をRRのDC値VRとする。
また、整数変換部202は、R5を4つの矩形ブロックB51、B52、B53、B54に分割する。また、整数変換部202は、矩形ブロックB51、B52、B53、B54の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB51、B52、B53、B54のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB51、B52、B53、B54のDC値を合計し、合計値をR5のDC値V5とする。
また、整数変換部202は、R6を4つの矩形ブロックB61、B62、B63、B64に分割する。また、整数変換部202は、矩形ブロックB61、B62、B63、B64の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB61、B62、B63、B64のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB61、B62、B63、B64のDC値を合計し、合計値をR6のDC値V6とする。
また、DC差分計算部211は、RRとR5との差分として、RRのDC値VRと、R5のDC値V5との差分絶対値DV5R(DV5R=|VR−V5|)を計算する。また、DC差分計算部211は、R5とR6との差分として、R5のDC値V5と、R6のDC値V6との差分絶対値DV56(DV56=|V5−V6|)を計算する。
また、整数変換部202は、RLを4つの矩形ブロックBL1、BL2、BL3、BL4に分割する。また、整数変換部202は、矩形ブロックBL1、BL2、BL3、BL4の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックBL1、BL2、BL3、BL4のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックBL1、BL2、BL3、BL4のDC値を合計し、合計値をRLのDC値VLとする。
また、整数変換部202は、R7を4つの矩形ブロックB71、B72、B73、B74に分割する。また、整数変換部202は、矩形ブロックB71、B72、B73、B74の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB71、B72、B73、B74のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB71、B72、B73、B74のDC値を合計し、合計値をR7のDC値V7とする。
また、整数変換部202は、R8を4つの矩形ブロックB81、B82、B83、B84に分割する。また、整数変換部202は、矩形ブロックB81、B82、B83、B84の画素値をそれぞれDCT変換して係数信号を生成する。さらに、整数変換部202は、矩形ブロックB81、B82、B83、B84のDC値を抽出してDC差分計算部211に入力する。DC差分計算部211は、矩形ブロックB81、B82、B83、B84のDC値を合計し、合計値をR8のDC値V8とする。
また、DC差分計算部211は、RLとR7との差分として、RLのDC値VLと、R7のDC値V7との差分絶対値DV7L(DV7L=|VL−V7|)を計算する。また、DC差分計算部211は、R7とR8との差分として、R7のDC値V7と、R8のDC値V8との差分絶対値DV78(DV78=|V7−V8|)を計算する。
DC差分計算部211により計算されたDV5R、DV56、DV7L、DV78は、PU決定部212に入力される。PU決定部212は、DV5R、DV56、DV7L、DV78を比較する。比較結果は、例えば、下記の4つのケースに分けられる。
(ケース#1:DV5R<DV56、かつ、DV7L<DV78
ケース#1は、R6よりもRRの方がR5に類似しており、かつ、R8よりもRLの方がR7に類似しているケースである。DV5R<DV56、かつ、DV7L<DV78の場合、PU決定部212は、DV5RとDV7Lとを比較する。DV5R<DV7Lの場合、PU決定部212は、横方向分割に関する分割方法の候補としてPU[nR×2N]を選択する。一方、DV5R>DV7Lの場合、PU決定部212は、横方向分割に関する分割方法の候補としてPU[nL×2N]を選択する。
(ケース#2:DV5R<DV56、かつ、DV7L>DV78
ケース#2は、R6よりもRRの方がR5に類似しており、かつ、RLよりもR8の方がR7に類似しているケースである。DV5R<DV56、かつ、DV7L>DV78の場合、PU決定部212は、横方向分割に関する分割方法の候補としてPU[nR×2N]を選択する。
(ケース#3:DV5R>DV56、かつ、DV7L<DV78
ケース#3は、RRよりもR6の方がR5に類似しており、かつ、R8よりもRLの方がR7に類似しているケースである。DV5R>DV56、かつ、DV7L<DV78の場合、PU決定部212は、横方向分割に関する分割方法の候補としてPU[nL×2N]を選択する。
(ケース#4:DV5R>DV56、かつ、DV7L>DV78
ケース#4は、RRよりもR6の方がR5に類似しており、かつ、RLよりもR8の方がR7に類似しているケースである。DV5R>DV56、かつ、DV7L>DV78の場合、PU決定部212は、横方向分割に関する分割方法の候補としてPU[N×2N]を選択する。
上記の方法により、横方向分割に関する対象CUの分割方法が1つの候補に絞り込まれる。なお、縦方向分割及び横方向分割に関する対象CUの分割方法に加え、PU[2N×2N]が候補に追加される。PU決定部212は、縦方向分割に関する1つの候補、横方向分割に関する1つの候補、及びPU[2N×2N]に対象CUの分割方法を絞り込む。その結果、PUの種類が低減された分だけ動き検出部213の処理負担が軽減される。
以上、情報処理装置200の機能について説明した。上記の説明においては、領域毎に全ブロックのDC値を合計した合計値を各領域のDC値として利用する方法を例示したが、例えば、DC値の合計に代えてDC値の平均値を利用するなどの変形も可能である。また、ブロック毎に計算されたDC値の差分絶対値和を用いて領域間の類似度を評価する方法も考えられる。このような変形例についても第3実施形態の技術的範囲に属する。
(処理フローについて)
ここで、第3実施形態に係る対象CUの分割処理について述べる。第3実施形態に係る対象CUの分割処理フローは、図12〜図14に示した第2実施形態に係る処理フローのうち、S103、S104、S105の処理をDC値に基づく処理に変形したものとなる。つまり、領域間の類似性を評価する方法が上述した方法に変形される。その他の処理については実質的に同じであるため、詳細な説明を省略する。
以上、第3実施形態について説明した。
以上、添付図面を参照しながら好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、様々な変形例や修正例に想到し得ることは明らかであり、こうした変形例や修正例についても当然に本発明の技術的範囲に属することは言うまでもない。
<4.付記>
以上説明した実施形態に関し、さらに以下の付記を開示する。
(付記1) 対象ブロックと、前記対象ブロックに隣接する隣接ブロックとを記憶する記憶部と、
前記対象ブロックの中で前記隣接ブロックとの境界に接する第1領域と、前記隣接ブロックの中で前記境界に接する隣接領域との類似性を評価し、前記第1領域と、前記対象ブロックの中で前記第1領域に接する第2領域との類似性を評価し、
前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも高い場合に、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とする演算部と
を有する、情報処理装置。
(付記2) 前記演算部は、前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも低い場合に、前記第1領域と前記第2領域とを結合した第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を予測符号化の単位の候補とする
付記1に記載の情報処理装置。
(付記3) 前記第1領域は、前記対象ブロックの中で前記境界側に1/4を占める領域であり、
前記第2領域及び前記隣接領域は、前記第1領域と同じサイズの領域である
付記1又は2に記載の情報処理装置。
(付記4) 前記記憶部は、第1の方向に向かって前記対象ブロックに隣接する第1の隣接ブロックと、前記第1の方向に直交する第2の方向に向かって前記対象ブロックに隣接する第2の隣接ブロックとを記憶し、
前記演算部は、前記第1の隣接ブロック及び前記第2の隣接ブロックのそれぞれについて、前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性を評価し、前記予測符号化の単位の候補を決定する
付記1〜3のいずれかに記載の情報処理装置。
(付記5) 前記演算部は、前記第1領域に含まれる画素の輝度と前記隣接領域に含まれる画素の輝度との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域に含まれる画素の輝度と前記第2領域に含まれる画素の輝度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記1〜4のいずれかに記載の情報処理装置。
(付記6) 前記演算部は、前記第1領域に含まれる画素の色差と前記隣接領域に含まれる画素の色差との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域に含まれる画素の輝度と前記第2領域に含まれる画素の輝度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記1〜4のいずれかに記載の情報処理装置。
(付記7) 前記演算部は、前記第1領域の平坦度と前記隣接領域の平坦度との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域の平坦度と前記第2領域の平坦度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記1〜4のいずれかに記載の情報処理装置。
(付記8) 前記演算部は、前記第1領域が有する直流成分の値と前記隣接領域が有する直流成分の値との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域が有する直流成分の値と前記第2領域が有する直流成分の値との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記1〜4のいずれかに記載の情報処理装置。
(付記9) 前記記憶部は、前記対象ブロックの上側に隣接する上側の隣接ブロックと、前記対象ブロックの下側に隣接する下側の隣接ブロックとを記憶し、
前記演算部は、
前記上側の隣接ブロック及び前記下側の隣接ブロックのそれぞれについて、前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性を評価し、前記第1領域との類似性が最も高い領域を抽出し、
前記類似性が最も高い領域の組として、前記上側の隣接ブロックに接する前記第1領域と前記上側の隣接ブロックの前記隣接領域とを抽出した場合、当該第1領域、及び前記対象ブロックの中から当該第1領域を除いた領域を前記予測符号化の単位の候補とし、
前記類似性が最も高い領域の組として、前記下側の隣接ブロックに接する前記第1領域と前記下側の隣接ブロックの前記隣接領域とを抽出した場合、当該第1領域、及び前記対象ブロックの中から当該第1領域を除いた領域を前記予測符号化の単位の候補とし、
前記類似性が最も高い領域の組として、前記第1領域と前記第2領域とを抽出した場合、前記第1領域と前記第2領域とを結合した第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を前記予測符号化の単位の候補とする
付記1に記載の情報処理装置。
(付記10) 前記記憶部は、前記対象ブロックの左側に隣接する左側の隣接ブロックと、前記対象ブロックの右側に隣接する右側の隣接ブロックとを記憶し、
前記演算部は、
前記左側の隣接ブロック及び前記右側の隣接ブロックのそれぞれについて、前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性を評価し、前記第1領域との類似性が最も高い領域を抽出し、
前記類似性が最も高い領域の組として、前記左側の隣接ブロックに接する前記第1領域と前記左側の隣接ブロックの前記隣接領域とを抽出した場合、当該第1領域、及び前記対象ブロックの中から当該第1領域を除いた領域を前記予測符号化の単位の候補とし、
前記類似性が最も高い領域の組として、前記右側の隣接ブロックに接する前記第1領域と前記右側の隣接ブロックの前記隣接領域とを抽出した場合、当該第1領域、及び前記対象ブロックの中から当該第1領域を除いた領域を前記予測符号化の単位の候補とし、
前記類似性が最も高い領域の組として、前記第1領域と前記第2領域とを抽出した場合、前記第1領域と前記第2領域とを結合した第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を前記予測符号化の単位の候補とする
付記1又は9に記載の情報処理装置。
(付記11) 対象ブロックと、前記対象ブロックに隣接する隣接ブロックとを記憶する記憶部から、前記対象ブロック及び前記隣接ブロックの情報を読み出し可能なコンピュータが、
前記対象ブロックの中で前記隣接ブロックとの境界に接する第1領域と、前記隣接ブロックの中で前記境界に接する隣接領域との類似性を評価し、前記第1領域と、前記対象ブロックの中で前記第1領域に接する第2領域との類似性を評価し、
前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも高い場合に、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とする
符号化単位の選択方法。
(付記12) 前記コンピュータが、
前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも低い場合に、前記第1領域と前記第2領域とを結合した第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を予測符号化の単位の候補とする
付記11に記載の符号化単位の選択方法。
(付記13) 前記第1領域は、前記対象ブロックの中で前記境界側に1/4を占める領域であり、
前記第2領域及び前記隣接領域は、前記第1領域と同じサイズの領域である
付記11又は12に記載の符号化単位の選択方法。
(付記14) 前記記憶部は、第1の方向に向かって前記対象ブロックに隣接する第1の隣接ブロックと、前記第1の方向に直交する第2の方向に向かって前記対象ブロックに隣接する第2の隣接ブロックとを記憶し、
前記コンピュータが、
前記第1の隣接ブロック及び前記第2の隣接ブロックのそれぞれについて、前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性を評価し、前記予測符号化の単位の候補を決定する
付記11〜13のいずれかに記載の符号化単位の選択方法。
(付記15) 前記コンピュータが、
前記第1領域に含まれる画素の輝度と前記隣接領域に含まれる画素の輝度との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域に含まれる画素の輝度と前記第2領域に含まれる画素の輝度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記11〜14のいずれかに記載の符号化単位の選択方法。
(付記16) 前記コンピュータが、
前記第1領域に含まれる画素の色差と前記隣接領域に含まれる画素の色差との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域に含まれる画素の輝度と前記第2領域に含まれる画素の輝度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記11〜14のいずれかに記載の符号化単位の選択方法。
(付記17) 前記コンピュータが、
前記第1領域の平坦度と前記隣接領域の平坦度との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域の平坦度と前記第2領域の平坦度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記11〜14のいずれかに記載の符号化単位の選択方法。
(付記18) 前記コンピュータが、
前記第1領域が有する直流成分の値と前記隣接領域が有する直流成分の値との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域が有する直流成分の値と前記第2領域が有する直流成分の値との差に基づいて前記第1領域と前記第2領域との類似性を評価する
付記11〜14のいずれかに記載の符号化単位の選択方法。
(付記19) 対象ブロックと、前記対象ブロックに隣接する隣接ブロックとを記憶する記憶部から、前記対象ブロック及び前記隣接ブロックの情報を読み出し可能なコンピュータに、
前記対象ブロックの中で前記隣接ブロックとの境界に接する第1領域と、前記隣接ブロックの中で前記境界に接する隣接領域との類似性を評価し、前記第1領域と、前記対象ブロックの中で前記第1領域に接する第2領域との類似性を評価し、
前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも高い場合に、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とする
処理を実行させる、プログラム。
(付記20) 対象ブロックと、前記対象ブロックに隣接する隣接ブロックとを記憶する記憶部から、前記対象ブロック及び前記隣接ブロックの情報を読み出し可能なコンピュータに、
前記対象ブロックの中で前記隣接ブロックとの境界に接する第1領域と、前記隣接ブロックの中で前記境界に接する隣接領域との類似性を評価し、前記第1領域と、前記対象ブロックの中で前記第1領域に接する第2領域との類似性を評価し、
前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも高い場合に、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とする
処理を実行させるプログラムが記録された、コンピュータにより読み取り可能な記録媒体。
10 情報処理装置
11 記憶部
12 演算部
A1 第1領域
A2 第2領域
A3 第3領域
A4 第3領域を除いた領域
A5 第1領域を除いた領域
An 隣接領域
BLo 対象ブロック
BLn 隣接ブロック
EV12、EV1n 評価

Claims (10)

  1. 対象ブロックと、前記対象ブロックに隣接する隣接ブロックとを記憶する記憶部と、
    前記対象ブロックの中で前記隣接ブロックとの境界に接する第1領域と、前記隣接ブロックの中で前記境界に接する隣接領域との類似性を評価し、前記第1領域と、前記対象ブロックの中で前記第1領域に接する第2領域との類似性を評価し、
    前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性に基づいて、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とするか、前記第1領域と前記第2領域とを結合した第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を予測符号化の単位の候補とするかを選択する演算部と
    を有する、情報処理装置。
  2. 前記演算部は、前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも高い場合に、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とし、
    前記第1領域と前記隣接領域との類似性が、前記第1領域と前記第2領域との類似性よりも低い場合に、前記第1領域と前記第2領域とを結合した前記第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を予測符号化の単位の候補とする
    請求項1に記載の情報処理装置。
  3. 前記第1領域は、前記対象ブロックの中で前記境界側に1/4を占める領域であり、
    前記第2領域及び前記隣接領域は、前記第1領域と同じサイズの領域である
    請求項1又は2に記載の情報処理装置。
  4. 前記記憶部は、第1の方向に向かって前記対象ブロックに隣接する第1の隣接ブロックと、前記第1の方向に直交する第2の方向に向かって前記対象ブロックに隣接する第2の隣接ブロックとを記憶し、
    前記演算部は、前記第1の隣接ブロック及び前記第2の隣接ブロックのそれぞれについて、前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性を評価す
    請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 前記演算部は、前記第1領域に含まれる画素の輝度と前記隣接領域に含まれる画素の輝度との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域に含まれる画素の輝度と前記第2領域に含まれる画素の輝度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
    請求項1〜4のいずれか1項に記載の情報処理装置。
  6. 前記演算部は、前記第1領域に含まれる画素の色差と前記隣接領域に含まれる画素の色差との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域に含まれる画素の色差と前記第2領域に含まれる画素の色差との差に基づいて前記第1領域と前記第2領域との類似性を評価する
    請求項1〜4のいずれか1項に記載の情報処理装置。
  7. 前記演算部は、前記第1領域の平坦度と前記隣接領域の平坦度との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域の平坦度と前記第2領域の平坦度との差に基づいて前記第1領域と前記第2領域との類似性を評価する
    請求項1〜4のいずれか1項に記載の情報処理装置。
  8. 前記演算部は、前記第1領域が有する直流成分の値と前記隣接領域が有する直流成分の値との差に基づいて前記第1領域と前記隣接領域との類似性を評価し、前記第1領域が有する直流成分の値と前記第2領域が有する直流成分の値との差に基づいて前記第1領域と前記第2領域との類似性を評価する
    請求項1〜4のいずれか1項に記載の情報処理装置。
  9. コンピュータが、
    対象ブロックと、前記対象ブロックに隣接する隣接ブロックとを記憶する記憶部から、前記対象ブロック及び前記隣接ブロックの情報を読み出し、
    前記対象ブロックの中で前記隣接ブロックとの境界に接する第1領域と、前記隣接ブロックの中で前記境界に接する隣接領域との類似性を評価し、前記第1領域と、前記対象ブロックの中で前記第1領域に接する第2領域との類似性を評価し、
    前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性に基づいて、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とするか、前記第1領域と前記第2領域とを結合した第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を予測符号化の単位の候補とするかを選択する
    符号化単位の選択方法。
  10. 対象ブロックと、前記対象ブロックに隣接する隣接ブロックとを記憶する記憶部から、前記対象ブロック及び前記隣接ブロックの情報を読み出し、
    前記対象ブロックの中で前記隣接ブロックとの境界に接する第1領域と、前記隣接ブロックの中で前記境界に接する隣接領域との類似性を評価し、前記第1領域と、前記対象ブロックの中で前記第1領域に接する第2領域との類似性を評価し、
    前記第1領域と前記隣接領域との類似性及び前記第1領域と前記第2領域との類似性に基づいて、前記第1領域、及び前記対象ブロックの中から前記第1領域を除いた領域を予測符号化の単位の候補とするか、前記第1領域と前記第2領域とを結合した第3領域、及び前記対象ブロックの中から前記第3領域を除いた領域を予測符号化の単位の候補とするかを選択する
    処理をコンピュータに実行させる、プログラム。
JP2014009998A 2014-01-23 2014-01-23 情報処理装置、符号化単位の選択方法、及びプログラム Expired - Fee Related JP6248648B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014009998A JP6248648B2 (ja) 2014-01-23 2014-01-23 情報処理装置、符号化単位の選択方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014009998A JP6248648B2 (ja) 2014-01-23 2014-01-23 情報処理装置、符号化単位の選択方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2015139117A JP2015139117A (ja) 2015-07-30
JP6248648B2 true JP6248648B2 (ja) 2017-12-20

Family

ID=53769850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014009998A Expired - Fee Related JP6248648B2 (ja) 2014-01-23 2014-01-23 情報処理装置、符号化単位の選択方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6248648B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4154647B2 (ja) * 2002-04-04 2008-09-24 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
JP4246723B2 (ja) * 2005-08-29 2009-04-02 日本電信電話株式会社 フレーム内予測符号化制御方法、フレーム内予測符号化制御装置、フレーム内予測符号化制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2011234338A (ja) * 2010-04-07 2011-11-17 Jvc Kenwood Corp 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2012070277A (ja) * 2010-09-24 2012-04-05 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP5206772B2 (ja) * 2010-11-22 2013-06-12 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP5206773B2 (ja) * 2010-11-22 2013-06-12 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2012142865A (ja) * 2011-01-05 2012-07-26 Sony Corp 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
JP2015139117A (ja) 2015-07-30

Similar Documents

Publication Publication Date Title
KR101945894B1 (ko) 픽쳐 예측 방법 및 관련 장치
JP7507169B2 (ja) 適応ループフィルタ処理のための境界ハンドリング
JP2022020630A (ja) 画像の符号化/復号化方法及び装置
RU2696237C2 (ru) Способ декодирования видеосигнала
CN113784132B (zh) 用于帧间预测的运动向量舍入、截取和存储的方法和装置
KR100714698B1 (ko) 향상된 움직임 추정 방법, 상기 방법을 이용한 비디오인코딩 방법 및 장치
WO2014054267A1 (ja) 画像符号化装置及び画像符号化方法
KR20190090728A (ko) 서브블록 기반의 모션 보상을 이용한 비디오 신호 처리 방법 및 장치
KR20190116101A (ko) 어파인 모델 기반의 영상 부호화/복호화 방법 및 장치
KR102495550B1 (ko) 디블로킹 필터 방법 및 장치
JP7482536B2 (ja) 適応的な数の領域を伴う幾何学的分割のための形状適応離散コサイン変換
CN112385233A (zh) 合并的依赖模式的帧内平滑(mdis)与具有依赖位置的帧内预测组合(pdpc)的内插值滤波器切换
KR20180099369A (ko) 비디오 비트율 제어 방법, 및 이를 이용한 영상 부호화 방법 및 장치
US20160057429A1 (en) Coding apparatus, method, computer product, and computer system
CN115834882A (zh) 一种帧内预测方法、装置、电子设备及存储介质
JP6248648B2 (ja) 情報処理装置、符号化単位の選択方法、及びプログラム
JP2013207402A (ja) 画像符号化装置及びプログラム
JP2017073602A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP6200220B2 (ja) 画像処理装置、符号化装置、復号装置、及びプログラム
KR102217225B1 (ko) 인트라 예측 방법 및 장치
EP2899975A1 (en) Video encoder with intra-prediction pre-processing and methods for use therewith
Wang et al. Merging multiple template matching predictions in intra coding with attentive convolutional neural network
JP2018085608A (ja) 画像符号化装置、画像符号化方法及びコンピュータプログラム
KR20070092481A (ko) H.264 동영상 부호화기의 적응적 고속 움직임 추정 방법
WO2021248135A1 (en) Methods and apparatuses for video coding using satd based cost calculation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170831

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171106

R150 Certificate of patent or registration of utility model

Ref document number: 6248648

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees