(57)【要約】【課題】動きベクトル予測で周辺候補ブロックを選択する際に、予測精度が低下することを防止しつつ、演算量を削減すること。【解決手段】画像を符号化ブロックに分割し、符号化ブロックを動きベクトル予測の予測対象となる予測ブロックに分割し、画像の符号化を行う画像符号化装置であって、符号化ブロックにおける予測ブロックの分割形状及び位置に基づいて、予測ブロックに隣接する符号化済みブロックを選択する選択部と、選択部により選択された符号化済みブロックの動きベクトルを用いて予測ブロックの動き補償を行うインター予測部と、を備える。【選択図】図４
2013207402.tif 000002
【特許請求の範囲】
【請求項１】
画像を符号化ブロックに分割し、前記符号化ブロックを動きベクトル予測の予測対象となる予測ブロックに分割し、前記画像の符号化を行う画像符号化装置であって、
前記符号化ブロックにおける前記予測ブロックの分割形状及び位置に基づいて、前記予測ブロックに隣接する符号化済みブロックを選択する選択部と、
前記選択部により選択された符号化済みブロックの動きベクトルを用いて前記予測ブロックの動き補償を行うインター予測部と、
を備える画像符号化装置。
【請求項２】
前記選択部は、
前記符号化ブロックが前記予測ブロックに分割される場合、現在の予測対象である前記予測ブロックの分割境界線と前記符号化ブロックの境界線との交点を算出する交点算出部と、
前記交点から前記符号化ブロックの外側方向に前記分割境界線を延長し、延長された分割境界線を用いて２つの領域に分割する領域分割部と、
前記２つの領域のうち、前記現在の予測対象の予測ブロックを含まない領域に含まれる前記符号化済みブロックを選択候補から除外する除外部と、
を備える請求項１記載の画像符号化装置。
【請求項３】
前記除外部は、
前記現在の予測対象の予測ブロックを含まない領域に、ブロックの一部又はブロックの重心が含まれる符号化済みブロックも前記選択候補から除外する請求項２記載の画像符号化装置。
【請求項４】
前記選択部は、
前記選択された符号化済みブロックの数が所定値以下の場合、前記現在の予測対象の予測ブロックを含まない領域に含まれる符号化済みブロックの中で、前記現在の予測対象の予測ブロックに近い順に、該符号化済みブロックの数が所定数になるまで選択する請求項２又は３記載の画像符号化装置。
【請求項５】
画像を符号化ブロックに分割し、前記符号化ブロックを動きベクトル予測の予測対象となる予測ブロックに分割し、前記画像の符号化を行うコンピュータに、
前記符号化ブロックにおける前記予測ブロックの分割形状及び位置に基づいて、前記予測ブロックに隣接する符号化済みブロックを選択する選択ステップと、
前記選択された符号化済みブロックの動きベクトルを用いて前記予測ブロックの動き補償を行うインター予測ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像をブロック状の小領域に分割して符号化を行う画像符号化装置及びプログラムに関する。
【背景技術】
【０００２】
近年マルチメディア化が進み、動画像を扱う機会が多くなってきている。画像データは情報量が大きく、静止画像の集合である動画像は、テレビ放送の主流であるハイビジョン（１９２０×１０８０）放送で１Ｇｂｉｔ／ｓｅｃを超える情報量である。
【０００３】
そのため、動画像データは、Ｈ．２６４／ＡＶＣ（Advanced Video Coding）や規格化作業中のＨＥＶＣ（High Efficiency Video Coding）などに代表される符号化標準技術によって、情報量を圧縮して伝送・蓄積が行われている。
【０００４】
ＨＥＶＣでは、従来の符号化技術のように画面を左上から符号化単位であるブロック状に単純に分割するのではなく、新たに階層分割を採用し、複数階層のブロック分割を可能とする。また、複数のブロックに分割された符号化単位は、ＣＵ（Coding Unit）や符号化ブロックとも呼ぶ。例えば、ＨＥＶＣでは、８×８、１６×１６、３２×３２などのサイズに画像を分割して、符号化を行うことができる。
【０００５】
また、ＨＥＶＣでは、予測誤差信号を効率的に表現するため、ＣＵを階層分割し、変換単位に分けることができる。変換単位は、ＴＵ（Transform Unit）や変換ブロックとも呼ぶ。例えば３２×３２のＣＵに対し、階層分割０回のＴＵは３２×３２のＣＵと同じブロックであり、階層分割１回のＴＵは、１６×１６に分割されたブロックである。また、階層分割２回のＴＵは、８×８に分割されたブロックであり、階層分割３回のＴＵは、４×４に分割されたブロックである。
【０００６】
また、ＨＥＶＣでは、ＣＵを複数種類の矩形領域である予測単位に分割し、それぞれの予測単位で予測処理が行われる。この予測単位は、ＰＵ（Prediction Unit）や予測ブロックとも呼ぶ。
【０００７】
図１は、画面間予測又は画面内予測で用いられる予測ブロックの一例を示す図である。図１に示すように、ＣＵは、４つの種類のＰＵに分けることが可能である。例えば、２Ｎ×２ＮのＣＵに対して、２Ｎ×２ＮのＰＵ、Ｎ×ＮのＰＵ、Ｎ×２ＮのＰＵ、２Ｎ×ＮのＰＵに分けられる。ＰＵは、ＣＵのサイズに応じて様々な種類が存在する。
【０００８】
ここで、Ｈ．２６４やＨＥＶＣに代表される動画圧縮符号化方式において、フレーム間の相関を利用した動き補償による圧縮が行われる。画面内の様々な動きに対応するため、画像全体を階層的に分割し、符号化ブロックの予測ブロック毎にブロックマッチングによる動き補償が行われる。
【０００９】
ＨＥＶＣでは、符号化性能向上のため、ブロックマッチングにより得られる動きベクトルをサイド情報として符号化する手法の他、周辺ブロックから動き補償に用いる動きベクトルを予測する動きベクトル予測手法が実装され、より符号化性能の高い手法が選択される。動きベクトル予測手法では、符号化対象ブロックの上側や左側の隣接する符号化済みのブロック群や、予測ブロックと時間方向で同位置に存在する符号化済みのブロックを用いる。
【００１０】
符号化対象ブロックに隣接する符号化済みブロックを隣接ブロックと呼び、隣接ブロックの中で、動きベクトル予測に用いられる候補を周辺候補ブロックと呼ぶ。また、周辺候補ブロックと、時間方向で符号化対象ブロックと同位置に存在する符号化済みブロックとを含めて候補ブロックと呼ぶ。
【００１１】
これらの候補ブロックのうちから３つのブロックを選択し、水平方向の動きベクトルの中央値を水平方向予測値、垂直方向の動きベクトルの中央値を垂直方向予測値とする。
【００１２】
例えば、ＨＥＶＣでは、隣接ブロックの中から周辺候補ブロックを選択している。図２は、従来の周辺候補ブロックの一例を示す図である。図２に示す例では、予測ブロックｂ１０１の左上の隣接ブロックｂ１１１、右上の隣接ブロックｂ１１２、ｂ１１３、左下の隣接ブロックｂ１１４、ｂ１１５を周辺候補ブロックとする。隣接ブロックｂ１２１〜１２４は、ＨＥＶＣでは周辺候補ブロックとして定められていない。なお、予測ブロックが符号化対象ブロックの中で左端かつ下端以外に位置している場合は、予測ブロックの左下のブロックは、符号化済みブロックであるため利用可能である。また、予想ブロックが符号化対象ブロックの上端に位置している場合は、予測ブロックの右上に位置するブロックは、符号化済みブロックであるため利用可能である。
【００１３】
ＨＥＶＣでは、図２に示すような周辺候補ブロックから２つ、時間方向で同位置の候補ブロックから１つ選び、それらの候補ブロックの中央値を、動き補償に用いる動きベクトルと予測する手法がある。
【００１４】
ＨＥＶＣでは、符号化性能を向上させるため、これらの候補ブロックの選択に対し、全ての組み合わせについて符号化性能を比較し、その中で性能が一番良い候補ブロックの組み合わせを決定する。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】Hiroya Nakamura,「JCTVC-F419 : Unification of derivation process for merge mode and MVP, 14-22 July, 2011
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、従来技術では、予測ブロックの形状又は位置に関わらず、周辺候補ブロックとして選択される隣接ブロックが予測ブロックに対して同じ位置にある。ただし、符号化対象ブロックが画像端のブロックであるなど参照不可能な隣接ブロックがある場合は除く。そのため、選択された周辺候補ブロックの中には、予測ブロックとは全く異なる動きベクトルを有する隣接ブロックが含まれることもある。
【００１７】
この場合、隣接ブロックを周辺候補ブロックとして動きベクトル予測を行った場合、予測された動きベクトルは、予測ブロックの本来の動きベクトルとは大きく異なる可能性が高い。以下では、動きベクトル予測手法で得られる動きベクトルを、予測動きベクトルと呼ぶ。
【００１８】
全ての周辺候補ブロックの組み合わせに対する中央値により得られた予測動きベクトルを、符号化性能で比較した場合、予測ブロックと異なる動きを持つ周辺候補ブロックは最適な周辺候補ブロックとして選択される可能性は低い。よって、符号化性能に寄与することなく、演算処理が増加してしまうという問題点があった。
【００１９】
そこで、本発明は上記問題点に鑑みてなされたものであり、動きベクトル予測で周辺候補ブロックを選択する際に、予測精度の低下を防止しつつ、演算量を削減することができる画像符号化装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明の一態様における画像符号化装置は、画像を符号化ブロックに分割し、前記符号化ブロックを動きベクトル予測の予測対象となる予測ブロックに分割し、前記画像の符号化を行う画像符号化装置であって、前記符号化ブロックにおける前記予測ブロックの分割形状及び位置に基づいて、前記予測ブロックに隣接する符号化済みブロックを選択する選択部と、前記選択部により選択された符号化済みブロックの動きベクトルを用いて前記予測ブロックの動き補償を行うインター予測部と、を備える。
【００２１】
また、前記選択部は、前記符号化ブロックが前記予測ブロックに分割される場合、現在の予測対象である前記予測ブロックの分割境界線と前記符号化ブロックの境界線との交点を算出する交点算出部と、前記交点から前記符号化ブロックの外側方向に前記分割境界線を延長し、延長された分割境界線を用いて２つの領域に分割する領域分割部と、前記２つの領域のうち、前記現在の予測対象の予測ブロックを含まない領域に含まれる前記符号化済みブロックを選択候補から除外する除外部と、を備えてもよい。
【００２２】
また、前記除外部は、前記現在の予測対象の予測ブロックを含まない領域に、ブロックの一部又はブロックの重心が含まれる符号化済みブロックも前記選択候補から除外してもよい。
【００２３】
また、前記選択部は、前記選択された符号化済みブロックの数が所定値以下の場合、前記現在の予測対象の予測ブロックを含まない領域に含まれる符号化済みブロックの中で、前記現在の予測対象の予測ブロックに近い順に、該符号化済みブロックの数を所定数になるまで選択してもよい。
【００２４】
また、本発明の他の態様におけるプログラムは、画像を符号化ブロックに分割し、前記符号化ブロックを動きベクトル予測の予測対象となる予測ブロックに分割し、前記画像の符号化を行うコンピュータに、前記符号化ブロックにおける前記予測ブロックの分割形状及び位置に基づいて、前記予測ブロックに隣接する符号化済みブロックを選択する選択ステップと、前記選択された符号化済みブロックの動きベクトルを用いて前記予測ブロックの動き補償を行うインター予測ステップと、を実行させる。
【発明の効果】
【００２５】
本発明によれば、動きベクトル予測で周辺候補ブロックを選択する際に、予測精度の低下を防止しつつ、演算量を削減することができる。
【図面の簡単な説明】
【００２６】
【図１】画面間予測又は画面内予測で用いられる予測ブロックの一例を示す図。
【図２】従来の周辺候補ブロックの一例を示す図。
【図３】実施例１における画像符号化装置の概略構成の一例を示すブロック図。
【図４】動きベクトル計算部の構成の一例を示すブロック図。
【図５】周辺候補ブロックの第一の例について説明するための図。
【図６】周辺候補ブロックの第二の例について説明するための図。
【図７】周辺候補ブロックの第三の例について説明するための図。
【図８】半直線の推定方向を説明するための図。
【図９】周辺候補ブロックの追加選択を説明するための図。
【図１０】予測ブロックの並列処理を説明するための図。
【図１１】動きベクトル予測処理の一例を示すフローチャート。
【図１２】実施例１における周辺候補ブロックの選択処理の一例を示すフローチャート。
【図１３】実施例２における画像処理装置の構成の一例を示すブロック図。
【発明を実施するための形態】
【００２７】
以下、添付図面を参照しながら本発明について説明する。
【００２８】
［実施例１］
＜構成＞
図３は、実施例１における画像符号化装置１０の概略構成の一例を示すブロック図である。図３に示す例では、画像符号化装置１０は、前処理部１００、予測誤差信号生成部１０１、直交変換部１０２、量子化部１０３、エントロピー符号化部１０４、逆量子化部１０５、逆直交変換部１０６、復号画像生成部１０７、デブロッキングフィルタ部１０８、ループフィルタ部１０９、復号画像記憶部１１０、イントラ予測部１１１、インター予測部１１２、動きベクトル計算部１１３、符号化制御及びヘッダ生成部１１４、及び予測画像選択部１１５を有する。各部についての概略を以下に説明する。
【００２９】
前処理部１００は、ピクチャタイプに合わせてピクチャを並べ替え、ピクチャタイプ及びフレームごとのフレーム画像等を順次出力する。また、前処理部１００は、符号化のためのブロック分割なども行う。
【００３０】
予測誤差信号生成部１０１は、入力された動画像データの符号化対象画像が、例えば３２×３２、１６×１６、８×８画素などのブロックに分割されたブロックデータを取得する。
【００３１】
予測誤差信号生成部１０１は、そのブロックデータと、予測画像選択部１１５から出力される予測画像のブロックデータとにより、予測誤差信号を生成する。予測誤差信号生成部１０１は、生成された予測誤差信号を直交変換部１０２に出力する。
【００３２】
直交変換部１０２は、入力された予測誤差信号を変換単位で直交変換処理する。直交変換部１０２は、直交変換部１０２は、直交変換処理によって水平及び垂直方向の周波数成分に分離された信号を量子化部１０３に出力する。
【００３３】
量子化部１０３は、直交変換部１０２からの出力信号を量子化する。量子化部１０３は、量子化することによって出力信号の符号量を低減し、この出力信号をエントロピー符号化部１０４及び逆量子化部１０５に出力する。
【００３４】
エントロピー符号化部１０４は、量子化部１０３からの出力信号や動きベクトル計算部１１３から出力された動きベクトル情報やループフィルタ部１０９からのフィルタ係数などをエントロピー符号化して出力する。エントロピー符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる方式をいう。
【００３５】
逆量子化部１０５は、量子化部１０３からの出力信号を逆量子化してから逆直交変換部１０６に出力する。逆直交変換部１０６は、逆量子化部１０５からの出力信号を逆直交変換処理してから復号画像生成部１０７に出力する。これら逆量子化部１０５及び逆直交変換部１０６によって復号処理が行われることにより、符号化前の予測誤差信号と同程度の信号が得られる。
【００３６】
復号画像生成部１０７は、インター予測部１１２で動き補償された画像のブロックデータと、逆量子化部１０５及び逆直交変換部１０６により復号処理された予測誤差信号とを加算する。復号画像生成部１０７は、加算して生成した復号画像のブロックデータを、デブロッキングフィルタ部１０８に出力する。
【００３７】
デブロッキングフィルタ部１０８は、復号画像生成部１０７から出力された復号画像に対し、ブロック歪を低減するためのフィルタをかけ、ループフィルタ部１０９に出力する。
【００３８】
ループフィルタ部１０９は、例えばＡＬＦ（Adaptive Loop Filter）であり、デブロッキングフィルタ処理された復号画像と、入力画像とを用いてフィルタ処理を行う。フィルタ処理は、例えばウィナーフィルタ（Wiener Filter）が用いられるが、その他のフィルタでも良い。
【００３９】
また、ループフィルタ部１０９は、入力画像を所定サイズ毎のグループに分け、グループ毎に適切なフィルタ係数を生成する。ループフィルタ部１０９は、デブロッキングフィルタ処理された復号画像を、所定サイズ毎にグループ分けし、生成したフィルタ係数を用いてグループ毎にフィルタ処理を行う。ループフィルタ部１０９は、フィルタ処理結果を復号画像記憶部１１０に出力し、参照画像として蓄積させる。所定サイズは、例えば、直交変換サイズである。
【００４０】
復号画像記憶部１１０は、入力した復号画像のブロックデータを新たな参照画像のデータとして記憶し、イントラ予測部１１１、インター予測部１１２及び動きベクトル計算部１１３に出力する。
【００４１】
イントラ予測部１１１は、符号化対象画像の処理対象ブロックに対して、すでに符号化された参照画素から予測画像を生成する。イントラ予測部１１１は、複数の予測方向を用いて予測を行い、最適な予測方向を決定する。
【００４２】
インター予測部１１２は、復号画像記憶部１１０から取得した参照画像のデータを動きベクトル計算部１１３から提供される動きベクトルで動き補償する。これにより、動き補償された参照画像としてのブロックデータが生成される。
【００４３】
また、インター予測部１１２は、演算量削減のため、予測ブロックの周辺候補ブロックが有する動きベクトルに基づいて生成された予測動きベクトルを用いて、動き補償を行ってもよい。
【００４４】
動きベクトル計算部１１３は、符号化対象画像におけるブロックデータと、復号画像記憶部１１０から取得する参照画像とを用いて、動きベクトルを求める。動きベクトルとは、ブロック単位で参照画像内から処理対象ブロックに最も類似している位置を探索するブロックマッチング技術を用いて求められるブロック単位の空間的なずれを示す値である。
【００４５】
動きベクトル計算部１１３は、求めた動きベクトルをインター予測部１１２に出力し、動きベクトルや参照画像を示す情報を含む動きベクトル情報をエントロピー符号化部１０４に出力する。また、動きベクトル計算部１１３は、予測ブロックの隣接ブロックから周辺候補ブロックを選択する機能を有する。この機能は、図４を用いて後述する。
【００４６】
イントラ予測部１１１とインター予測部１１２から出力されたブロックデータは、予測画像選択部１１５に入力される。
【００４７】
予測画像選択部１１５は、イントラ予測部１１１とインター予測部１１２から取得したブロックデータのうち、どちらか一方のブロックデータを予測画像として選択する。選択された予測画像は、予測誤差信号生成部１０１に出力される。
【００４８】
また、符号化制御及びヘッダ生成部１１４は、符号化の全体制御とヘッダ生成を行う。符号化制御及びヘッダ生成部１１４は、イントラ予測部１１１に対して、スライス分割有無の通知、デブロッキングフィルタ部１０８に対して、デブロッキングフィルタ有無の通知、動きベクトル計算部１１３に対して参照画像の制限通知などを行う。
【００４９】
符号化制御及びヘッダ生成部１１４は、その制御結果を用いて、ヘッダ情報を生成する。生成されたヘッダ情報は、エントロピー符号化部１０４に出力され、画像データ、動きベクトルデータとともにストリームとして出力される。
【００５０】
画像符号化装置１０の上記構成はあくまでも一例であり、実装の仕方によって構成を変更してもよい。例えばインター予測部１１２と動きベクトル計算部１１３は１つの構成であってもよい。
【００５１】
＜動きベクトル予測を行う構成＞
次に、動きベクトル計算部１１３の構成について説明する。図４は、動きベクトル計算部１１３の構成の一例を示すブロック図である。図４に示す動きベクトル計算部１１３は、周辺候補ブロックを選択するための選択部２０１を有する。
【００５２】
動きベクトル計算部１１３は、図４に示した構成以外にも、一般的な動きベクトルを計算するための構成などを有するものとする。なお、予測動きベクトルを決定するために用いる周辺候補ブロックを選択する選択部２０１は、インター予測部１１２が有するようにしてもよい。
【００５３】
選択部２０１は、予測ブロックの隣接ブロックの中から、周辺候補ブロックを選択する機能を有する。選択部２０１は、例えば、予測ブロックの分割形状及び位置に基づいて、予測ブロックに隣接する隣接ブロックの中から周辺候補ブロックを選択する。
【００５４】
周辺候補ブロックを選択するために、選択部２０１は、例えば、交点算出部２１１、領域分割部２１２、除外部２１３及び追加選択部２１４を有する。
【００５５】
交点算出部２１１は、まず、前処理部１００から符号化ブロックを取得する。交点算出部２１１は、動きベクトル計算部１１３により符号化ブロックが予測ブロックに分割される場合、現在の予測対象である予測ブロックの分割境界線と符号化ブロックの境界線との交点を算出する。以下では、現在の予測対象の予測ブロックを予測対象ブロックと呼ぶ。交点算出部２１１は、算出された交点を領域分割部２１２に通知する。
【００５６】
領域分割部２１２は、交点算出部２１１から取得した交点に対し、この交点から符号化ブロックの外側方向に分割境界線を延長し、延長された分割境界線を用いて２つの領域に分割する。この２つの領域は、予測ブロックを含む領域１と、予測ブロックを含まない領域２とする。領域分割部２１１は、分割した領域１，２の情報を除外部２１３に通知する。以下では、分割した領域１，２の情報を、領域情報と呼ぶ。
【００５７】
除外部２１３は、まず、領域情報を領域分割部２１２から取得し、また、予測対象ブロックに隣接する隣接ブロックを復号画像記憶部１１０から取得する。除外部２１３は、取得した領域情報に基づいて、領域２に含まれる隣接ブロックを周辺候補ブロックから除外する。除外部２１３は、言い換えると、領域１に含まれる隣接ブロックを周辺候補ブロックに選択する候補選択部としても機能する。除外部２１３は、選択した周辺候補ブロックをインター予測部１１２に出力する。
【００５８】
また、除外部２１３は、予測対象ブロックを含まない領域（第２領域）に、ブロックの一部又はブロックの重心が含まれる隣接ブロックも周辺候補ブロックから除外してもよい。このとき、除外部２１３は、領域２に含まれる隣接ブロックの重心を算出しておき、その重心が領域２に含まれるか否かの判定を行う。
【００５９】
インター予測部１１２は、選択部２０１により選択された周辺候補ブロックの動きベクトルを用いて、上述したように予測動きベクトルを決定し、予測動きベクトルを用いて動き補償を行う。インター予測部１１２では、様々な予測対象ブロックの形状に基づいて符号化性能を判定し、最善の符号性能を有する予測ブロックの形状を決定する。
【００６０】
また、除外部２１３により隣接ブロックを除外することで、周辺候補ブロックが所定値以下となることがある。所定値は、例えば０〜４などのいずれかである。周辺候補ブロックが所定値以下となる場合、周辺候補ブロックが少なくなるため、適切な動きベクトル予測ができない可能性が高くなる。
【００６１】
そこで、追加選択部２１４は、一度除外された隣接ブロックの中から、所定基準に従って周辺候補ブロックとなる隣接ブロックを追加で選択する。追加選択部２１４は、例えば、領域２に含まれる隣接ブロックの中で、予測対象ブロックに近い順に、所定数になるまで隣接ブロックを選択する。所定数は、所定値と同じ数であってもよいし、所定値よりも多い数であってもよい。
【００６２】
ここで、分割を階層で表現する場合、符号化ブロックから予測ブロックへの分割を最小階層への分割と表現する。例えば、最小階層の分割境界線は、予測ブロックに分割するための境界線であり、他の階層の分割境界線は、符号化ブロックを分割するための境界線である。
【００６３】
このとき、交点算出部２１１及び領域分割部２１２は、次のように説明することもできる。交点算出部２１１は、最小階層での分割境界線と、他の階層での分割境界線との交点を算出する。
【００６４】
領域分割部２１２は、交点算出部２１１で算出された交点から最小階層の分割境界線に対して平行であり符号化ブロック外側方向に引いた半直線と、最小階層での分割境界線とで領域を２つに分ける。
【００６５】
これにより、選択部２０１は、予測対象ブロックの形状や位置に基づいて、周辺候補ブロックを絞り込むことで演算量を削減し、予測対象ブロックと似たような動きを有する隣接ブロックを周辺候補ブロックとすることで予測精度を維持することができる。
【００６６】
これは、符号化ブロックが予測ブロックに分割されるということは、予測対象ブロックと他の予測ブロックとは基本的には異なる動きを有するために分割がなされるという考えに基づく。つまり、予測対象ブロックと異なる他の予測ブロックに隣接する符号化済みブロックの動きは、予測対象ブロックと異なる動きを有する可能性が高い。
【００６７】
したがって、予測ブロックに分割するための分割境界線を用いて領域を２つに分割し、予測対象ブロックを含む領域に含まれる隣接ブロックは、予測対象ブロックと同じ動きを有すると推定する。一方、予測対象ブロックを含まない領域に含まれる隣接ブロックは、予測対象ブロックと異なる動きを有すると推定する。
【００６８】
＜周辺候補ブロックの例＞
次に、予測対象ブロックの形状や位置によって選択される周辺候補ブロックの例について説明する。図５は、周辺候補ブロックの第一の例について説明するための図である。図５に示す例では、太線で囲まれたブロックｂ２００は、符号化ブロックを示し、梨地１（点の密度が梨地２より低い）のブロックｂ２０１は、予測対象ブロックを示す。
【００６９】
図５に示す破線は、予測ブロックに分割するための境界線を示し、太い破線は、予測対象ブロックの分割境界線を示す。また、図５に示す交点ｃ１０１、ｃ１０２は、予測対象ブロックの分割境界線（太い破線）と、符号化ブロックの境界線（太線）との交点を示す。
【００７０】
図５に示す一点鎖線の太線ｄ１０１、ｄ１０２は、交点ｃ１０１、ｃ１０２からそれぞれ符号化ブロックｂ２００の外側に分割境界線を延長した線を示す。延長された分割境界線（太い破線と太い一点鎖線）を用いて２つの領域に分けられる。
【００７１】
このとき、予測対象ブロックｂ２０１を含む領域を領域１とし、予測対象ブロックｂ２０１を含まない領域を領域２とする。
【００７２】
除外部２１３は、領域２に含まれる斜線で表された隣接ブロックｂ２２１、ｂ２２２を、周辺候補ブロックから除外する。また、除外部２１３は、領域１に含まれる白色で表された隣接ブロックｂ２１１〜ｂ２１３を周辺候補ブロックとして選択する候補選択部としても機能する。
【００７３】
なお、ここではラスタースキャンを想定しているので、梨地２（点の密度が梨地１より高い）のブロックｂ２３１〜２３３は、符号化済みではないため、予測対象ブロックｂ２０１では参照することができないブロックである。
【００７４】
図６は、周辺候補ブロックの第二の例について説明するための図である。図６に示す例では予測ブロックの形状が図５に示す予測ブロックの形状と異なる。また、図６では、予測対象ブロックの位置で、どの隣接ブロックが除外されるかを説明する。なお、図６に示す太い破線、太い一点鎖線、太線、梨地１のブロック、梨地２のブロック、斜線のブロック、白色のブロックの定義は、図５に示す定義と同じである。
【００７５】
図６（Ａ）は、縦長の予測ブロックに分割され、左側を予測対象ブロックとしたときの周辺候補ブロックの例を示す。図６（Ａ）に示す予測ブロックは、縦方向に分割されるため、左右に隣同士の予測ブロックでは異なる動きをすると推定される。そのため、予測対象ブロックの右隣の予測ブロックと、この予測ブロックの縦方向に隣接する隣接ブロックは、周辺候補ブロックから除外される。
【００７６】
図６（Ｂ）は、縦長の予測ブロックに分割され、右側を予測対象ブロックとしたときの周辺候補ブロックの例を示す。図６（Ｂ）に示す予測ブロックは、縦方向に分割されるため、左右に隣同士の予測ブロックでは異なる動きをすると推定される。そのため、予測対象ブロックの左隣の予測ブロックと、この予測ブロックの縦方向に隣接する隣接ブロックは、周辺候補ブロックから除外される。
【００７７】
図６（Ｃ）は、横長の予測ブロックに分割され、上側を予測対象ブロックとしたときの周辺候補ブロックの例を示す。図６（Ｃ）に示す予測ブロックは、横方向に分割されるため、上下に隣同士の予測ブロックでは異なる動きをすると推定される。そのため、予測対象ブロックの隣下の予測ブロックと、この予測ブロックの横方向に隣接する隣接ブロックは、周辺候補ブロックから除外される。
【００７８】
図６（Ｄ）は、横長の予測ブロックに分割され、下側を予測対象ブロックとしたときの周辺候補ブロックの例を示す。図６（Ｄ）に示す予測ブロックは、横方向に分割されるため、上下に隣同士の予測ブロックでは異なる動きをすると推定される。そのため、予測対象ブロックの隣上の予測ブロックと、この予測ブロックの横方向に隣接する隣接ブロックは、周辺候補ブロックから除外される。
【００７９】
図７は、周辺候補ブロックの第三の例について説明するための図である。図７に示す例では予測ブロックの形状が図５や図６に示す予測ブロックの形状と異なる。なお、図７に示す太い破線、太い一点鎖線、太線、梨地１のブロック、梨地２のブロック、斜線のブロック、白色のブロックの定義は、図５に示す定義と同じである。
【００８０】
また、図７に示す予測ブロックは、矩形ではないが、図７に示すような台形やその他の任意の形状を予測ブロックとすることもありうる。よって、図７に示すような任意の形状の予測ブロックのときに、予測対象ブロックの位置で、どの隣接ブロックが除外されるかについて図７を用いて説明する。
【００８１】
図７（Ａ）は、符号化ブロックに対して、予測ブロックの一つが台形になるように分割され、左側を予測対象ブロックとしたときの周辺候補ブロックの例を示す。図７（Ａ）に示す予測対象ブロックは、不規則な形状に分割されるが、もともとの基準に従って、予測対象ブロックを含まない領域２に含まれるブロックは異なる動きをすると推定される。そのため、領域２に含まれる隣接ブロックは、周辺候補ブロックから除外される。
【００８２】
図７（Ｂ）は、図７（Ａ）と同じ予測ブロックの分割であり、右側の領域を予測対象ブロックとしたときの周辺候補ブロックの例を示す。図７（Ｂ）に示す予測対象ブロックは、領域２に含まれるブロックとは異なる動きをすると推定される。そのため、領域２に含まれる隣接ブロックは、周辺候補ブロックから除外される。
【００８３】
また、図７に示す例では、最小階層の分割境界線（予測ブロックの分割境界線）が、他の階層の分割境界線（符号化ブロックの境界線）と垂直に交わらない。最小階層の分割境界線と、他の階層の分割境界線と垂直に交わる場合は、上記例と同様とする。
【００８４】
最小階層の分割境界線と他の階層の分割境界線とが垂直に交わらない場合の、交点からの半直線の方向推定について図８を用いて説明する。図８は、半直線の推定方向を説明するための図である。図８に示す領域ａｒ３０１は、半直線の方向を推定するのに用いる領域を示す。図８に示す交点ｃ３０１は、最小階層の分割境界線と、他の階層の分割境界線とが垂直に交わらない交点を示す。図８に示す太い一点鎖線は、交点からの半直線を示す。
【００８５】
このとき、領域分割部２１２は、交点ｃ３０１近傍の一定画素領域ａｒ３０１内で、予測対象ブロックの画素数に基づいて、交点ｃ３０１から伸びる半直線ｄ３０１の方向を推定する。例えば、領域分割部２１２は、領域ａｒ３０１内に含まれる、予測対象ブロックの画素数と、予測対象ブロック以外の予測ブロックの画素数との割合を求め、この割合に基づいて、交点からの半直線ｄ３０１の傾きを決定する。
【００８６】
領域分割部２１２は、最小階層の分割境界線又は延長された分割境界線と半直線とで２つの領域に分割する。以降の処理は、上記で説明した内容と同様である。
【００８７】
図６〜８で説明したとおり、予測対象ブロックの形状や位置によって、予測対象ブロックと同じ動きを有すると推定される周辺候補ブロックを選択することができる。
【００８８】
＜追加選択＞
次に、周辺候補ブロックの追加選択について図を用いて説明する。図９は、周辺候補ブロックの追加選択を説明するための図である。図９に示すブロックｂ４２１、ｂ４２２は、除外部２１３により、周辺候補ブロックから除外されたブロックである。
【００８９】
ここで、追加選択部２１４は、選択された周辺候補ブロックの数が所定値以下であると判定したとする。このとき、追加選択部２１４は、予測対象ブロックｂ４０１から近い順に、除外された隣接ブロックを周辺候補ブロックに追加で選択していく。
【００９０】
例えば、追加選択部２１４は、隣接ブロックｂ４１１、ｂ４１２の順で周辺候補ブロックに追加で選択する。なお、後述するが、実施例１における予測ブロックでは、分割後の各予測ブロックの動きベクトル予測処理、動き補償を並列して行うことができる。
【００９１】
このように、各予測ブロックの処理を並列で行う場合は、ブロックｂ４１１は、予測対象ブロックｂ４０１の処理時には動きベクトルが存在しない。なお、実施例１では、ラスタースキャン順で符号化することを想定している。
【００９２】
よって、この場合の追加選択部２１４は、符号化済みであるブロックｂ４１２のみを周辺候補ブロックに追加する。
【００９３】
＜並列処理＞
次に、各予測ブロックの処理が並列で処理できることについて説明する。図１０は、予測ブロックの並列処理を説明するための図である。図１０に示す例では、符号化ブロックｂ５００を縦長の予測ブロックに分割する。また、ラスタースキャン順で符号化することを想定しているため、一般的な従来技術では、図１０（Ａ）に示す予測対象ブロックｂ５０１、次に、図１０（Ｂ）に示す予測対象ブロックｂ６０１の順で符号化される。
【００９４】
従来技術では、予測対象ブロックｂ６０１を処理する場合に、隣接ブロックｂ６２１の動きベクトルが必要になり、従って、予測対象ブロックｂ５０１が先に符号化されている必要がある。
【００９５】
一方、実施例１によれば、図１０（Ｂ）に示すように、予測対象ブロックｂ６０１を処理する場合に、隣接ブロックｂ６２１は除外されているため、隣接ブロックｂ６２１の動きベクトルを必要としない。
【００９６】
図１０（Ｂ）に示す予測対象ブロックｂ６０１で用いる隣接ブロックは、図１０（Ａ）に示す予測対象ブロックｂ５０１の処理時に既に符号化済みである。従って、図１０（Ａ）に示す予測対象ブロックｂ５０１と、図１０（Ｂ）に示す予測対象ブロックｂ６０１とは並列で処理することができる。
【００９７】
実施例１における周辺候補ブロックの選択方法を用いれば、図１０に示した予測ブロックの形状によらず、様々な形状の予測ブロックの分割に対しても同様のことがいえる。よって、実施例１によれば、各予測ブロックの処理を並列化することができるため、従来技術よりも高速化することができる。
【００９８】
＜動作＞
次に、実施例１における画像符号化装置１０の動作について説明する。図１１は、動きベクトル予測処理の一例を示すフローチャートである。図１１に示すステップＳ１０１で、選択部２０１は、予測対象ブロックの分割形状及び位置に基づいて、予測ブロックに隣接する符号化済みの隣接ブロックから、予測対象ブロックを含まない領域に含まれる隣接ブロックを除いて周辺候補ブロックを選択する。
【００９９】
ステップＳ１０２で、インター予測部１１２は、従来のブロックマッチングに基づく動きベクトル算出により求められた動きベクトルによる動き補償と、選択部２０１により選択された複数の周辺候補ブロックの中で予測が最善となる周辺候補ブロックの組み合わせにより算出された動きベクトルを用いた動き補償について符号化性能を比較する。比較の結果、ブロックマッチングによる動き補償の符号化性能が高い場合、動きベクトルの係数が、動きベクトル計算部１１３からエントロピー符号化部１０４に出力され、動きベクトル予測による動き補償の符号化性能が高い場合、最善な周辺候補ブロックのインデックスが、動きベクトル計算部１１３からエントロピー符号化部１０４に出力され、ストリームに含まれる。
【０１００】
次に、周辺候補ブロックの選択処理について詳しく説明する。図１２は、実施例１における周辺候補ブロックの選択処理の一例を示すフローチャートである。図１２に示すステップＳ２０１で、選択部２０１は、符号化ブロックを入力する。
【０１０１】
ステップＳ２０２で、選択部２０１は、復号画像記憶部１１０から参照可能なブロックを検索し、参照可能なブロックに関する情報を取得する。ブロックに関する情報とは、ブロックの位置情報や動きベクトル情報などである。
【０１０２】
ステップＳ２０３で、交点算出部２１１は、最小階層の分割境界線（予測ブロックの分割境界線）と、他の階層の分割境界線（符号化ブロックの境界線）との交点を算出する。
【０１０３】
ステップＳ２０４で、領域分割部２１２は、周辺候補ブロックから除外するための除外領域（領域２）を決定する。領域分割部２１２は、例えば、交点算出部２１１により算出された交点から、符号化ブロックの外側方向に分割境界線を延長し、延長された分割境界線を用いて２つの領域に分割する。このとき、領域分割部２１２は、予測対象ブロックを含まない領域を除外領域に決定する。
【０１０４】
ステップＳ２０５で、除外部２１３は、除外領域に含まれる隣接ブロックを周辺候補ブロックから除外する。
【０１０５】
ステップＳ２０６で、除外部２１３は、隣接ブロックの重心の位置を計算する。ステップＳ２０７で、除外部２１３は、隣接ブロックの重心が除外領域に含まれているか否かを判定する。重心が除外領域に含まれていれば（ステップＳ２０７−ＹＥＳ）ステップＳ２０８に進み、重心が除外領域に含まれていなければ（ステップＳ２０７−ＮＯ）ステップＳ２０９に進む。
【０１０６】
ただし、隣接ブロックの重心が、延長された分割境界線上にある場合は、除外するかしないかを予め設定しておけばよい。
【０１０７】
ステップＳ２０８で、除外部２１３は、重心が除外領域に含まれる隣接ブロックを、周辺候補ブロックから除外する。
【０１０８】
ステップＳ２０９で、選択部２０１は、除外されずに残っている隣接ブロックを周辺候補ブロックとして選択し、選択した周辺候補ブロックをインター予測部１１２に出力する。
【０１０９】
なお、ステップＳ２０９の処理の前に、追加選択部２１４により、周辺候補ブロックの追加選択処理が行われてもよい。また、ステップＳ２０６〜Ｓ２０８の処理は、必ずしも必要な処理ではない。
【０１１０】
以上、実施例１によれば、動きベクトル予測で周辺候補ブロックを選択する際に、予測精度が低下することを防止しつつ、演算量を削減することができる。また、実施例１における各予測ブロックの処理は、並列で行うことができるため、高速化につながる。また、実施例１によれば、予測ブロックは矩形のブロックに限らない。
【０１１１】
［実施例２］
図１３は、実施例２における画像処理装置３０の構成の一例を示すブロック図である。図１３に示す画像処理装置３０は、上述した実施例１で説明した画像符号化処理をソフトウェアで実装した装置の一例である。
【０１１２】
図１３に示すように、画像処理装置３０は、制御部３０１、主記憶部３０２、補助記憶部３０３、ドライブ装置３０４、ネットワークＩ／Ｆ部３０６、入力部３０７、表示部３０８を有する。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【０１１３】
制御部３０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部３０１は、主記憶部３０２又は補助記憶部３０３に記憶された画像符号化処理のプログラムを実行する演算装置である。制御部３０１は、入力部３０７や記憶装置からデータを受け取り、演算、加工した上で、表示部３０８や記憶装置などに出力する。
【０１１４】
制御部３０１は、画像符号化処理のプログラムを実行することで、各実施例で説明した処理を実現することができる。
【０１１５】
主記憶部３０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などである。主記憶部３０２は、制御部３０１が実行する基本ソフトウェアであるＯＳ（Operating System）やアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０１１６】
補助記憶部３０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０１１７】
ドライブ装置３０４は、記録媒体３０５、例えばフレキシブルディスクからプログラムを読み出し、記憶部にインストールする。
【０１１８】
また、記録媒体３０５に、所定のプログラムを格納し、この記録媒体３０５に格納されたプログラムはドライブ装置３０４を介して画像処理装置３０にインストールされる。インストールされた所定のプログラムは、画像処理装置３０により実行可能となる。
【０１１９】
ネットワークＩ／Ｆ部３０６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と画像処理装置３０とのインターフェースである。
【０１２０】
入力部３０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部３０８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部３０７は、ユーザが制御部３０１に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【０１２１】
表示部３０８は、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等により構成され、制御部３０１から入力される表示データに応じた表示が行われる。
【０１２２】
なお、図３に示す復号画像記憶部１１０は、例えば主記憶部３０２又は補助記憶部３０３により実現され、図３に示す復号画像記憶部１１０以外の構成は、例えば制御部３０１及びワークメモリとしての主記憶部３０２により実現されうる。
【０１２３】
画像処理装置３０で実行されるプログラムは、実施例１で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部３０１が補助記憶部３０３からプログラムを読み出して実行することにより上記各部のうち１又は複数の各部が主記憶部３０２上にロードされ、１又は複数の各部が主記憶部３０２上に生成されるようになっている。
【０１２４】
このように、上述した実施例１で説明した画像符号化処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、各実施例で説明した処理を実現することができる。
【０１２５】
また、このプログラムを記録媒体３０５に記録し、このプログラムが記録された記録媒体３０５をコンピュータや携帯端末に読み取らせて、前述した画像符号化処理を実現させることも可能である。なお、記録媒体３０５は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１２６】
また、上述した実施例１で説明した各部は、各種の集積回路や電子回路を採用できる。また、実施例１で説明した各部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【０１２７】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
【符号の説明】
【０１２８】
１０  画像符号化装置
３０  画像処理装置
１０１  予測画像生成部
１０２  直交変換部
１０３  量子化部
１０４  エントロピー符号化部
１０５  逆量子化部
１０６  逆直交変換部
１０７  復号画像生成部
１０８  デブロッキングフィルタ部
１０９  ループフィルタ部
１１０  復号画像記憶部
１１１  イントラ予測部
１１２  インター予測部
１１３  動きベクトル計算部
１１４  符号化制御及びヘッダ生成部
１１５  予測画像選択部
２０１  選択部
２１１  交点算出部
２１２  領域分割部
２１３  除外部
２１４  追加選択部
３０１  制御部
３０２  主記憶部
３０３  補助記憶部
３０４  ドライブ装置
【図１】
2013207402.tif 000003
【図２】
2013207402.tif 000004
【図３】
2013207402.tif 000005
【図４】
2013207402.tif 000006
【図５】
2013207402.tif 000007
【図６】
2013207402.tif 000008
【図７】
2013207402.tif 000009
【図８】
2013207402.tif 000010
【図９】
2013207402.tif 000011
【図１０】
2013207402.tif 000012
【図１１】
2013207402.tif 000013
【図１２】
2013207402.tif 000014
【図１３】
2013207402.tif 000015