(57)【要約】【課題】  動きベクトルの探索結果によっては、スキップブロックができない場合があった。【解決手段】  画像処理装置の可変長符号化部１０７は、動画を構成するフレームを符号化し（Ｓ５０７）、選択部３０５は、動画を構成する第１フレームよりも後の第２フレームにおける複数のブロックのうちの第１ブロックに対応する動きベクトルとして、第１ブロックとは異なる他のブロックに対応する動きベクトルから算出される基準ベクトルを採用するか否かを、第１フレームの符号化結果に基づいて決定する（Ｓ７０４）。【選択図】  図１
2015226111.tif 000002
【特許請求の範囲】
【請求項１】
動画を構成するフレームを符号化する符号化手段と、
前記動画を構成する第１フレームよりも後の第２フレームにおける複数のブロックのうちの第１ブロックに対応する動きベクトルとして、所定のベクトルを採用するか否かを、前記第１フレームの符号化結果に基づいて決定する決定手段とを有することを特徴とする画像処理装置。
【請求項２】
前記符号化手段は、前記決定手段の決定に基づく前記第１ブロックに対応する動きベクトルと、前記第２フレームにおいて前記第１ブロックから所定範囲内のブロックに対応する動きベクトルとの差分に応じて、前記第１ブロックの動きベクトルに関するヘッダ情報を含まない符号化データを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ヘッダ情報には、前記第１ブロックの符号化タイプを示す情報が含まれることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記符号化結果は量子化係数であることを特徴とする請求項１乃至３のうちいずれか１項に記載の画像処理装置。
【請求項５】
前記所定のベクトルは、前記第１ブロックに動きがないことを示すゼロベクトルであることを特徴とする請求項１乃至４のうちいずれか１項に記載の画像処理装置。
【請求項６】
前記第１ブロックに対応する動きベクトルとして採用するか否かが決定される前記所定のベクトルは、前記第１ブロックよりも表示位置が上である第２ブロックに対応する動きベクトルと、前記第１ブロックよりも表示位置が左である第３ブロックに対応する動きベクトルと、前記第１ブロックよりも表示位置が右上である第４ブロックに対応する動きベクトルとに基づいて算出されることを特徴とする請求項１乃至４のうちいずれか１項に記載の画像処理装置。
【請求項７】
前記第１ブロックに対応する動きベクトルとして採用するか否かが決定される前記所定のベクトルは、前記第２フレームより前のフレームから検出されたオブジェクトの動きに基づいて算出されることを特徴とする請求項１乃至４のうちいずれか１項に記載の画像処理装置。
【請求項８】
前記動画の１画素当たりの階調を下げる変換手段と、
前記変換手段により階調が下げられた前記第１ブロックと他のブロックとの相関に基づいて動きベクトルを探索する探索手段とを有し、
前記決定手段は、前記第１ブロックに対応する動きベクトルとして、前記探索手段の探索により得られた動きベクトルを採用するか前記所定のベクトルを採用するかを、前記第１フレームの符号化結果に基づいて決定することを特徴とする請求項１乃至７のうちいずれか１項に記載の画像処理装置。
【請求項９】
前記決定手段は、前記第１フレームにおける複数のブロックのうち、前記第１フレームよりも後の前記第２フレームにおける前記第１ブロックに位置が対応する対応ブロックの量子化係数が所定の条件を満たし、且つ、前記対応ブロックがイントラ符号化される場合、前記第１ブロックに対応する動きベクトルを、前記所定のベクトルにすることを決定し、
前記対応ブロックの量子化係数が前記所定の条件を満たさない場合、前記第１ブロックに対応する動きベクトルを、前記第１ブロックと他のブロックとの相関に基づいて決定された動きベクトルにすることを決定し、
前記対応ブロックの量子化係数が前記所定の条件を満たし、且つ、前記対応ブロックがインター符号化される場合、前記対応ブロックに対応する動きベクトルが、前記所定のベクトルであるか否かに応じて、前記第１ブロックに対応する動きベクトルとして、前記所定のベクトルを採用するか、前記第１ブロックと他のブロックとの相関に基づいて決定された動きベクトルを採用するかを決定することを特徴とする請求項１乃至８のうちいずれか１項に記載の画像処理装置。
【請求項１０】
前記決定手段は、前記第１フレームの符号化結果に基づいて、前記第２フレームの符号化の開始前に、前記第１ブロックに対応する動きベクトルとして前記所定のベクトルを採用するか否かを決定し、
前記第１ブロックに対応する動きベクトルとして前記所定のベクトルを採用すると前記決定手段により決定された場合、前記第１ブロックと他のブロックとの相関に基づく動きベクトル探索が実行されないように制御する制御手段をさらに有することを特徴とする請求項１乃至９のうちいずれか１項に記載の画像処理装置。
【請求項１１】
画像処理装置の制御方法であって、
動画を構成するフレームを符号化する符号化工程と、
前記動画を構成する第１フレームよりも後の第２フレームにおける複数のブロックのうちの第１ブロックに対応する動きベクトルとして、所定のベクトルを採用するか否かを、前記第１フレームの符号化結果に基づいて決定する決定工程とを有することを特徴とする制御方法。
【請求項１２】
前記第１ブロックに対応する動きベクトルとして採用されるか否かが決定される前記所定のベクトルは、前記第１ブロックよりも表示位置が上である第２ブロックに対応する動きベクトルと、前記第１ブロックよりも表示位置が左である第３ブロックに対応する動きベクトルと、前記第１ブロックよりも表示位置が右上である第４ブロックに対応する動きベクトルとに基づいて算出されることを特徴とする請求項１１に記載の制御方法。
【請求項１３】
前記動画の階調を下げる変換工程と、
前記変換工程により階調が下げられた前記第１ブロックと他のブロックとの相関に基づいて動きベクトルを探索する探索工程とを有し、
前記決定工程は、前記第１ブロックに対応する動きベクトルとして、前記探索工程の探索により得られた動きベクトルを採用するか前記所定のベクトルを採用するかを、前記第１フレームの符号化結果に基づいて決定することを特徴とする請求項１１又は１２に記載の制御方法。
【請求項１４】
コンピュータを請求項１乃至１０のうちいずれか１項に記載の画像処理装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化を行う画像処理装置、及び、符号化方法に関する。
【背景技術】
【０００２】
ＩＴＵ−Ｔ（国際電気通信連合の電気通信標準化部門）で勧告されたＨ．２６４やＨＥＶＣ等の符号化方式では、動画像の１フレームを複数のブロックに分割して、各ブロック単位に符号化を行う。圧縮符号化の方式として、時間的相関性を利用した符号化方式（インター符号化）および空間的相関性を利用した符号化方式（イントラ符号化）がある。時間的相関を利用した符号化方式では、既に符号化済の画像を参照画像として、参照画像と符号化対象画像のブロック間の動きベクトルを探索し、対応するブロック間の予測残差を符号化する。空間的相関性を利用した符号化方式では、符号化対象のブロックの周囲のブロックの画素から予測を行い、ブロックの予測残差を符号化する。
【０００３】
ブロック単位に符号化されたデータは、主にブロックの動きベクトルやブロックの符号化タイプ等のヘッダ成分および予測画像と符号化対象画像の画素値の差分である予測残差成分からなる。
【０００４】
ヘッダ成分のデータ量を小さくするには、Ｈ．２６４におけるスキップブロックが有効である（ＨＥＶＣではスキップモード）。スキップブロックはヘッダ成分及び残差成分を含まないため少ないデータ量で符号化できる（Ｈ．２６４においてスキップブロックを実行すると１ブロックあたり１ｂｉｔ以下のデータ量で符号化できる）。Ｈ．２６４においてブロックをスキップブロックで符号化するには、周囲のブロックと動きベクトルを揃える必要がある。
【０００５】
動きベクトルを求める際に全探索をした場合、例えば８ビット、１６×１６画素のブロックを参照フレームの探索領域６４×６４画素全てと比較すると、８ビットの比較演算が１６×１６×６４×６４＝１０４８５７６回必要となる。そのため計算コストが膨大なものになってしまう。
【０００６】
特許文献１には、動きベクトルを求める際の計算コストを削減するために、二値画像を用いた動き探索方式を行うことが記載されている。入力画像として二値画像を用いれば、１画素当たりの計算コストを低減することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平５−４９０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、動きベクトルの探索結果によっては、スキップブロックができない場合があった。
【０００９】
上記のように、スキップブロックを実施するためには、処理対象ブロックと、周囲のブロックの動きベクトルがそろっている必要がある。例えば、二値画像を用いて動きベクトル探索を行うと動きベクトルがそろいにくくなる場合がある。従って、入力画像をそのまま用いて動きベクトル探索を行えばスキップブロックができる場合であっても、二値画像を用いた動きベクトル探索を行うとスキップブロックができなくなる場合があった。
【００１０】
二値画像を用いた動きベクトルの探索について、図２を用いて説明する。図２の２０１は現フレーム多値画像（入力画像）、２０２は参照フレーム多値画像（例えば１フレーム前の入力画像）であり、２０３は現フレーム多値画像２０１を二値化した画像、２０４は参照フレーム多値画像２０２を二値化した画像である。四角形ひとつひとつが１画素を示す。灰色で示した領域は白色の領域と画素値が異なることを示す。
【００１１】
現フレーム多値画像２０１や参照フレーム多値画像２０２には灰色の領域が存在するが、現フレーム二値画像２０３や参照フレーム二値画像２０４の画素値に変化がない理由は、灰色の領域と白色の領域の画素値の違いが小さいためである。現フレーム多値画像２０１や参照フレーム多値画像２０２は画像の中の画素値の変化が小さい画像であるため、二値画像にすると全く画素の変化がない画像になってしまう。
【００１２】
説明を簡単にするために、図２の２×２画素をブロックとして、６×６画素の探索領域を探索することとする。現フレーム多値画像２０１の太枠で囲んだ２×２画素のブロック２０５を処理対象ブロックとして、参照フレーム多値画像２０２を全探索すると、参照フレーム多値画像２０２中の太枠で囲んだブロック２０６がブロック２０５とマッチングする。一方、ブロック２０５に位置が対応する現フレーム二値画像２０３のブロック２０７を対象ブロックとして参照フレーム二値画像２０４を全探索すると、例えば、参照フレーム二値画像２０４中の太枠で囲んだブロック２０８がブロック２０７とマッチングする。
【００１３】
以上のように、平坦な画像（画素値の変化が小さい画像）や、平坦な領域では、多値画像による動きベクトルの探索結果と二値画像による動きベクトルの探索結果が異なる場合がある。つまり、二値画像による探索方式の探索精度は、多値画像による探索方式の探索精度よりも低いため、上記のような探索結果の差異が発生する。
【００１４】
特に平坦な入力画像から二値画像を生成して動きベクトルの探索を行うと動きベクトルが周囲のブロック間で揃いにくくなり、スキップブロックによる符号化がされにくくなる場合があった。そのため、従来の二値画像による動きベクトル探索方式を用いて符号化を行う場合、符号化効率が低下する恐れがあった。なお上記の課題は二値画像に限らず、入力画像の階調をＮ値に下げたＮ値画像による動きベクトルの探索を行う場合も同様に発生し得る。
【００１５】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、スキップブロックを用いた符号化の効率を向上させることである。
【課題を解決するための手段】
【００１６】
上記の課題を解決するために、本発明の画像処理装置は、例えば以下の構成を有する。すなわち、動画を構成するフレームを符号化する符号化手段と、前記動画を構成する第１フレームよりも後の第２フレームにおける複数のブロックのうちの第１ブロックに対応する動きベクトルとして、所定のベクトルを採用するか否かを、前記第１フレームの符号化結果に基づいて決定する決定手段とを有する。
【発明の効果】
【００１７】
本発明によれば、スキップブロックを用いた符号化の効率を向上できる。
【図面の簡単な説明】
【００１８】
【図１】実施形態における画像処理装置の構成例を示すブロック図
【図２】平坦領域における多値画像探索方式と二値画像探索方式の概念図
【図３】実施形態のインター予測部１０１の構成例を示すブロック図
【図４】基準ベクトル（予測ベクトル）の概念図
【図５】実施形態の画像処理装置の動作を説明するためのフローチャート
【図６】実施形態の動き探索モード決定処理を説明するためのフローチャート
【図７】実施形態のインター予測処理を説明するためのフローチャート
【図８】実施形態の画像処理装置の構成例を示すブロック図
【図９】実施形態の画像処理装置の動作を説明するためのフローチャート
【図１０】実施形態の動き探索モード決定処理を説明するためのフローチャート
【図１１】実施形態のインター予測処理を説明するためのフローチャート
【図１２】実施形態の画像処理装置のハードウェア構成例を説明するための図
【発明を実施するための形態】
【００１９】
＜第１の実施形態＞
以下、本発明の第１の実施形態を、図面を用いて説明する。図１は本実施形態の符号化装置（画像処理装置）の構成を示すブロック図である。
【００２０】
図１において、１０１はインター予測部であり、原画像（入力画像）及び動き探索モード（後述する動き探索モード決定部１０５より入力）に基づいて、処理対象ブロックの動きベクトルを決定する。本実施形態では原画像（入力画像）は１画素が８ビットで表される場合の例を中心に説明するが、８ビットに限らず、たとえば、原画像は１０ビットや１２ビット、４ビットの画像でもよい。さらにインター予測部１０１は、動きベクトルに対応する参照画像を後述する参照画像バッファ１０６より受け取り、原画像と参照画像間の誤差であるインター予測誤差（差分データ）を生成する。インター予測部１０１の詳細は、後述する。
【００２１】
１０２はイントラ予測部であり、原画像を取得し、処理対象ブロックの周囲の画素から予測を行い、イントラ予測誤差を生成する。より具体的には、イントラ予測部１０２は、原画像（入力画像）の処理対象ブロックの周囲の画素値から予測画像を生成し、当該予測画像と、処理対象ブロックの原画像との間の誤差であるイントラ予測誤差（差分データ）を生成する。
【００２２】
１０３は符号化タイプ決定部であり、インター予測部１０１より動きベクトル及びインター予測誤差を、イントラ予測部１０２よりイントラ予測誤差を受け取り、処理対象ブロックをイントラ／インターどちらの符号化タイプで符号化するかを決定する。
【００２３】
１０４は変換・量子化部であり、符号化タイプ決定部１０３で決定された符号化タイプに基づいて、イントラ予測誤差もしくはインター予測誤差のどちらか一方を直交変換、及び、量子化して量子化係数を生成する。変換・量子化部１０４はさらに、該量子化係数を逆量子化・逆変換して参照画像を生成する。
【００２４】
１０５は動き探索モード決定部であり、インター予測部１０１より動きベクトルを、符号化タイプ決定部１０３より符号化タイプを、変換・量子化部１０４より量子化係数をそれぞれ受け取り、動き探索モードを決定する。動き探索モードの詳細は後述するが、動き探索モードは、処理対象ブロックに対応する動きベクトルとして、当該処理対象ブロックとは異なる他のブロックに対応する動きベクトルから算出される基準ベクトル（所定のベクトル）を採用するか否かを示す。なお、所定のベクトルは、他のブロックに対応する動きベクトルから算出する動きベクトルに限らず、例えば、処理対象ブロックに動きがないことを示す０ベクトル（ゼロベクトル）とすることも可能である。
【００２５】
１０６は参照画像バッファであり、変換・量子化部１０４より受け取った参照画像を保持する。保持された参照画像は、後続のフレームを符号化する際にインター予測部１０１に出力される。
【００２６】
１０７は可変長符号化部であり、変換・量子化部１０４より量子化係数を受け取り、各種符号化パラメータと共に可変長符号化を行い、符号化ストリームを生成する。
【００２７】
次に、図３を用いて実施形態１におけるインター予測部１０１の構成を詳細に説明する。３０１はＮ値画像生成部であり、入力された原画像（１画素が８ビットの入力画像）からＮ値画像を生成する。すなわち、Ｎ値画像生成部３０１は、入力画像の階調を下げる処理を行う。本実施形態ではＮ値画像は２値画像である場合の例を中心に説明するが、２値画像に限らず、例えば４値画像や８値画像等でもよい。また、階調を下げなくてもよい。
【００２８】
３０２はＮ値画像バッファであり、Ｎ値画像生成部３０１からＮ値画像を受け取り、保持する。保持されたＮ値画像は後続するフレームの符号化の動き探索のために参照される。
【００２９】
３０３はＮ値画像動き探索部であり、Ｎ値画像を用いたブロックマッチング処理に基づく動き探索処理を行う。すなわち、Ｎ値画像動き探索部３０３は、Ｎ値画像生成部３０１により階調が下げられた処理対象ブロックと、他のブロックとの画素値の相関に基づいて動きベクトルを探索する。そしてＮ値画像動き探索部３０３は、Ｎ値画像を用いた動き探索によって得られた動きベクトルであるＮ値画像探索ベクトルを出力する。
【００３０】
３０４は基準ベクトル算出部であり、後述する選択部３０５から動きベクトルを受け取り、基準ベクトル（所定のベクトル）を算出する。本実施形態において基準ベクトルとは、処理対象ブロックの周囲のブロックの動きベクトルから算出される予測ベクトル（以下、ＰＭＶ（Ｐｒｅｄｉｃｔｅｄ  Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ）と記す）のことである。ＰＭＶは処理対象ブロックが画像の端部に位置しないとき、処理対象ブロックの左、上、右上に位置する各ブロックの動きベクトルの中央値ｍｅｄｉａｎをとって算出される。なお、基準ベクトルは、ＰＭＶに限らず、例えば０ベクトル（ゼロベクトル）であってもよい。
【００３１】
図４はＰＭＶの概念図である。４０１は処理対象ブロック、４０２は処理対象ブロックの左のブロック、４０３は処理対象ブロックの上のブロック、４０４は処理対象ブロックの右上のブロックである。例えば、処理対象ブロックの左のブロック４０２の動きベクトルをｍｖＡ（ｘ１，ｙ１）、処理対象ブロックの上のブロック４０３の動きベクトルをｍｖＢ（ｘ２，ｙ２）、処理対象ブロックの右上のブロック４０４の動きベクトルをｍｖＣ（ｘ３，ｙ３）とする。このとき、処理対象ブロック４０１のＰＭＶ（ｘ，ｙ）は下記式（１）、（２）により得られる。
ＰＭＶ（ｘ）＝ｍｅｄｉａｎ（ｘ１，ｘ２，ｘ３）・・・（１）
ＰＭＶ（ｙ）＝ｍｅｄｉａｎ（ｙ１，ｙ２，ｙ３）・・・（２）
すなわち、基準ベクトル算出部３０４は、処理対象ブロック（第１ブロック）に対応する動きベクトルとして採用するか否かが決定される基準ベクトルを、ブロック４０２、４０３、及び４０４の動きベクトル（ｍｖＡ、ｍｖＢ、ｍｖＣ）に基づいて算出する。なおブロック４０２は、処理対象ブロックよりも表示位置が左であるブロックであり、ブロック４０３は処理対象ブロックよりも表示位置が上であるブロックであり、ブロック４０４は処理対象ブロックよりも表示位置が右上であるブロックである。
【００３２】
なお、本実施形態では基準ベクトルをＰＭＶとするが、他の方法で基準ベクトルが決定されるようにすることも可能である。例えば０ベクトルを基準ベクトルとしても良いし、スキップブロックのように、動きベクトルがシンタックスとして符号化されない条件を満たすベクトルを基準ベクトルとしてもよい。ＨＥＶＣにおけるマージ候補リストに含まれるベクトルを基準ベクトルとしてもよい。
【００３３】
なお、基準ベクトルを０ベクトルとする場合、動きベクトルがシンタックスとして符号化されない条件を満たさないかもしれないが、周囲のブロックが同様に０ベクトルと判定されることにより結果として条件を満たすブロックの数が増える。また、基準ベクトルの算出方法のほかの例として、オブジェクトの動き認識処理の結果を符号化装置が受け取り、該オブジェクトの動き量や動き方向に基づいて基準ベクトルを算出してもよい。すなわち、基準ベクトル算出部３０４は、処理対象ブロックに対応する動きベクトルとして採用するか否かが決定される基準ベクトルを、処理対象フレームよりも前のフレームにおいて検出されたオブジェクトの動きに基づいて算出することも可能である。
【００３４】
３０５は選択部であり、動き探索モード決定部１０５から動き探索モードを示す情報を受け取り、当該情報を用いて、基準ベクトルとＮ値画像探索ベクトルのどちらか一方を処理対象ブロックに対応する動きベクトルとして選択する。なお、基準ベクトルは、処理対象ブロックとは異なる他のブロックに対応する動きベクトルから算出される動きベクトルである。また、Ｎ値画像探索ベクトルは、Ｎ値画像生成部３０１により入力画像の階調が下げられた処理対象ブロックと他のブロックとの相関に基づいて探索された動きベクトルである。動き探索モード決定部１０５による動き探索モードの決定方法については後述する。
【００３５】
３０６はインター予測誤差算出部であり、選択部３０５により選択された動きベクトルに基づいて、原画像と参照画像の予測誤差を算出し、インター予測誤差（差分データ）として出力する。
【００３６】
本実施形態の符号化装置（画像処理装置）の動作を、図５のフローチャートを用いて詳細に説明する。本実施形態では動画を構成する画像はフレーム単位で入力され、ブロックに分割されてラスタ順にブロック単位で処理される。本実施形態におけるブロックのサイズはＨ．２６４のブロックサイズと同じ１６×１６画素とするが、これに限らない。例えばＨＥＶＣで用いられる最大のブロックサイズである６４×６４画素や８×８画素、３２×３２画素でもよく、３２×１６画素のように非対称でもよい。本実施形態では、Ｈ．２６４の符号化ストリームを生成する場合の例を中心に説明するが、これに限らず、例えばＨＥＶＣの符号化ストリームを生成してもよい。
【００３７】
なお、図５のフローチャートの処理は、画像処理装置のＣＰＵが、図５の処理のためのプログラムをメモリから読み出して実行することにより実現される。また、本実施形態の画像処理装置がネットワークカメラに実装されている場合、ネットワークカメラの撮影開始と共に、図５の処理が開始される。ただし、本実施形態の画像処理装置はネットワークカメラ以外にも実装は可能であり、例えば、デジタルカメラやデジタルビデオカメラやパーソナルコンピュータ、スマートフォン等に実装することも可能である。また、本実施形態に記載したフローチャートで説明する動作を、専用のハードウェアで実行することも可能である。フローチャートの処理をＣＰＵで行う場合の画像処理装置のハードウェア構成例を図１２に示す。図１２に示すように、画像処理装置は、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、二次記憶部４、通信部５、映像出力部６を備えて構成することが可能である。
【００３８】
図５のフローチャートのＳ５０１において、イントラ予測部１０２がイントラ予測を行ない、イントラ予測誤差（差分データ）を生成する。
【００３９】
そして、Ｓ５０２において、インター予測部１０１が、処理対象のフレームがインターフレームかイントラフレームかを判定する。イントラフレームとは他のフレームを参照せずに符号化されるフレームであり、インターフレームは他のフレームを参照して符号化することが可能なフレームである。処理対象フレームがインターフレームならばＳ５０３へ、イントラフレームならばＳ５０６へ進む。
【００４０】
Ｓ５０３では、動き探索モード決定部１０５が、処理対象ブロックの動き探索モードを決定する。動き探索モードは、基準ベクトルとＮ値画像探索ベクトルのどちらを処理対象ブロックに対応する動きベクトルとして採用するかを示すモードである。Ｎ値画像探索方式（Ｎ値画像（例えば２値画像）で動きベクトルを探索する方式）は平坦領域（画素値の空間的な変化が小さい領域）の探索精度が低いため、平坦領域のブロックの動きベクトルとしてＮ値画像探索ベクトルを採用すると動きベクトルが揃いにくくなる場合がある。つまり、特に平坦領域では、入力画像の階調を下げずに探索された動きベクトルを採用すれば周囲のブロックの動きベクトルが揃う場合であっても、Ｎ値画像探索ベクトルを採用すると、動きベクトルが揃わなくなる場合がある。そこで平坦領域のブロックで基準ベクトルを採用すると周囲のブロックと動きベクトルが揃うためにスキップブロックが実現しやすくなる。
【００４１】
スキップブロック（ＨＥＶＣではスキップモード）で符号化すると、当該ブロックに関するヘッダ成分（例えば、動きベクトルを示す情報や符号化タイプを示す情報）や、残差成分（差分データ）を含まない符号化データを生成することができる。これにより符号化データの符号量を小さくすることができる。
【００４２】
動き探索モード決定部１０５が行う動き探索モード決定の処理に関して、図６のフローチャートを用いて詳細に説明する。図６の処理は、図５のＳ５０３に対応する。
【００４３】
Ｓ６０１において、動き探索モード決定部１０５は、処理対象フレーム（第２フレーム）の１フレーム前のフレーム（第１フレーム）を構成する複数のブロックのうち、処理対象ブロックと同一位置のブロック（対応ブロック）の、ＣＢＰがゼロか否かを判定する。ＣＢＰは、Ｈ．２６４における符号化ブロックパターン（Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎ）のことであり、ブロック内の量子化係数が全てゼロであるか否かを示す情報である。
【００４４】
すなわち、動き探索モード決定部１０５は、処理対象フレームにおける処理対象ブロックと同じ位置にある対応ブロックを、処理対象フレームよりも前のフレームから特定する。そして、動き探索モード決定部１０５は、特定した対応ブロックのＣＢＰがブロック内の量子化係数がすべてゼロであることを示しているか否かを判定する。ＣＢＰは変換・量子化部１０４より入力された量子化係数から求めることができる。ＣＢＰがゼロの場合はＳ６０２の処理に進み、ＣＢＰがゼロ以外の場合はＳ６０５の処理に進む。
【００４５】
Ｓ６０２において、動き探索モード決定部１０５は、処理対象フレームの１フレーム前のフレーム（前フレーム）における対応ブロックがイントラブロックかインターブロックかを判定する。すなわち、動き探索モード決定部１０５は、Ｓ６０２において、対応ブロックがイントラ符号化されたブロックであるか、インター符号化されたブロックであるかを判定する。イントラブロックの場合はＳ６０４の処理に進み、インターブロックの場合はＳ６０３の処理に進む。
【００４６】
Ｓ６０３において、動き探索モード決定部１０５は、処理対象フレームの１フレーム前のフレームにおける対応ブロックの動きベクトルとして基準ベクトルが採用されているか否かを判定する。基準ベクトルが採用されていると判定された場合はＳ６０４に進み、基準ベクトルが採用されていないと判定された場合はＳ６０５に進む。
【００４７】
ステップＳ６０４において、動き探索モード決定部１０５は、処理対象ブロックの動きベクトル探索モードを、基準ベクトルが採用されるモード（第１モード）に決定する。ステップＳ６０５において、動き探索モード決定部１０５は、処理対象ブロックの動きベクトル探索モードをＮ値画像探索ベクトルが採用されるモード（第２モード）に決定する。
【００４８】
即ち、処理対象フレームの１フレーム前の複数のブロックのうち処理対象ブロックと同一位置のブロック（対応ブロック）がイントラブロックで、且つ、対応ブロックのＣＢＰがゼロならば処理対象ブロックの動きベクトルとして基準ベクトルが採用される。対応ブロックがイントラブロックで、且つ、ＣＢＰがゼロということは、その対応ブロックが平坦なブロックであることを示すため、Ｎ値画像探索ベクトルの精度が低いことがわかる。そのため、基準ベクトルが処理対象ブロックに対応する動きベクトルとして採用される。
【００４９】
また、対応ブロックのＣＢＰがゼロで、且つ、対応ブロックがインターブロックで、且つ、対応ブロックに対応する動きベクトルが基準ベクトルである場合、処理対象ブロックの動きベクトルとして基準ベクトルが採用される。これは以下の理由による。
【００５０】
すなわち、たとえＣＢＰがゼロであってもインターブロックである場合は、当該対応ブロックが平坦なブロックであるか否かを判別することは困難である。しかし、イントラフレームの次のインターフレームの符号化する場合、Ｓ６０２の処理により、平坦なブロックは基準ベクトルで符号化されることになる。そのため、当該インターフレームにおいて基準ベクトルが採用されたブロックに対応する次のインターフレームのブロックも、平坦なブロックである可能性が高い。そこで、本実施形態では、対応ブロックのＣＢＰがゼロで、且つ、インターブロックである場合において、当該対応ブロックの動きベクトルとして基準ベクトルが採用されている場合、処理対象ブロックに対応する動きベクトルとして基準ベクトルを採用する。
【００５１】
なお、対応ブロックのＣＢＰがゼロで、且つ、インターブロックである場合において、当該対応ブロックに対応する動きベクトルがＮ値画像探索ベクトルである場合、処理対象ブロックに対応する動きベクトルとしてＮ値画像探索ベクトルが採用される。
【００５２】
また、Ｓ６０３でＹＥＳの判定結果が得られるのは、対応ブロックの動きベクトルとして基準ベクトルが採用された場合だけではなく、Ｎ値画像探索ベクトルが、結果として、基準ベクトルと同じ動きベクトルになった場合も含まれる。このようにすることで、処理対象ブロックの位置において、ノイズ等の影響で一度基準ベクトルが採用されなくなった場合に、後続のインターフレームにおいてＮ値画像探索ベクトルが使用され続けることを防げる。
【００５３】
また、本実施形態ではＣＢＰに基づいて対応ブロックが平坦なブロック（画素値の空間的な変化が小さいブロック）であるか否かを判定しているが本発明はこれに限定されない。例えばＨＥＶＣにおけるＣＢＦ（Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｆｌａｇ）を使用してもよいし、ブロックの量子化係数が全てゼロであるか否かによって判定されるようにしてもよい。また、本実施形態ではＳ６０３において対応ブロックの動きベクトルとして基準ベクトルが採用されているか否かを判定しているが、これに限らない。例えば、対応ブロックの動きベクトルがスキップブロックの条件を満たす動きベクトルであるか否かが判定されるようにしてもよいし、ゼロベクトルであるか否かが判定されるようにしてもよい。また、Ｓ６０３における別の判定条件として、対応ブロックに対応する動きベクトルとしてＨＥＶＣにおけるマージ候補リストに含まれる動きベクトルが採用されているか否かを判定してもよい。
【００５４】
また、本実施形態では、処理対象フレームの１フレーム前のフレーム（前フレーム）の符号化結果を使用して、処理対象ブロックに対応する動きベクトルを基準ベクトルとするか否かを判定しているが、本発明はこれに限定されない。処理対象フレームの１フレーム前のフレーム以外であっても、処理対象フレームの処理の前に符号化されているフレームの符号化結果を用いることが可能である。
【００５５】
図５のＳ５０４のインター予測処理に関して図７のフローチャートを用いて詳細に説明する。図７の処理は、インター予測部１０１において実施される。
【００５６】
Ｓ７０１において、Ｎ値画像生成部３０１はＮ値画像を生成する。すなわちＮ値画像生成部３０１は、入力画像の階調を下げて、Ｎ値画像を生成する。Ｎ値画像は原画像（入力画像）よりも少ないビット数で表現されていれば良い。また、本実施形態の画像処理装置は、原画像から動きベクトルを探索することも可能である。
【００５７】
Ｓ７０２において、Ｎ値画像動き探索部３０３は、Ｎ値画像動き探索を実行する。Ｎ値画像動き探索部３０３は、処理対象ブロックの動き探索のための探索範囲を決定する。そして、Ｎ値画像バッファ３０２から、決定された探索範囲のＮ値画像参照データを読み出す。また、Ｎ値画像動き探索部３０３は、処理対象ブロックのＮ値画像データをＮ値画像生成部３０１から読み出す。
【００５８】
さらに、Ｎ値画像動き探索部３０３は、読み出した処理対象ブロックのＮ値画像データと、Ｎ値画像参照データとのブロックマッチングを行う。具体的には、探索範囲内のＮ値画像参照データに対し、処理対象ブロックのＮ値画像データを順次ずらしていきながらマッチングを行う。つまり、Ｎ値画像動き探索部３０３は、動きベクトルの探索範囲のうち第１領域の画像データと、処理対象ブロックの画像データを比較すると共に、探索範囲のうち第２領域の画像データと、処理対象ブロックの画像データとを比較する。そして、Ｎ値画像動き探索部３０３は、探索範囲のうち、処理対象ブロックに最も類似すると評価された領域の位置に基づいて、Ｎ値画像探索ベクトルｂｉｎＭＶを出力する。
【００５９】
本実施形態におけるＮ値画像は二値画像なので、Ｎ値画像ブロック相互の類似度の指標としては、対応画素間の排他的論理和の合計（ＸＯＲＳＵＭ）が一般的によく用いられる。二値画像におけるＸＯＲＳＵＭ値は、多値画像におけるＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、画素の差分を絶対値化して積算した値）と同様である。例えば、Ｎ値画像の処理対象ブロック（ｘ画素×ｙ画素）の各画素値をＯｒｇｂｉｎ（０，０）〜Ｏｒｇｂｉｎ（ｘ−１，ｙ−１）とする。マッチング対象として対応するＮ値画像の参照データ（ｘ画素×ｙ画素）の各画素値をＲｅｆｂｉｎ（０，０）〜Ｒｅｆｂｉｎ（ｘ−１，ｙ−１）とする。これらのＸＯＲＳＵＭ値は下記式（１）により得られる。
【００６０】
【数１】
2015226111.tif 000003
【００６１】
排他的論理和は、入力値が異なる際に真となるため、ＸＯＲＳＵＭ値が小さいほど類似度が高く、大きいほど類似度が低いとみなすことができる。本実施形態では、類似度としてＸＯＲＳＵＭ値を用いたが、本発明はこれに限定されない。例えば、Ｎ値画像においては、ＳＡＤを用いてもよい。
【００６２】
本実施形態のＳ７０２において、Ｎ値画像動き探索部３０３は、探索範囲内の全候補点に対して、ブロックマッチングを行う全探索法により動き探索を行う。しかしながら、処理時間や回路コスト等に応じて探索方法を適宜選択することが可能であり、全探索法の利用は必須ではない。
【００６３】
Ｓ７０３において、基準ベクトル算出部３０４は、基準ベクトルであるＰＭＶを算出する。すなわち、Ｓ７０３において、基準ベクトル算出部３０４は、処理対象ブロックとは異なる他のブロックに対応する動きベクトルに基づいて、基準ベクトルを算出する。
【００６４】
Ｓ７０４において、選択部３０５は、Ｓ５０３の処理（図６のフローチャート参照）で決定された動き探索モードに基づいてＮ値画像探索ベクトルと基準ベクトルのうち、どちらを処理対象ブロックに対応する動きベクトルとして採用するかを決定する。上述のように動き探索モードは、対応ブロックの量子化係数や符号化タイプに基づいて、処理対象ブロックの動き探索モードを決定することが可能である。すなわち、選択部３０５は、Ｓ７０４において、処理対象フレームよりも前のフレームの符号化結果（例えば量子化係数）に基づいて、処理対象ブロックに対応する動きベクトルとして基準ベクトルを採用するか否かを決定する。
【００６５】
Ｓ７０５において、インター予測誤差算出部３０６は、Ｓ７０４で選択された動きベクトルに基づいて参照画像バッファ１０６から参照画像を読み出し、原画像の処理対象ブロックとの間でインター予測誤差を算出する。すなわち、インター予測誤差算出部３０６は、Ｓ７０４で採用された動きベクトルに基づいて特定される画像データと、処理対象ブロックの画像データとの差分に基づくインター予測誤差（差分データ）を算出する。インター予測誤差の算出が完了すると、図７の処理を終了し、図５のＳ５０５に進む。
【００６６】
Ｓ５０５において、符号化タイプ決定部１０３は、イントラ予測誤差及びインター予測誤差、動きベクトルから処理対象ブロックをイントラブロックとインターブロックいずれの符号化タイプで符号化するかを決定する。本実施形態の符号化タイプ決定部１０３は、イントラ予測誤差及びインター予測誤差それぞれのＳＡＤを計算し、インター予測誤差のＳＡＤに動きベクトルのビットコスト（動きベクトルのデータ量）を加味して符号化タイプを決定する。ただし、符号化タイプの決定方法は上記の方法に限定されない。例えばＲ−Ｄ最適化手法により求めてもよい。
【００６７】
Ｓ５０６において変換・量子化部１０４は、符号化タイプ決定部１０３によって決定された符号化タイプに基づいて、イントラ予測誤差及びインター予測誤差のどちらか一方を直交変換および量子化し、量子化係数を算出する。また、当該量子化係数は逆量子化、逆変換され参照画像として参照画像バッファ１０６に格納される。
また、本実施形態の変換・量子化部１０４は、Ｓ５０６において、処理対象ブロックがスキップブロックを適用するための所定の条件を満たすか否かを判定し、当該所定の条件を満たすと判定すると、スキップブロックを適用する。スキップブロックが適用されると、当該処理対象ブロックの符号化タイプや動きベクトルを示す情報等を含むヘッダ情報を含まない符号化データが出力されることになる。本実施形態におけるスキップブロックの適用条件には、処理対象ブロックに対応する動きベクトルと、処理対象ブロックから所定範囲内のブロックに対応する動きベクトルとがそろっていること、及び、量子化後の残差がゼロであることが含まれる。
【００６８】
なお、本実施形態では、処理対象フレームの１フレーム前の対応ブロックの符号化結果を用いて、処理対象ブロックの動きベクトルとして基準ベクトルを採用するか否かを決定している。従って、隣接するフレーム間で大きく物体が動いた場合などは基準ベクトルの精度が落ちてしまう可能性がある。このように物体が大きく動いたことによりインター予測誤差が大きくなった場合、符号化タイプ決定部１０３によりイントラブロックが選択されやすくなる。これによってインターブロックが連続することによる画質劣化の蓄積をリフレッシュできる。
【００６９】
Ｓ５０７において可変長符号化部１０７は量子化係数及び種々の符号化パラメータを可変長符号化し、Ｈ．２６４の符号化ストリームを生成する。本実施形態ではＨ．２６４の符号化ストリームを生成する場合の例を中心に説明しているが、本発明はこれに限定されず、例えばＨＥＶＣの符号化ストリームを生成してもよい。
【００７０】
Ｓ５０８において、画像処理装置は、処理対象フレーム内の全てのブロックの符号化が完了したか否かを判定する。全てのブロックの符号化が完了したならば処理対象フレームの符号化処理を終了し、そうでない場合はＳ５０１に戻り後続のブロックを処理する。また、画像処理装置は、処理対象フレームのすべての符号化が完了したと判定した場合、動画を構成する他のフレームの符号化が完了したか否かを判定し、完了していないと判定された場合は、次のフレームの符号化を図５の記載に沿って実行する。
【００７１】
以上説明したように、本実施形態の画像処理装置は、動画を構成する第１フレームよりも後の第２フレームの処理対象ブロックに対応する動きベクトルとして基準ベクトルを採用するか否かを、第１フレームの符号化結果（量子化係数等）に基づいて決定する。このようにすることで、特にＮ値画像の動きベクトル探索をした場合に動きベクトルの方向にばらつきが発生しやすい状況において、動きベクトルが揃いやすくなり、スキップブロックが適用できるブロック数を向上させることができるようになる。
【００７２】
なお本実施形態ではＮ値画像を用いて動き探索を行ったが本発明はこれに限定されるものではない。平坦領域やノイズの多い画像で十分な動き探索精度を保つことができない場合に、動き探索に基づく動きベクトルではなく基準ベクトルを採用することでＮ値画像動き探索と同様に符号化効率を向上できる。
【００７３】
＜第２の実施形態＞
次に第２の実施形態について第１の実施形態との差異を中心に説明する。本実施形態の画像処理装置（符号化装置）の構成を第１の実施形態と同様に図１で示す。ただし、本実施形態ではインター予測部１０１の動作が第１の実施形態とは異なる。
【００７４】
次に、図８を用いて本実施形態のインター予測部１０１の構成に関して説明する。図８の８０１、８０２、８０４、８０５、８０６の動作は、図３の３０１、３０２、３０４、３０５、３０６の動作と同様である。
【００７５】
８０３はＮ値画像動き探索部であり、Ｎ値画像を用いたブロックマッチング処理に基づく動き探索処理を行うことが可能である。そしてＮ値画像動き探索部８０３は、Ｎ値画像を用いた動き探索によって算出された動きベクトルであるＮ値画像探索ベクトルを出力することが可能である。本実施形態のＮ値画像動き探索部８０３と第１の実施形態のＮ値画像動き探索部３０３との大きな違いは、Ｎ値画像動き探索部８０３に動き探索モードが入力されることである。
【００７６】
本実施形態のＮ値画像動き探索部８０３には、Ｎ値画像を用いた処理対象ブロックの動きベクトル探索が実行される前に、当該処理対象ブロックに関する動き探索モードが入力される。当該動き探索モードは、処理対象ブロックに対応する動きベクトルとして、基準ベクトルを採用するか否かを示している。
【００７７】
そして、Ｎ値画像動き探索部８０３は、取得した動き探索モードに基づいて、Ｎ値画像を用いた処理対象ブロックの動きベクトル探索が必要であるか否かを判定し、不要であると判定した場合、Ｎ値画像を用いた動きベクトル探索を実行しない。これにより、符号化に関する処理負荷及び消費電力を低減できる。
【００７８】
本実施形態の動作について、図９のフローチャートを用いて詳細に説明する。なお、図９のフローチャートの処理は、画像処理装置のＣＰＵが、図９の処理のためのプログラムをメモリから読み出して実行することにより実現される。また、本実施形態の画像処理装置がネットワークカメラに実装されている場合、ネットワークカメラの撮影開始と共に、図９の処理が開始される。ただし、本実施形態の画像処理装置はネットワークカメラ以外にも実装は可能であり、例えば、デジタルカメラやデジタルビデオカメラやパーソナルコンピュータ、スマートフォン等に実装することも可能である。
【００７９】
図９のＳ９０１、Ｓ９０２、Ｓ９０４、Ｓ９０５、Ｓ９０７、Ｓ９０８の処理に関しては、第１の実施形態におけるＳ５０１、Ｓ５０２、Ｓ５０５、Ｓ５０６、Ｓ５０７、Ｓ５０８に対応する。
【００８０】
Ｓ９０３において、インター予測部１０１は、インター予測を行なう。本実施形態のインター予測処理に関して図１０のフローチャートを用いて詳細に説明する。なお、図１０のＳ１００１、及びＳ１００３〜Ｓ１００６の処理は、図７のＳ７０１〜Ｓ７０５に対応する。
【００８１】
Ｓ１００２においてＮ値画像動き探索部８０３は、処理対象ブロックに対応する動き探索モードが基準ベクトルを採用するモードか否かを判定する。基準ベクトルを採用しない動き探索モードである場合はＳ１００３に進み、基準ベクトルを採用する動き探索モードである場合はＳ１００４に進む。基準ベクトルが採用される場合は、Ｎ値画像探索ベクトルが使用されないため、Ｎ値画像動き探索部８０３はＮ値画像を用いた動きベクトルの探索を実施しない。このようにすることで符号化に関する処理負荷及び消費電力を低減できる。
【００８２】
図９のＳ９０６において、動き探索モード決定部１０５は、処理対象ブロックが存在する処理対象フレームの次のフレームの対応ブロックの動き探索モードを決定する。本実施形態における対応ブロックは、処理対象フレームの次のフレームのブロックのうち、処理対象ブロックと同じ位置にあるブロックである。すなわち、第１の実施形態と第２の実施形態とでは、動き探索モードを決定するタイミングが異なる。
【００８３】
図１１を用いて、Ｓ９０６の処理を詳細に説明する。Ｓ１１０１において、動き探索モード決定部１０５は、処理対象ブロックのＣＢＰがゼロであったか否かを判定する。ゼロであると判定された場合はＳ１１０２に進み、ゼロでないと判定された場合はＳ１１０５に進む。
【００８４】
Ｓ１１０２において、動き探索モード決定部１０５は、処理対象ブロックがイントラブロックか否かを判定する。イントラブロックであると判定された場合はＳ１１０４の処理に進み、インターブロックであると判定された場合はＳ１１０３の処理に進む。
【００８５】
Ｓ１１０３において、動き探索モード決定部１０５は、処理対象ブロックに対応する動きベクトルとして基準ベクトルが採用されているか否かを判定する。基準ベクトルが採用されていると判定した場合はＳ１１０４に進み、基準ベクトルが採用されていないと判定した場合はＳ１１０５に進む。
【００８６】
Ｓ１１０４において、動き探索モード決定部１０５は、処理対象フレームの次のフレームの複数のブロックのうち、処理対象ブロックと同一位置のブロック（対応ブロック）に対応する動きベクトルとして基準ベクトルを採用するように動き探索モードを決定する。Ｓ１１０５において動き探索モード決定部１０５は、処理対象フレームの次のフレームのブロックのうち、処理対象ブロックと同一位置のブロック（対応ブロック）の動きベクトルとして、Ｎ値画像探索ベクトルが採用されるように、動き探索モードを決定する。なお、Ｎ値画像探索ベクトルとは、入力画像の階調が下げられた画像に対する動き探索によって得られる動きベクトルである。
【００８７】
以上説明したように、本実施形態の動き探索モード決定部１０５は、処理対象ブロックのＮ値画像による動きベクトル探索の開始前に、当該処理対象ブロックに対応する動きベクトルとして、基準ベクトルを採用すべきか否かを判定する。そして、動き探索モード決定部１０５が、基準ベクトルを採用すべきであると判定した場合、Ｎ値画像による動きベクトル探索を実行しない。このような構成により、符号化のための処理負荷や消費電力を低減できる。以上、画像処理装置および画像処理装置の制御方法について説明した。
【００８８】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８９】
１０１  インター予測部
１０２  イントラ予測部
１０３  符号化タイプ決定部
１０４  変換・量子化部
１０５  動き探索モード決定部
１０６  参照画像バッファ
１０７  可変長符号化部
【図１】
2015226111.tif 000004
【図２】
2015226111.tif 000005
【図３】
2015226111.tif 000006
【図４】
2015226111.tif 000007
【図５】
2015226111.tif 000008
【図６】
2015226111.tif 000009
【図７】
2015226111.tif 000010
【図８】
2015226111.tif 000011
【図９】
2015226111.tif 000012
【図１０】
2015226111.tif 000013
【図１１】
2015226111.tif 000014
【図１２】
2015226111.tif 000015