(57)【要約】【課題】符号化効率の低下を抑えつつ、ＤＭＶＲの実行に必要なメモリや演算処理量や演算回路数を削減すること。【解決手段】本発明に係る画像復号装置２００は、符号化データから動きベクトルを取得するように構成されている動きベクトル復号部２４１Ａと、動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部２４１Ｂとを備える。【選択図】図９
2020108033.tif 000002
【特許請求の範囲】
【請求項１】
符号化データを復号するように構成されている画像復号装置であって、
前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、
前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを特徴とする画像復号装置。
【請求項２】
前記洗練化部は、前記ブロックが第１閾値より大きい場合、前記ブロック内の一部の領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする請求項1に記載の画像復号装置。
【請求項３】
前記洗練化部は、前記第１閾値より大きい前記ブロックにおいて、前記ブロック内部の前記第１閾値より小さな領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする請求項２に記載の画像復号装置。
【請求項４】
前記洗練化部は、前記第１閾値より大きい前記ブロックにおいて、前記ブロック中央の領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする請求項２又は３に記載の画像復号装置。
【請求項５】
前記画像復号装置は、予め定めた処理単位ごとに並列処理を行い、
前記洗練化部は、前記並列処理単位の境界と重ならない領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする請求項２〜４のいずれか一項に記載の画像復号装置。
【請求項６】
前記洗練化部は、前記ブロックが第２閾値より大きい場合、前記ブロック内で前記動きベクトルの洗練化を行わないように構成されていることを特徴とする請求項２〜５のいずれか一項に記載の画像復号装置。
【請求項７】
前記画像復号装置は、予め定めた処理単位ごとに並列処理を行い、
前記第２閾値は、前記処理単位より小さいように構成されていることを特徴とする請求項６に記載の画像復号装置。
【請求項８】
前記洗練化部は、前記ブロックの形状に応じて、前記ブロック内の全ての領域の画素を用いて前記動きベクトルを洗練化するか、前記ブロック内の一部の領域の画素を用いて前記動きベクトルを洗練化するか、前記動きベクトルを洗練化しないかのいずれかの処理を実行するように構成されていることを特徴とする請求項１に記載の画像復号装置。
【請求項９】
前記洗練化部は、前記ブロックの大きさが第１閾値以下である場合、前記ブロック内の全ての領域の画素を用いて、前記動きベクトル洗練化を行うように構成されていることを特徴とする請求項８に記載の画像復号装置。
【請求項１０】
前記ブロックは、予測ブロック又は符号化ブロックのいずれかであることを特徴とする請求項１〜９のいずれか一項に記載の画像復号装置。
【請求項１１】
入力画像信号を符号化することによって符号化データを生成するように構成されている画像符号化装置であって、
対象フレームと参照フレームとの比較によって動きベクトルを探索する動きベクトル探索部と、
前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを特徴とする画像符号化装置。
【請求項１２】
コンピュータを、符号化データを復号するように構成されている画像復号装置として機能させるプログラムであって、
前記画像復号装置は、
前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、
前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを特徴とするプログラム。
【請求項１３】
請求項１〜１０のいずれか一項に記載の画像復号装置と、
請求項１１に記載の画像符号化装置とを備える画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像復号装置、画像符号化装置、プログラム及び画像処理システムに関する。
【背景技術】
【０００２】
非特許文献１及び非特許文献２には、Ｄｅｃｏｄｅｒ-ｓｉｄｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｒｅｆｉｎｅｍｅｎｔ（ＤＭＶＲ：復号側動きベクトル洗練化) という技術に関して、実行時のメモリ使用量及び探索コスト算出量を削減するために、閾値以上のサイズのブロックではＤＭＶＲの適用を禁止する、或いは、閾値以上のサイズのブロックを小さなサブブロックに分割して、サブブロックごとにＤＭＶＲを実行する技術が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】CE9-related: Simplified DMVR with reduced internal memory, JVET-L0098
【非特許文献２】CE9-related : DMVR with Coarse-to-Fine Search and Block Size Limit, JVET-L0382
【非特許文献３】CE9-related: Simplification of Decoder Side Motion Vector Derivation, JVET-K0105
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の従来技術では、単純に大きなブロックでのＤＭＶＲの適用を禁止する場合、閾値によっては禁止しない場合と比較して符号化効率が大きく低下してしまうという問題点があった。
【０００５】
また、上述の従来技術では、サブブロックごとにＤＭＶＲを実行する場合、サブブロックごとに動きベクトルの値が異なる可能性があり、ブロックノイズが発生しやすくなってしまうという問題点があった。
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、符号化効率の低下を抑えつつ、ＤＭＶＲの実行に必要なメモリや演算処理量や演算回路数を削減することができる画像復号装置、画像符号化装置、プログラム及び画像処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の特徴は、符号化データを復号するように構成されている画像復号装置であって、前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを要旨とする。
【０００８】
本発明の第２の特徴は、入力画像信号を符号化することによって符号化データを生成するように構成されている画像符号化装置であって、対象フレームと参照フレームとの比較によって動きベクトルを探索する動きベクトル探索部と、前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを要旨とする。
【０００９】
本発明の第３の特徴は、コンピュータを、符号化データを復号するように構成されている画像復号装置として機能させるプログラムであって、前記画像復号装置は、前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを要旨とする。
【００１０】
本発明の第４の特徴は、上述の第1の特徴に記載されている画像復号装置と、上述の第２の特徴に記載されている画像符号化装置とを備える画像処理システムであることを要旨とする。
【発明の効果】
【００１１】
本発明によれば、符号化効率の低下を抑えつつ、ＤＭＶＲの実行に必要なメモリや演算処理量や演算回路数を削減することができる画像復号装置、画像符号化装置、プログラム及び画像処理システムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る画像処理システム１０の構成の一例を示す図である。
【図２】一実施形態に係る画像処理システム１０の画像符号化装置１００の機能ブロックの一例について示す図である。
【図３】一実施形態に係る画像符号化装置１００のインター予測部１１１の機能ブロックの一例について示す図である。
【図４】一実施形態における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理の手順の一例を示すフローチャートである。
【図５】一実施形態における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理における動きベクトルの洗練化に使用する領域の一例を示す図である。
【図６】一実施形態における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理における動きベクトルの洗練化に使用する領域の一例を示す図である。
【図７】一実施形態における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる動きベクトルの洗練化に使用する領域の形状を決定する手順の一例を示すフローチャートである。
【図８】一実施形態に係る画像処理システム１０の画像復号装置２００の機能ブロックの一例について示す図である。
【図９】一実施形態に係る画像復号装置２００のインター予測部２４１の機能ブロックの一例について示す図である。
【図１０】一実施形態における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理の手順の一例を示すフローチャートである。
【図１１】一変更例における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理の手順の一例を示すフローチャートである。
【図１２】一変更例における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）において用いられるテーブルの一例を示す図である。
【図１３】一変更例における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理の手順の一例を示すフローチャートである。
【図１４】一変更例における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理の手順の一例を示すフローチャートである。
【図１５】一変更例における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理における動きベクトルの洗練化に使用する領域の一例を示す図である。
【発明を実施するための形態】
【００１３】
（第１実施形態）
以下、図１〜図１０を参照して、本発明の第１実施形態に係る画像処理システム１０について説明する。図１は、本実施形態に係る実施形態に係る画像処理システム１０を示す図である。
【００１４】
図１に示すように、画像処理システム１０は、画像符号化装置１００及び画像復号装置２００を有する。
【００１５】
画像符号化装置１００は、入力画像信号を符号化することによって符号化データを生成するように構成されている。画像復号装置２００は、符号化データを復号することによって出力画像信号を生成するように構成されている。
【００１６】
ここで、かかる符号化データは、画像符号化装置１００から画像復号装置２００に対して伝送路を介して送信されてもよい。また、符号化データは、記憶媒体に格納された上で、画像符号化装置１００から画像復号装置２００に提供されてもよい。
【００１７】
（画像符号化装置１００）
以下、図２を参照して、本実施形態に係る画像符号化装置１００について説明する。図２は、本実施形態に係る画像符号化装置１００の機能ブロックの一例について示す図である。
【００１８】
図２に示すように、画像符号化装置１００は、インター予測部１１１と、イントラ予測部１１２と、減算器１２１と、加算器１２２と、変換・量子化部１３１と、逆変換・逆量子化部１３２と、符号化部１４０と、インループフィルタ処理部１５０と、フレームバッファ１６０とを有する。
【００１９】
インター予測部１１１は、インター予測（フレーム間予測）によって予測信号を生成するように構成されている。
【００２０】
具体的には、インター予測部１１１は、符号化対象のフレーム（以下、対象フレーム）とフレームバッファ１６０に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを決定するように構成されている。
【００２１】
また、インター予測部１１１は、参照ブロック及び動きベクトルに基づいて予測ブロックに含まれる予測信号を予測ブロック毎に生成するように構成されている。インター予測部１１１は、予測信号を減算器１２１及び加算器１２２に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
【００２２】
イントラ予測部１１２は、イントラ予測（フレーム内予測）によって予測信号を生成するように構成されている。
【００２３】
具体的には、イントラ予測部１１２は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。また、イントラ予測部１１２は、予測信号を減算器１２１及び加算器１２２に出力するように構成されている。
【００２４】
ここで、参照ブロックは、予測対象のブロック（以下、対象ブロック）について参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
【００２５】
減算器１２１は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部１３１に出力するように構成されている。ここで、減算器１２１は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
【００２６】
加算器１２２は、逆変換・逆量子化部１３２から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部１１２及びインループフィルタ処理部１５０に出力するように構成されている。
【００２７】
ここで、フィルタ処理前復号信号は、イントラ予測部１１２で用いる参照ブロックを構成する。
【００２８】
変換・量子化部１３１は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部１３１は、係数レベル値の量子化を行うように構成されていてもよい。
【００２９】
ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理では、離散コサイン変換（ＤＣＴ；Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）に対応する基底パターン（変換行列）が用いられてもよく、離散サイン変換（ＤＳＴ；Ｄｉｓｃｒｅｔｅ  Ｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）に対応する基底パターン（変換行列）が用いられてもよい。
【００３０】
逆変換・逆量子化部１３２は、変換・量子化部１３１から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部１３２は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【００３１】
ここで、逆変換処理及び逆量子化は、変換・量子化部１３１で行われる変換処理及び量子化とは逆の手順で行われる。
【００３２】
符号化部１４０は、変換・量子化部１３１から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
【００３３】
ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
【００３４】
また、符号化部１４０は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
【００３５】
ここで、制御データは、符号化ブロック（ＣＵ：Ｃｏｄｉｎｇ  Ｕｎｉｔ）サイズ、予測ブロック（ＰＵ：Ｐｒｅｄｉｃｔｉｏｎ  Ｕｎｉｔ）サイズ、変換ブロック（ＴＵ：Ｔｒａｎｓｆｏｒｍ  Ｕｎｉｔ）サイズ等のサイズデータを含んでもよい。
【００３６】
インループフィルタ処理部１５０は、加算器１２２から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ１６０に出力するように構成されている。
【００３７】
ここで、例えば、フィルタ処理は、ブロック（符号化ブロック、予測ブロック又は変換ブロック）の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【００３８】
フレームバッファ１６０は、インター予測部１１１で用いる参照フレームを蓄積するように構成されている。
【００３９】
ここで、フィルタ処理後復号信号は、インター予測部１１１で用いる参照フレームを構成する。
【００４０】
（インター予測部１１１）
以下、図３を参照して、本実施形態に係る画像符号化装置１００のインター予測部１１１について説明する。図３は、本実施形態に係る画像符号化装置１００のインター予測部１１１の機能ブロックの一例について示す図である。
【００４１】
図３に示すように、インター予測部１１１は、動きベクトル探索部１１１Ａと、洗練化部１１１Ｂと、予測信号生成部１１１Ｃとを有する。
【００４２】
インター予測部１１１は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
【００４３】
動きベクトル探索部１１１Ａは、対象フレームと参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを探索するように構成されている。
【００４４】
なお、動きベクトルの探索方法については、既知の手法を採用することが可能であるため、その詳細については省略する。
【００４５】
洗練化部１１１Ｂは、動きベクトルによって特定される参照位置を基準として探索範囲を設定し、探索範囲の中から所定コストが最も小さい修正参照位置を特定し、修正参照位置に基づいて動きベクトルを修正する洗練化処理を実行するように構成されている。
【００４６】
また、洗練化部１１１Ｂは、所定条件が満たされる場合に、かかる洗練化処理を実行するように構成されていてもよい。
【００４７】
ここで、所定条件は、動きベクトルがマージモードで符号化されているという条件を含んでもよい。なお、マージモードは、予測ブロックに隣接する符号化済みブロックの動きベクトルのインデックスのみが伝送されるモードである。また、所定条件は、動きベクトルがアフィン変換を用いた動き補償予測が適用されていないという条件を含んでもよい。
【００４８】
本実施形態では、洗練化部１１１Ｂは、以下の手順で洗練化処理を行うように構成されている。図４は、本実施形態における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂによって行われる洗練化処理の手順の一例を示すフローチャートである。
【００４９】
図４に示すように、ステップＳ１０において、洗練化部１１１Ｂは、上述の所定条件を満足しているか否かについて判定する。
【００５０】
満足していると判定された場合、本手順は、ステップＳ１１に進み、満足していないと判定された場合、本手順は、ステップＳ１５へ進み、本処理を終了する。
【００５１】
ステップＳ１１において、洗練化部１１１Ｂは、現在処理しているブロックのサイズが予め定められている閾値ＴＨ１（第１閾値）以下であるか否かについて判定する。なお、以下では、ブロックの種類として予測ブロックのサイズに応じて処理を制御する手順について説明するが、符号化ブロックのサイズを用いても同様の制御が可能である。
【００５２】
閾値ＴＨ１以下であると判定された場合、本手順は、ステップＳ１３へ進み、閾値ＴＨ１より大きいと判定された場合、本手順は、ステップＳ１２へ進む。
【００５３】
ここで、閾値ＴＨ１は、例えば、ブロックの幅（水平方向の画素数）や、高さ（垂直方向の画素数）や、ブロック内の全画素数（幅と高さとの積)や、それらの組み合わせで定義されることができる。本実施形態では、ブロック内の全画素数で閾値を定義することとし、具体的には、閾値ＴＨ１を１０２４画素と設定した場合を例に以降の処理を説明する。
【００５４】
ステップＳ１２において、洗練化部１１１Ｂは、現在処理している予測ブロックのサイズが予め定められている閾値ＴＨ２（第２閾値）以下であるか否かについて判定する。
【００５５】
閾値ＴＨ２以下であると判定された場合、本手順は、ステップＳ１４に進み、閾値ＴＨ２より大きいと判定された場合、本手順は、ステップＳ１５へ進む。
【００５６】
ここで、閾値ＴＨ２は、閾値ＴＨ１と同様に、例えば、ブロックの幅（水平方向の画素数）や、高さ（垂直方向の画素数）や、ブロック内の全画素数（幅と高さの積）や、それらの組み合わせで定義されることができる。
【００５７】
また、閾値ＴＨ２は、符号化処理及び復号処理の並列処理単位を考慮して設定されることもできる。例えば、予測ブロックの最大サイズが１２８×１２８画素で、並列処理単位が６４×６４画素である場合、閾値ＴＨ２を６４×６４画素或いは４０９６画素と設定することができる。
【００５８】
ステップＳ１３において、洗練化部１１１Ｂは、一般的な方法で動きベクトル洗練化処理を実行する。洗練化部１１１Ｂは、洗練化処理において動きベクトルの探索を行う際は、ブロック内の全領域の画素を用いて処理を行う。なお、動きベクトルの探索方法については、既知の手法を採用することが可能であるため、その詳細については省略する。
【００５９】
ここで、先に「全領域の画素」と記載したが、洗練化部１１１Ｂは、必ずしもブロック内の全ての画素を用いて洗練化処理を行う必要はない。例えば、洗練化部１１１Ｂは、ブロック内の偶数ライン上の画素のみを用いて洗練化処理を行うという演算量及び演算回路の削減手法と組み合わせることもできる。
【００６０】
ステップＳ１４において、洗練化部１１１Ｂは、現在処理している予測ブロック内の一部の領域の画素のみを用いて動きベクトル洗練化処理を実行する。
【００６１】
ここで、洗練化部１１１Ｂは、動きベクトルの洗練化に使用する領域について、予め定めておけばよい。例えば、洗練化部１１１Ｂは、動きベクトルの洗練化に使用する領域として、図５に示すように、ブロック中央の領域を用いてもよいし、図６に示すように、ブロックの左上の領域を用いてもよい。
【００６２】
なお、洗練化部１１１Ｂは、ステップＳ１４の処理が実行され得るブロック形状（ブロックの幅と高さとの組み合わせ）毎に、どの領域を使用するか予め定義しておいてもよいし、領域を一意に決定可能な数式で表現してもよい。
【００６３】
例えば、洗練化部１１１Ｂは、動きベクトルの洗練化に使用する領域を矩形領域とし、始点（矩形の左上の頂点）及び終点（矩形の右下の頂点）の座標をそれぞれ(ｘ, ｙ)の形で表現する場合、始点（ブロックの幅/２-１６, ブロックの高さ/２-１６)及び終点（ブロックの幅/２+１６, ブロックの高さ/２+１６）といったように数式で定義しておくこともできる。
【００６４】
また、例えば、洗練化部１１１Ｂは、動きベクトルの洗練化に使用する領域をブロック中央とし、動きベクトルの洗練化に使用する領域の形状を、図７に示すフローチャートに従って決定することもできる。
【００６５】
図７に示すように、洗練化部１１１Ｂは、ステップＳ１９において、洗練化に使用する領域に関する情報の初期値を設定する。
【００６６】
洗練化に使用する領域に関する情報は、例えば、洗練化に使用する領域の左上の頂点の座標を示すオフセット値（水平方向のオフセット、垂直方向のオフセット）と、洗練化に使用する領域の大きさ（幅、高さ）の４種類の情報から構成される。なお、上述のオフセット値は、現在処理している予測ブロックの左上の頂点の座標からの相対座標を表す。
【００６７】
洗練化に使用する領域を上述のように始点と終点の座標(ｘ, ｙ)で表現すると、始点（水平方向のオフセット, 垂直方向のオフセット）、終点（水平方向のオフセット＋幅, 垂直方向のオフセット＋高さ）となる。
【００６８】
本実施形態は、水平方向と垂直方向のオフセットの初期値をそれぞれ０、幅と高さの初期値を現在処理している予測ブロックの幅と高さの値に、それぞれ設定する。初期値設定後、ステップＳ２０へ進む。ステップＳ２０において、かかる洗練化に使用する領域のサイズが閾値ＴＨ以下であるか否かについて判定する。
【００６９】
閾値ＴＨ以下であると判定された場合、本手順は、ステップＳ２４に進み、かかる洗練化に使用する領域のサイズを確定して終了し、閾値ＴＨより大きいと判定された場合、本手順は、ステップＳ２１に進む。
【００７０】
ステップＳ２１において、洗練化部１１１Ｂは、かかる洗練化に使用する領域の高さと幅の大きさとを比較し、高さが幅以上の場合は、本手順は、ステップＳ２２に進み、幅が高さより大きい場合は、本手順は、ステップＳ２３に進む。
【００７１】
ステップＳ２２において、洗練化部１１１Ｂは、垂直方向のオフセットに高さの１/４の値を加算する。その後、かかる洗練化に使用する領域の高さを１/２の値で更新する。
【００７２】
ステップＳ２３において、洗練化部１１１Ｂは、水平方向のオフセットに幅の１/４の値を加算する。その後、かかる洗練化に使用する領域の幅を１/２の値で更新する。
【００７３】
本手順は、ステップＳ２２又はステップＳ２３が完了した後、ステップＳ２０へ戻り、洗練化部１１１Ｂは、再度、かかる洗練化に使用する領域の大きさを判定する。洗練化部１１１Ｂは、かかる洗練化に使用する領域のサイズが予め設定した閾値以下になるまで、以上の処理を繰り返すことで、かかる洗練化に使用する領域を決定することができる。
【００７４】
なお、ステップＳ１４において、かかる洗練化に使用する領域の大きさが閾値ＴＨ１以下になるように設定されていてもよい。
【００７５】
なお、図１０に示す処理手順でも、図４の処理と同様の処理結果を得ることができる。
【００７６】
図１０の処理では、初めにステップＳ３０において、洗練化部１１１Ｂは、上述の所定条件を満たしており且つ現在処理している予測ブロックの大きさが閾値ＴＨ２以下であるかどうかについて判定する。
【００７７】
これらの条件が全て満たされていると判定された場合、本手順は、ステップＳ３１に進む。また、これらの条件のいずれか一つでも満たされていないと判定された場合、本手順は、ステップＳ１５に進み処理を終了する。
【００７８】
ステップＳ３１では、現在処理している予測ブロックの大きさが閾値ＴＨ１以下であると判定された場合は、本手順は、ステップＳ１３へ進み、そうでない場合は、本手順は、ステップＳ１４へ進む。
【００７９】
以降の処理は、上述の図４の説明と同様である。
【００８０】
予測信号生成部１１１Ｃは、動きベクトルに基づいて予測信号を生成するように構成されている。具体的には、予測信号生成部１１１Ｃは、動きベクトルが修正されない場合には、動きベクトル探索部１１１Ａから入力される動きベクトルに基づいて予測信号を生成するように構成されている。一方で、予測信号生成部１１１Ｃは、動きベクトルが修正される場合には、洗練化部１１１Ｂから入力される修正済みの動きベクトルに基づいて予測信号を生成するように構成されている。
【００８１】
（画像復号装置２００）
以下、図８を参照して、本実施形態に係る画像復号装置２００について説明する。図８は、本実施形態に係る画像復号装置２００の機能ブロックの一例について示す図である。
【００８２】
図８に示すように、画像復号装置２００は、復号部２１０と、逆変換・逆量子化部２２０と、加算器２３０と、インター予測部２４１と、イントラ予測部２４２と、インループフィルタ処理部２５０と、フレームバッファ２６０とを有する。
【００８３】
復号部２１０は、画像符号化装置１００によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
【００８４】
ここで、例えば、復号は、符号化部１４０で行われるエントロピー符号化とは逆の手順のエントロピー復号である。
【００８５】
復号部２１０は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。
【００８６】
なお、上述したように、制御データは、符号化ブロックサイズ、予測ブロックサイズ、変換ブロックサイズ等のサイズデータを含んでもよい。なお、制御データは、第２成分の予測サンプルの生成に用いる入力ソースを示す情報要素を含んでもよい。
【００８７】
逆変換・逆量子化部２２０は、復号部２１０から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部２２０は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【００８８】
ここで、逆変換処理及び逆量子化は、変換・量子化部１３１で行われる変換処理及び量子化とは逆の手順で行われる。
【００８９】
加算器２３０は、逆変換・逆量子化部２２０から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部２４２及びインループフィルタ処理部２５０に出力するように構成されている。
【００９０】
ここで、フィルタ処理前復号信号は、イントラ予測部２４２で用いる参照ブロックを構成する。
【００９１】
インター予測部２４１は、インター予測部１１１と同様に、インター予測（フレーム間予測）によって予測信号を生成するように構成されている。
【００９２】
具体的には、インター予測部２４１は、符号化データから復号した動きベクトルと参照フレームに含まれる参照信号に基づいて予測信号を予測ブロック毎に生成するように構成されている。インター予測部２４１は、予測信号を加算器２３０に出力するように構成されている。
【００９３】
イントラ予測部２４２は、イントラ予測部１１２と同様に、イントラ予測（フレーム内予測）によって予測信号を生成するように構成されている。
【００９４】
具体的には、イントラ予測部２４２は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部２４２は、予測信号を加算器２３０に出力するように構成されている。
【００９５】
インループフィルタ処理部２５０は、インループフィルタ処理部１５０と同様に、加算器２３０から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ２６０に出力するように構成されている。
【００９６】
ここで、例えば、フィルタ処理は、ブロック（符号化ブロック、予測ブロック又は変換ブロック）の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【００９７】
フレームバッファ２６０は、フレームバッファ１６０と同様に、インター予測部２４１で用いる参照フレームを蓄積するように構成されている。
【００９８】
ここで、フィルタ処理後復号信号は、インター予測部２４１で用いる参照フレームを構成する。
【００９９】
（インター予測部２４１）
以下、図９を参照して、本実施形態に係るインター予測部２４１について説明する。図９は、本実施形態に係るインター予測部２４１の機能ブロックの一例について示す図である。
【０１００】
図９に示すように、インター予測部２４１は、動きベクトル復号部２４１Ａと、洗練化部２４１Ｂと、予測信号生成部２４１Ｃとを有する。
【０１０１】
インター予測部２４１は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
【０１０２】
動きベクトル復号部２４１Ａは、画像符号化装置１００から受信する制御データの復号によって動きベクトルを取得するように構成されている。
【０１０３】
洗練化部２４１Ｂは、洗練化部１１１Ｂと同様に、ブロックサイズに応じてブロック内の全領域又はブロック内の一部の領域の画素を用いて動きベクトルを修正する洗練化処理を実行するように構成されている。
【０１０４】
或いは、洗練化部２４１Ｂは、洗練化部１１１Ｂと同様に、ブロックサイズに応じて洗練化処理を実行しないことを決定して処理を終了するように構成されている。
【０１０５】
予測信号生成部２４１Ｃは、予測信号生成部１１１Ｃと同様に、動きベクトルに基づいて予測信号を生成するように構成されている。
【０１０６】
本実施形態に係る画像符号化装置１００及び画像復号装置２００によれば、予め定められている閾値ＴＨ１よりも大きなブロックにおいて、ブロック内の一部の領域の画素のみを用いて動きベクトル洗練化処理を実行する。
【０１０７】
すなわち、大きなブロックにおいて、洗練化処理に使用する領域を制限することで、制限がない場合と比較して、動きベクトルの探索に必要なメモリや演算回路を削減することができる。
【０１０８】
この時、動きベクトルの洗練化に使用する領域の大きさを閾値ＴＨ１以下になるように設定することで、動きベクトルの洗練化処理に必要なメモリや演算回路の最大値を、閾値ＴＨ１のブロックサイズを処理するために必要な量に制限することができる。
【０１０９】
このように、大きなブロックにおいても、使用する画素の領域を制限しつつ動きベクトルの洗練化処理を実行することで、符号化効率の低下を抑えつつ、メモリ量や演算量、演算回路を削減することができる。
【０１１０】
また、メモリ量等を削減するために単純に大きなブロックで洗練化処理を禁止する場合と比較して、より大きなブロックで洗練化処理を実行できるようになるため、符号化効率の向上が見込まれる。
【０１１１】
また、非特許文献３に開示されているようなライン単位でのサブサンプリングによる洗練化では、動きベクトルの探索時のコスト算出（例えば、絶対値差分和）に関する演算量は削減できるが、探索点が非整数画素位置である場合は、フィルタリングのためにブロック全体の画素値が必要となるため、参照画素を格納するためのメモリ量を削減することはできない。
【０１１２】
一方、本実施形態に係る画像符号化装置１００及び画像復号装置２００によれば、ブロック内の一部の領域の画素のみを用いて洗練化処理を行うため、コスト算出とメモリ量の両方を削減できる。
【０１１３】
なお、本実施形態に係る画像符号化装置１００及び画像復号装置２００について、上述のようなライン単位のサブサンプリングと組み合わせてもよい。この場合、コスト算出に係る演算量及び演算回路をさらに削減することができる。
【０１１４】
また、本実施形態に係る画像符号化装置１００及び画像復号装置２００によれば、予め定められている閾値ＴＨ２よりも大きなブロックにおいて、洗練化処理を行わない。
【０１１５】
すなわち、予測ブロックの最大サイズが、画像符号化装置１００及び画像復号装置２００における並列処理単位よりも大きかった場合に、閾値ＴＨ２を並列処理単位以下となるように設定することで、洗練化処理における処理単位における並列処理を担保することができる。
【０１１６】
（変更例１）
以下、図１１〜図１３を参照して、本発明に係る変更例１について、上述の第１実施形態との相違点に着目して説明する。
【０１１７】
上述の第１実施形態では、図４に示すように、洗練化部１１１Ｂ/２４１Ｂは、ブロックサイズに対する閾値ＴＨ１と閾値ＴＨ２を用いて、洗練化処理に用いる領域及び洗練化処理の実行要否について判定するように構成されていた。かかる処理は、例えば、上述のような閾値を用いた処理ではなく、予め各ブロック形状に対しての処理を規定しておくことでも、洗練化部１１１Ｂ/２４１Ｂは、同様の処理を実現できる。
【０１１８】
図１１に、本変更例１における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（及び、画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理の手順の一例を示すフローチャートを示す。
【０１１９】
ステップＳ１６において、洗練化部１１１Ｂ/２４１Ｂは、現在処理している予測ブロックの形状（例えば、ブロックの幅と高さとの組み合わせで定義）に基づいて、ステップＳ１３、Ｓ１４、Ｓ１５のいずれに進むかについて判定する。
【０１２０】
かかる判定は、例えば、図１２に示すテーブルを予め定めておくことで実現され得る。また、ブロック内の一部の領域の画素のみを用いて洗練化処理を行う場合は、具体的にどの領域を用いるかということも予めテーブルで定義しておくことができる。
【０１２１】
また、上述の第１実施形態におけるブロックサイズの閾値を用いた処理と、本変更例1におけるブロック形状ごとの処理を組み合わせることもできる。図１３に、かかるその場合のフローチャートの一例について示す。
【０１２２】
図１３に示すように、例えば、洗練化部１１１Ｂ/２４１Ｂは、ブロックサイズが閾値ＴＨ１以下のブロックに対しては、一律にブロックの全領域の画素を用いて洗練化処理を行い、ブロックサイズが閾値ＴＨ１より大きいブロックに対してのみ、ブロック形状によって処理を変えることもできる。
【０１２３】
（変更例２）
以下、図１４〜図１５を参照して、本発明に係る変更例２について、上述の第１実施形態及び変更例１との相違点に着目して説明する。
【０１２４】
上述の第１実施形態では、図４に示すように、洗練化部１１１Ｂ/２４１Ｂは、閾値ＴＨ２より大きなブロックに対しては洗練化処理を行わないこととしていた。上述のように、閾値ＴＨ２を符号化及び復号の並列処理単位以下にすることで、洗練化処理の並列処理を担保できる。
【０１２５】
これに対して、本変形例２では、洗練化部１１１Ｂ/２４１Ｂは、並列処理単位より大きなブロックにおいても、ブロック内の一部の領域の画素のみを用いて洗練化処理を行うように構成されている。
【０１２６】
図１４に、本変更例２における画像符号化装置１００のインター予測部１１１の洗練化部１１１Ｂ（及び、画像復号装置２００のインター予測部２４１の洗練化部２４１Ｂ）によって行われる洗練化処理の手順の一例を示すフローチャートを示す。
【０１２７】
図１４に示すように、洗練化部１１１Ｂ/２４１Ｂは、閾値ＴＨ１より大きなブロックでは、第１実施形態と同様に、ステップＳ１４において、一部の領域のみを用いて洗練化処理を行う。
【０１２８】
ここで、第１実施形態において、ステップＳ１４において洗練化処理に使用する領域は、例えば、ブロックの中央の領域である。
【０１２９】
一方、本変更例２では、洗練化部１１１Ｂ/２４１Ｂは、ステップＳ１７において、閾値ＴＨ２より大きなブロックについても一部の領域のみを用いて洗練化処理を行う。
【０１３０】
図１５に、予測ブロックの最大サイズを１２８×１２８画素とし、並列処理単位を６４×６４としたときの、ステップＳ１７における洗練化処理における動きベクトルの洗練化に使用する領域の一例について示す。
【０１３１】
図１５におけるブロック内の点線は、並列処理単位の境界を示している。図１５に示すように、洗練化処理に用いられる領域が並列処理単位の境界をまたがないように定義しておくことで、処理単位毎の並列処理を担保したまま、より大きなブロックで洗練化処理を実施することができる。動きベクトルの洗練化に使用する領域の形状は、図１５に示すように正方形でも長方形でもよい。
【０１３２】
また、上述の画像符号化装置１００及び画像復号装置２００は、コンピュータに各機能（各工程）を実行させるプログラムであって実現されていてもよい。
【０１３３】
なお、上記の各実施形態では、本発明を画像符号化装置１００及び画像復号装置２００への適用を例にして説明したが、本発明はこれのみに限定されるものではなく、符号化装置および復号装置の各機能を備えた符号化/復号システムにも同様に適用できる。
【符号の説明】
【０１３４】
１０…画像処理システム
１００…画像符号化装置
１１１、２４１…インター予測部
１１１Ａ…動きベクトル探索部
１１１Ｂ、２４１Ｂ…洗練化部
１１１Ｃ、２４１Ｃ…予測信号生成部
１１２、２４２…イントラ予測部
１２１…減算器
１２２、２３０…加算器
１３１…変換・量子化部
１３２、２２０…逆変換・逆量子化部
１４０…符号化部
１５０、２５０…インループフィルタ処理部
１６０、２６０…フレームバッファ
２００…画像復号装置
２１０…復号部
２４１Ａ…動きベクトル復号部
【図１】
2020108033.tif 000003
【図２】
2020108033.tif 000004
【図３】
2020108033.tif 000005
【図４】
2020108033.tif 000006
【図５】
2020108033.tif 000007
【図６】
2020108033.tif 000008
【図７】
2020108033.tif 000009
【図８】
2020108033.tif 000010
【図９】
2020108033.tif 000011
【図１０】
2020108033.tif 000012
【図１１】
2020108033.tif 000013
【図１２】
2020108033.tif 000014
【図１３】
2020108033.tif 000015
【図１４】
2020108033.tif 000016
【図１５】
2020108033.tif 000017