(57)【特許請求の範囲】
【請求項１】
画像を符号化して符号化データを生成する画像符号化装置であって、
画像を構成するフレームをブロックに分割する分割手段と、
符号化対象ブロックにおける予測に関する予測情報を決定する予測情報決定手段と、
前記予測情報決定手段によって決定された前記予測情報に従って符号化対象ブロックを符号化し、前記符号化データを生成する符号化手段と
を備え、
前記予測情報は、符号化対象ブロックと同じ画面内の符号化済の画素を用いて予測するイントラ予測を用いるか、又は、符号化対象ブロックと異なる画面の符号化済の画素を用いて予測するインター予測を用いるかを示す情報を含み、
前記予測情報は、符号化対象ブロックにおいてイントラ予測を用いる場合は、複数のイントラ予測モードの中から決定される、当該符号化対象ブロックにおいて用いられるイントラ予測モードを示す情報を更に含み、
前記予測情報決定手段は、
符号化対象ブロックにおける予測方法として、前記イントラ予測を用いるか、又は、前記インター予測を用いるか決定する予測モード決定手段と、
符号化対象ブロックの周辺のブロックの予測モードに基づいて、前記イントラ予測モードを決定するイントラ予測モード決定手段と
を有し、
前記イントラ予測モード決定手段は、前記周辺のブロックにおいて前記インター予測を用いることができる場合には、当該周辺のブロックにおける予測情報に関わらず、当該周辺のブロックがインター予測されると推定して符号化対象ブロックのイントラ予測モードを決定し、
前記予測モード決定手段は、前記周辺のブロックにおいて前記インター予測を用いることができる場合には、前記周辺のブロックにおける前記予測情報に基づいて決定されるイントラ予測モードで行われる前記イントラ予測の結果に基づかずに、前記周辺のブロックがインター予測されると推定して決定されたイントラ予測モードで行われる前記イントラ予測の結果に基づき、符号化対象ブロックにおける予測方法として、前記イントラ予測を用いるか、又は、前記インター予測を用いるか決定する
ことを特徴とする画像符号化装置。
【請求項２】
前記イントラ予測モード決定手段は、前記周辺のブロックが前記インター予測を用いることができない場合には、符号化対象ブロックの前記周辺のブロックのイントラ予測モードに基づいて前記符号化対象ブロックのイントラ予測モードを決定することを特徴とする請求項１記載の画像符号化装置。
【請求項３】
前記イントラ予測モード決定手段は、前記符号化対象ブロックの前記周辺のブロックのイントラ予測モードに応じて、前記複数のイントラ予測モードのうちから１つ以上の優先モードを決定し、決定した前記優先モードが他のイントラ予測モードよりも選択されやすいように制御することを特徴とする請求項１又は２記載の画像符号化装置。
【請求項４】
前記イントラ予測モード決定手段は、前記複数のイントラ予測モードのうちのＩｎｔｒａ＿Ｐｌａｎａｒ及びＩｎｔｒａ＿ＤＣの少なくとも１つを前記優先モードとして決定することを特徴とする請求項３記載の画像符号化装置。
【請求項５】
画像を符号化して符号化データを生成する画像符号化方法であって、
画像を構成するフレームをブロックに分割する分割工程と、
符号化対象ブロックにおける予測に関する予測情報を決定する予測情報決定工程と、
前記予測情報決定工程によって決定された前記予測情報に従って符号化対象ブロックを符号化し、前記符号化データを生成する符号化工程と
を有し、
前記予測情報は、符号化対象ブロックと同じ画面内の符号化済の画素を用いて予測するイントラ予測を用いるか、又は、符号化対象ブロックと異なる画面の符号化済の画素を用いて予測するインター予測を用いるかを示す情報を含み、
前記予測情報は、符号化対象ブロックにおいてイントラ予測を用いる場合は、複数のイントラ予測モードの中から決定される、当該符号化対象ブロックにおいて用いられるイントラ予測モードを示す情報を更に含み、
前記予測情報決定工程は、
符号化対象ブロックにおける予測方法として、前記イントラ予測を用いるか、又は、前記インター予測を用いるか決定する予測モード決定工程と、
符号化対象ブロックの周辺のブロックの予測モードに基づいて、前記イントラ予測モードを決定するイントラ予測モード決定工程と
を含み、
前記イントラ予測モード決定工程において、前記周辺のブロックにおいて前記インター予測を用いることができる場合には、当該周辺のブロックにおける予測情報に関わらず、当該周辺のブロックがインター予測されると推定して符号化対象ブロックのイントラ予測モードを決定し、
前記予測モード決定工程において、前記周辺のブロックにおいて前記インター予測を用いることができる場合には、前記周辺のブロックにおける前記予測情報に基づいて決定されるイントラ予測モードで行われる前記イントラ予測の結果に基づかずに、前記周辺のブロックがインター予測されると推定して決定されたイントラ予測モードで行われる前記イントラ予測の結果に基づき、符号化対象ブロックにおける予測方法として、前記イントラ予測を用いるか、又は、前記インター予測を用いるか決定する
ことを特徴とする画像符号化方法。
【請求項６】
コンピュータを請求項１〜４のいずれか１項に記載の画像符号化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法及びプログラムに関する。
【背景技術】
【０００２】
動画像の圧縮記録の符号化方式として、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（以下、Ｈ．２６４）が知られている。近年、さらに高効率な符号化方式の国際標準化を行う活動が開始され、ＪＣＴ−ＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）が設立された。ＪＣＴ−ＶＣでは、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ符号化方式（以下、ＨＥＶＣ）の標準化が進められている。ＨＥＶＣにおいては符号化効率を向上させるために、画面内における画素間の相関を利用した画面内予測（以下、イントラ予測とも称す）及び異なる画面間の時間的な相関を利用した画面間予測（以下、インター予測とも称す）を行い、予測誤差を符号化する。
【０００３】
イントラ予測は、予測の単位であるイントラ予測ブロックのサイズ（以下、イントラ予測ブロックサイズ）に基づいて行われる。ＨＥＶＣにおいては、イントラ予測ブロックサイズとして水平方向４画素、垂直方向４画素（以下、４×４画素と示す）、８×８画素、１６×１６画素、３２×３２画素、６４×６４画素の５種類を使用可能である。また、ＨＥＶＣにおいては、さらなる高効率な符号化を実現するために、図９に示すように３５個のイントラ予測モードが定義されている。
【０００４】
さらに、ＨＥＶＣにおいては、符号化のブロック単位であるＣｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ（以下、ＣＴＵ）内において、イントラ予測を行うイントラ予測ブロックとインター予測を行うインター予測ブロックとを混在させて使用することが可能である。なお、Ｈ．２６４においては、符号化の単位であるマクロブロック内でイントラ予測を行うイントラ予測ブロックとインター予測を行うインター予測ブロックとを混在させることはできない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−５４３８号公報
【特許文献２】特開２００９−１７７３５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述のようにＨＥＶＣにおいては、イントラ予測ブロックサイズとして５種類が存在し、イントラ予測モードとして３５個のモードが定義されている。このように多くのイントラ予測ブロックサイズ及びイントラ予測モードの中から最適な組み合わせを選択するには、多大な演算量が必要となる。これに対し、符号化処理を高速化するために、符号化のブロック単位でパイプライン処理を行うといった手法が考えられる。
【０００７】
ＨＥＶＣにおいて、最適なイントラ予測モードを選択するためには、各イントラ予測モードの予測発生符号量を計算する必要があるので、周囲のブロックのイントラ予測モードを参照する必要がある。イントラ予測モードの決定に対しパイプライン処理を行った場合、処理対象のブロックのイントラ予測モードを決定するタイミングでは、周囲のブロックのイントラ予測モードが確定していないことがある。結果として、処理対象のブロックのイントラ予測モードの選択に必要な符号量が計算できず、最適なイントラ予測モードの選択ができないという課題が存在した。特許文献１の手法によれば、隣接するブロックのイントラ予測モードが確定していない場合、他のブロックで確定しているイントラ予測モードを使用することにより、前述の課題に対応している。また、特許文献２の手法によれば、隣接するブロックのイントラ予測モードが確定していない場合、時間的に最も近いフレームのブロックのイントラ予測モードを使用することにより、前述の課題に対応している。
【０００８】
しかしながら、ＨＥＶＣにおいては、符号化のブロック単位であるＣＴＵ内部においてイントラ予測を行うイントラ予測ブロックとインター予測を行うインター予測ブロックとの混在が可能となっている。このため、ＣＴＵ内のあるブロックのイントラ予測モードがイントラ予測モード決定処理により一度決定しても、後段のパイプライン処理によりインター予測モードと判定され、インター予測モードに置き換えられてしまう場合がある。
【０００９】
このような場合、パイプラインの前段にあるイントラ予測モード決定処理の段階では、処理対象のブロックの周囲のブロックが後段のパイプライン処理によってインター予測モードに置き換えられるかどうか判別することができない。このため、処理対象のブロックのイントラ予測モードの選択に必要な符号量が計算できず、最適なイントラ予測モードの選択ができないという新しい課題がある。この課題に対しては、前述した特許文献１や特許文献２の手法では対応することができない。
【００１０】
本発明の目的は、符号化のブロック単位内にイントラ予測を行うブロックとインター予測を行うブロックが混在可能な場合においても、イントラ予測モードの決定を高速かつ効率良く行うことを可能とする画像符号化装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明に係る画像符号化装置は、画像を符号化して符号化データを生成する画像符号化装置であって、画像を構成するフレームをブロックに分割する分割手段と、符号化対象ブロックにおける予測に関する予測情報を決定する予測情報決定手段と、前記予測情報決定手段によって決定された前記予測情報に従って符号化対象ブロックを符号化し、前記符号化データを生成する符号化手段とを備え、前記予測情報は、符号化対象ブロックと同じ画面内の符号化済の画素を用いて予測するイントラ予測を用いるか、又は、符号化対象ブロックと異なる画面の符号化済の画素を用いて予測するインター予測を用いるかを示す情報を含み、前記予測情報は、符号化対象ブロックにおいてイントラ予測を用いる場合は、複数のイントラ予測モードの中から決定される、当該符号化対象ブロックにおいて用いられるイントラ予測モードを示す情報を更に含み、前記予測情報決定手段は、符号化対象ブロックにおける予測方法として、前記イントラ予測を用いるか、又は、前記インター予測を用いるか決定する予測モード決定手段と、符号化対象ブロックの周辺のブロックの予測モードに基づいて、前記イントラ予測モードを決定するイントラ予測モード決定手段とを有し、前記イントラ予測モード決定手段は、前記周辺のブロックにおいて前記インター予測を用いることができる場合には、当該周辺のブロックにおける予測情報に関わらず、当該周辺のブロックがインター予測されると推定して符号化対象ブロックのイントラ予測モードを決定し、前記予測モード決定手段は、前記周辺のブロックにおいて前記インター予測を用いることができる場合には、前記周辺のブロックにおける前記予測情報に基づいて決定されるイントラ予測モードで行われる前記イントラ予測の結果に基づかずに、前記周辺のブロックがインター予測されると推定して決定されたイントラ予測モードで行われる前記イントラ予測の結果に基づき、符号化対象ブロックにおける予測方法として、前記イントラ予測を用いるか、又は、前記インター予測を用いるか決定することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、符号化対象のフレームがインター予測を用いることができる場合には、周辺のブロックがインター予測されていると推定してイントラ予測モードを決定することで、イントラ予測モードの決定を高速かつ効率良く行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態による画像符号化装置の構成例を示す図である。
【図２】本実施形態における予測モード決定部の構成例を示す図である。
【図３】本実施形態による画像符号化装置の動作例を示すフローチャートである。
【図４】本実施形態における予測モード決定処理を示すフローチャートである。
【図５】本実施形態における優先モード算出処理を示すフローチャートである。
【図６】隣接する左及び上のブロックの予測情報から優先モードを算出する方法の一例を示すフローチャートである。
【図７】本実施形態における優先モード算出処理の他の例を示すフローチャートである。
【図８】本実施形態による画像符号化装置を実現可能なコンピュータのハードウェア構成例を示す図である。
【図９】ＨＥＶＣにおけるイントラ予測モードを説明するための図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下の実施形態において示す構成等は一例に過ぎず、本発明は図示された構成等に限定されるものではない。
【００１５】
図１は、本発明の一実施形態による画像符号化装置の構成例を示すブロック図である。画像符号化装置１００は、図１に示すような回路構成をハードウェアとして有してもよい。図１において、端子１０１は、画像データを入力する入力端子である。ブロック分割部１０２は、入力された画像データを複数のブロックに切り出し、ブロック単位の画像データを後段に出力する。本実施形態では、入力画像を６４×６４画素のＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）に分割し、それをさらに８×８画素のブロックに分割するものとして説明するが、ブロックの分割の方法はこれに限定されない。入力画像の性質に応じてブロックサイズを決定したり、ブロックサイズ毎に符号化コストを計算して符号化コストが最小となるブロックサイズを適応的に選択したりしても構わない。
【００１６】
予測制御情報生成部１０３は、イントラ予測モードを決定する際に必要となる後述の優先モードの算出を制御する、予測制御情報を生成して出力する。本実施形態では、符号化対象のフレームがイントラ予測（画面内における画素間の相関を利用した画面内予測）のみで構成される場合には予測制御情報を０とするものとする。また、符号化対象のフレームがインター予測（異なる画面間の時間的な相関を利用した画面間予測）を用いることができる場合には予測制御情報を１とするものとする。ただし、予測制御情報の決定方法や値との組み合わせはこれに限定されない。入力画像の性質や非図示のユーザからの入力によって決定しても構わない。
【００１７】
予測モード決定部１０４は、画面内予測であるイントラ予測や画面間予測であるインター予測等を行い、最適な予測モードを決定する。ここでの予測モードとは、イントラ予測を用いるかインター予測を用いるかを識別するフラグや、イントラ予測を用いる場合のイントラ予測モードや、インター予測を用いる場合の動きベクトル等のことである。本実施形態では、こうした予測モードの情報を予測情報と呼称する。
【００１８】
図２は、予測モード決定部１０４の構成例を示すブロック図である。優先モード算出部２０１は、予測制御情報生成部１０３から入力された予測制御情報や予測モードバッファ１０５から入力された周辺のブロックの予測情報から、イントラ予測モード決定に必要となる優先モード情報を算出する。優先モード情報の算出についての具体的な方法については後述する。
【００１９】
イントラ予測画素生成部２０２は、フレームメモリ１１０を適宜参照して符号化対象ブロックの周辺の符号化済の画素からイントラ予測モード毎のイントラ予測画像を生成する。また、イントラ予測画素生成部２０２は、生成したイントラ予測画像とブロック分割部１０２から入力されたブロック単位の入力画像から予測誤差を算出し、対応するイントラ予測モードの情報とともにイントラ予測モード決定部２０３に出力する。
【００２０】
イントラ予測モード決定部２０３は、優先モード算出部２０１から入力された優先モード情報やイントラ予測画素生成部２０２から入力された予測誤差及びイントラ予測モードの情報から、イントラ予測モード毎の符号化コストを計算する。そして、イントラ予測モード決定部２０３は、計算されたイントラ予測モード毎の符号化コストを比較して最適なイントラ予測モードを決定し、対応する符号化コストの情報とともに予測モード決定部２０６に出力する。
【００２１】
インター予測画素生成部２０４は、符号化対象ピクチャよりも前に符号化されたピクチャの画素から動きベクトル毎のインター予測画像を生成する。また、インター予測画素生成部２０４は、生成したインター予測画像とブロック分割部１０２から入力されたブロック単位の入力画像から予測誤差を算出し、対応する動きベクトルの情報とともにインター予測モード決定部２０５に出力する。
【００２２】
インター予測モード決定部２０５は、インター予測画素生成部２０４から入力された動きベクトル毎の予測誤差及び動きベクトルの情報から、動きベクトル毎の符号化コストを計算する。そして、インター予測モード決定部２０５は、計算された動きベクトル毎の符号化コストを比較して最適な動きベクトルを決定し、対応する符号化コストの情報とともに予測モード決定部２０６に出力する。
【００２３】
予測モード決定部２０６は、イントラ予測モード決定部２０３から入力されたイントラ予測の符号化コストと、インター予測モード決定部２０５から入力されたインター予測の符号化コストとを比較して最適な符号化モードを決定する。イントラ予測を用いることを決定した場合には、予測モード決定部２０６は、イントラ予測を示す識別情報をイントラ予測モード決定部２０３から入力されたイントラ予測モードの情報とともに予測情報として出力する。一方、インター予測を用いることを決定した場合には、予測モード決定部２０６は、インター予測を示す識別情報をインター予測モード決定部２０５から入力された動きベクトルの情報とともに予測情報として出力する。
【００２４】
図１に戻り、予測モードバッファ１０５は、予測モード決定部１０４から出力されたブロック単位の予測情報を保持する。予測補償部１０６は、ブロック分割部１０２から入力されたブロック単位の画像データに対し、予測モード決定部１０４から出力された予測情報に基づいてイントラ予測やインター予測等を行い、予測画像データを生成する。また、予測補償部１０６は、入力された画像データと予測画像データとから予測誤差を算出して出力する。
【００２５】
変換・量子化部１０７は、予測補償部１０６から入力された予測誤差をブロック単位で直交変換して変換係数を得て、さらに量子化を行って量子化係数を得る。逆量子化・逆変換部１０８は、変換・量子化部１０７から入力された量子化係数を逆量子化して変換係数を再生し、さらに逆直交変換して予測誤差を再生する。画像再生部１０９は、予測モード決定部１０４から出力された予測情報に基づいて、フレームメモリ１１０を適宜参照して予測画像データを生成し、これと逆量子化・逆変換部１０８から入力された予測誤差から再生画像データを生成して出力する。
【００２６】
フレームメモリ１１０は、画像再生部１０９で再生された画像データを格納しておくメモリである。フレームメモリ１１０に格納された再生画像データは、予測モード決定部１０４及び予測補償部１０６により参照される。符号化部１１１は、変換・量子化部１０７から出力された量子化係数及び予測モード決定部１０４から出力された予測情報を符号化してビットストリームを生成して出力する。端子１１２は、符号化部１１１で生成されたビットストリームを外部に出力する出力端子である。
【００２７】
次に、本実施形態による画像符号化装置の動作について説明する。図３は、本実施形態による画像符号化装置の動作例を示すフローチャートである。
【００２８】
ステップＳ３０１にて、予測制御情報生成部１０３は、イントラ予測モードを決定する際に必要となる優先モードの算出を制御する予測制御情報を生成し、予測モード決定部１０４に出力する。ステップＳ３０２にて、ブロック分割部１０２は、端子１０１から入力された画像データを複数のブロックに切り出し、ブロック単位の画像データを後段に出力する。ステップＳ３０３にて、予測モード決定部１０４は、イントラ予測やインター予測等を行い最適な予測モードを決定し、得られた予測情報を予測モードバッファ１０５に格納する。また、予測情報は、予測補償部１０６や符号化部１１１にも出力される。
【００２９】
ステップＳ３０３での予測モード決定処理について、図４を用いて説明する。図４は、本実施形態における予測モード決定処理を示すフローチャートである。ステップＳ４０１にて、優先モード算出部２０１は、ステップＳ３０１において生成された予測制御情報や、周辺のブロックの予測情報から、イントラ予測モードの決定に必要となる優先モード情報を算出する。
【００３０】
ここで、本実施形態における優先モード算出処理について、図５を用いて説明する。図５は、本実施形態における優先モード算出処理を示すフローチャートである。まず、ステップＳ５０１にて、優先モード算出部２０１は、ステップＳ３０１において生成された予測制御情報に基づいた判定を行い、予測制御情報が１であればステップＳ５０４に進み、そうでなければステップＳ５０２に進む。
【００３１】
ステップＳ５０２にて、優先モード算出部２０１は、予測モードバッファ１０５を適宜参照し、符号化対象ブロックの左に隣接するブロックの予測モードを取得して設定する。ステップＳ５０３にて、優先モード算出部２０１は、予測モードバッファ１０５を適宜参照し、符号化対象ブロックの上に隣接するブロックの予測モードを取得して設定する。なお、ステップＳ５０２の処理とステップＳ５０３の処理を行う順序は逆であっても良い。
【００３２】
ステップＳ５０４にて、優先モード算出部２０１は、符号化対象ブロックの左に隣接するブロックの予測モードを、予測モードバッファ１０５に格納されている左に隣接するブロックの予測モードに関わらず、インター予測モードと設定する。ステップＳ５０５にて、優先モード算出部２０１は、符号化対象ブロックの上に隣接するブロックの予測モードを、予測モードバッファ１０５に格納されている上に隣接するブロックの予測モードに関わらず、インター予測モードと設定する。なお、ステップＳ５０４の処理とステップＳ５０５の処理を行う順序は逆であっても良い。
【００３３】
ステップＳ５０６にて、優先モード算出部２０１は、ステップＳ５０２〜ステップＳ５０５での処理で設定された符号化対象ブロックの左及び上に隣接するブロックの予測モードの情報を用いて１つ以上の優先モードを算出し、処理を終了する。優先モードの算出方法は、特に限定しないが、本実施形態では図６に示された方法に基づいて、優先モード０、優先モード１、優先モード２の３種類の優先モードを算出するものとする。
【００３４】
例えば、ステップＳ５０１において予測制御情報が１であると判定された場合を例に説明すると、ステップＳ５０４、Ｓ５０５において左及び上に隣接するそれぞれのブロックの予測モードがインター予測モードであると設定される。その場合、図６においては、ステップＳ６０１、Ｓ６０３、Ｓ６０４、Ｓ６０６、Ｓ６０７、Ｓ６０８の処理を経て、ステップＳ６０９にて、Ｉｎｔｒａ＿Ｐｌａｎａｒ、Ｉｎｔｒａ＿ＤＣ、Ｖｅｒｔｉｃａｌ（２６）の３つが優先モードとして算出される。図６に例示した優先モード算出方法は、非特許文献１の８．４．２節に記載されている方法であるため、ここでのさらなる詳しい説明は省略する。
【００３５】
図４に戻り、ステップＳ４０２にて、イントラ予測画素生成部２０２は、フレームメモリ１１０に格納された符号化対象ブロックの周辺の符号化済の画素からイントラ予測モード毎のイントラ予測画像を生成する。さらに、生成されたイントラ予測画像とステップＳ３０２において分割されたブロック単位の入力画像から予測誤差を算出する。
【００３６】
ステップＳ４０３にて、イントラ予測モード決定部２０３は、ステップＳ４０１において算出された優先モード情報やステップＳ４０２において算出された予測誤差からイントラ予測モード毎の符号化コストを計算する。そして、計算されたイントラ予測モード毎の符号化コストを比較して最適なイントラ予測モードを決定する。また、決定された最適なイントラ予測モードに対応する符号化コストをイントラコストとして算出する。
【００３７】
符号化コストの計算方法は特に限定しないが、本実施形態では下記の式（１）に基づいて計算されるものとする。
Ｃｏｓｔ  ＝  Ｄｉｓｔ  ＋  λ  ×  Ｂｉｔｓ  …（１）
式（１）において、Ｃｏｓｔは算出される符号化コストである。ＤｉｓｔはステップＳ４０２において算出された予測誤差の総量を示す値であり、差分絶対値和であるＳＡＤ等が用いられる。λは量子化パラメータに応じて定まる係数である。Ｂｉｔｓは対象の符号化モードを用いた際に識別に必要となる符号量を予測したものである。
【００３８】
ＨＥＶＣにおいては、非特許文献１の７．３．８．５章に記載されている、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ符号やｍｐｍ＿ｉｄｘ符号、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ符号の発生符号量を予測したものである。各符号の発生符号量の予測方法は特に限定されず、エントロピー符号化の動作をモデル化して発生符号量を正確に計算してもよいし、エントロピー符号化前の２値データの分量から推定しても良い。
【００３９】
本実施形態では、ステップＳ４０１において優先モードに指定された予測モードに対しては、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ符号とｍｐｍ＿ｉｄｘ符号の予測発生符号量の合計をＢｉｔｓとして符号化コストを算出するものとする。一方、ステップＳ４０１において優先モードに指定されなかった予測モードに対しては、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ符号とｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ符号の予測発生符号量の合計をＢｉｔｓとする。
【００４０】
ＨＥＶＣにおいては、ｍｐｍ＿ｉｄｘ符号は０〜２の値をとり、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ符号は０〜３１の値をとる。これにより、ｍｐｍ＿ｉｄｘ符号の方がｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ符号より短い符号長となるため、結果として優先モードの方がその他のモードよりも選択されやすくなる。
【００４１】
ステップＳ４０４にて、インター予測画素生成部２０４は、符号化対象ピクチャよりも前に符号化されたピクチャの画素から動きベクトル毎のインター予測画像を生成する。さらに、生成されたインター予測画像とステップＳ３０２において分割されたブロック単位の入力画像から予測誤差を算出する。
【００４２】
ステップＳ４０５にて、インター予測モード決定部２０５は、ステップＳ４０４において算出された動きベクトル毎の予測誤差を用いて、動きベクトル毎の符号化コストを計算する。そして、計算された動きベクトル毎の符号化コストを比較して最適な動きベクトルを決定する。また、決定された最適な動きベクトルに対応する符号化コストをインターコストとして算出する。本実施形態では、ステップＳ４０３と同様に、式（１）で示された計算方法に基づいて符号化コストを計算するものとする。
【００４３】
ステップＳ４０６にて、予測モード決定部２０６は、ステップＳ４０３において算出されたイントラコストとステップＳ４０５において算出されたインターコストとの比較を行う。比較の結果、イントラコストの方が小さければステップＳ４０７に進み、そうでなければステップＳ４０８に進む。本実施形態ではイントラコストとインターコストとが同一である場合にはステップＳ４０８に進むものとしているが、ステップＳ４０７に進むようにしても構わない。
【００４４】
ステップＳ４０７にて、予測モード決定部２０６は、イントラ予測を示す識別情報をステップＳ４０３において決定された最適なイントラ予測モードの情報とともに予測情報として出力する。より具体的には、予測情報は、後述のステップＳ３０８において、符号化部１１１によってｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ符号やｍｐｍ＿ｉｄｘ符号、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ符号となり、符号化される。このため、ステップＳ４０３において決定された最適なイントラ予測モードとステップＳ４０１において算出された優先モードとが一致すれば最終的な符号長がより短くなるため、符号化効率が向上する効果がある。
【００４５】
ステップＳ４０８にて、予測モード決定部２０６は、インター予測を示す識別情報をステップＳ４０５において決定された最適な動きベクトルとともに予測情報として出力する。なお、図４に示した処理において、ステップＳ４０２及びＳ４０３の処理と、ステップＳ４０４及びＳ４０５の処理とは、行う順序が逆であっても良いし、並列して行っても良い。
【００４６】
図３に戻り、ステップＳ３０４にて、予測補償部１０６は、ブロック分割部１０２から入力されたブロック単位の画像データに対し、ステップＳ３０３において決定された予測モードに基づいてイントラ予測やインター予測等を行い、予測画像データを生成する。さらに、入力された画像データと生成した予測画像データとから予測誤差を算出し、変換・量子化部１０７に出力する。
【００４７】
ステップＳ３０５にて、変換・量子化部１０７は、ステップＳ３０４において算出され予測補償部１０６から入力された予測誤差をブロック単位で直交変換して変換係数を得て、さらに量子化を行って量子化係数を算出する。算出された量子化係数は、逆量子化・逆変換部１０８及び符号化部１１１に出力される。ステップＳ３０６にて、逆量子化・逆変換部１０８は、ステップＳ３０５において算出され変換・量子化部１０７から入力された量子化係数を逆量子化して変換係数を再生し、さらに逆直交変換して予測誤差を再生する。再生された予測誤差は、画像再生部１０９に出力される。
【００４８】
ステップＳ３０７にて、画像再生部１０９は、まず、ステップＳ３０３において決定され予測モード決定部１０４から出力された予測モードに基づいて、フレームメモリ１１０を適宜参照して予測画像データを生成する。さらに、これとステップＳ３０６において再生され逆量子化・逆変換部１０８から入力された予測誤差から再生画像データを生成し、フレームメモリ１１０に格納する。
【００４９】
ステップＳ３０８にて、符号化部１１１は、ステップＳ３０５において算出され変換・量子化部１０７から出力された量子化係数及びステップＳ３０３において得られ予測モード決定部１０４から出力された予測情報を符号化してビットストリームを生成する。そして、生成されたビットストリームの符号データは適宜端子１１２から出力される。
【００５０】
ステップＳ３０９にて、画像符号化装置は、フレーム内のすべてのブロックの符号化が完了したか否かの判定を実施し、完了している場合にはステップＳ３１０に進み、そうでない場合は次のブロックを対象としてステップＳ３０２に進む。ステップＳ３１０にて、画像符号化装置は、すべてのフレームの符号化が完了したか否かの判定を実施し、完了している場合には符号化処理を終了し、そうでない場合には次のフレームを対象としてステップＳ３０１に進む。
【００５１】
本実施形態によれば、ステップＳ５０４及びＳ５０５において、周囲のブロックをインターブロックと推定して優先モードを算出することにより、イントラ予測モードの決定についてパイプライン実装を用いて高速にかつ効率良く行うことができる。特にほとんどのブロックがインター予測として符号化される場合においては、ステップＳ４０１において算出した優先モードと実際に符号長が短くなるモードとが一致するため、符号化効率の向上効果が大きくなる。
【００５２】
なお、本実施形態では、ステップＳ３０８での符号化処理をステップＳ３０７の処理後に実行するようにしているが、ステップＳ３０５の処理後に実行されるのであれば、順序はこれに限定されない。また、ステップＳ５０３において、隣接する左と上の両方のブロックの予測モードをインター予測と設定したが、左もしくは上の片方だけインター予測と設定し、もう片方は予測モードバッファ１０５を参照して予測情報を取得する構成をとっても構わない。
【００５３】
さらには、図７に示すように、左もしくは上に隣接するブロックが同じ符号化のブロックの単位内に属するか否かに応じて隣接するブロックの予測情報の設定方法を変更する構成としても構わない。予測モードの決定を符号化ブロックの単位でパイプライン実装する場合においては、隣接するブロックが異なる符号化ブロック内に存在した場合には既に対象となる予測モードが確定している。このような場合には既に確定している予測モードを適応的に活用することで、より効率良くイントラ予測モードを決定することが可能となる。
【００５４】
図７は、本実施形態における優先モード算出処理の他の例を示すフローチャートである。まず、ステップＳ７０１にて、優先モード算出部２０１は、ステップＳ３０１において生成された予測制御情報に基づいた判定を行い、予測制御情報が１であればステップＳ７０４に進み、そうでなければステップＳ７０２に進む。
【００５５】
ステップＳ７０２にて、優先モード算出部２０１は、予測モードバッファ１０５を適宜参照し、符号化対象ブロックの左に隣接するブロックの予測モードを取得して設定する。ステップＳ７０３にて、優先モード算出部２０１は、予測モードバッファ１０５を適宜参照し、符号化対象ブロックの上に隣接するブロックの予測モードを取得して設定する。なお、ステップＳ７０２の処理とステップＳ７０３の処理を行う順序は逆であっても良い。
【００５６】
ステップＳ７０４にて、優先モード算出部２０１は、符号化対象ブロックの左に隣接するブロックが、同じ符号化ブロック内に属するか否かを判定する。左に隣接するブロックが同じ符号化ブロック内に存在する場合には、ステップＳ７０６に進み、優先モード算出部２０１は、左に隣接するブロックの予測モードを、インター予測モードと設定する。一方、左に隣接するブロックが異なる符号化ブロックに存在する場合には、ステップＳ７０５に進み、優先モード算出部２０１は、予測モードバッファ１０５を適宜参照して、左に隣接するブロックの予測モードを取得して設定する。
【００５７】
ステップＳ７０７にて、優先モード算出部２０１は、符号化対象ブロックの上に隣接するブロックが、同じ符号化ブロック内に属するか否かを判定する。上に隣接するブロックが同じ符号化ブロック内に存在する場合には、ステップＳ７０９に進み、優先モード算出部２０１は、上に隣接するブロックの予測モードを、インター予測モードと設定する。一方、上に隣接するブロックが異なる符号化ブロックに存在する場合には、ステップＳ７０８に進み、優先モード算出部２０１は、予測モードバッファ１０５を適宜参照して、上に隣接するブロックの予測モードを取得して設定する。
【００５８】
ステップＳ７１０にて、優先モード算出部２０１は、前述した処理で設定された符号化対象ブロックの左及び上に隣接するブロックの予測モードの情報を用いて、図５に示したステップＳ５０６と同様にして優先モードを算出し、処理を終了する。なお、ステップＳ７０４〜Ｓ７０６の処理と、ステップＳ７０７〜Ｓ７０９の処理とは、実行する順序が逆であっても良い。
【００５９】
また、本実施形態では、図６のフローチャートに示した処理に基づいて３つの優先モードを算出するものとしているが、算出される優先モードの数はこれに限定されない。例えば、ステップＳ３０１において算出された予測制御情報が１である場合には、非方向性予測であるＩｎｔｒａ＿ＰｌａｎａｒとＩｎｔｒａ＿ＤＣの２つのみを優先モードとしたり、どちらか一方のみを優先モードとしたりすることも可能である。
【００６０】
また、本実施形態では、画像再生部１０９で再生された画像データはそのままフレームメモリ１１０に格納され、予測モード決定部１０４や予測補償部１０６に参照される構成としたが、画質向上のためのインループフィルタ処理を実施しても構わない。ブロック単位で再生された画像データをフレームメモリ１１０に格納し、フレーム単位でインループフィルタ処理を行い、フィルタ処理された画像データをフレームメモリ１１０に再格納する構成とすることもできる。そのような場合には、予測モード決定部１０４や予測補償部１０６においては、イントラ予測にはフィルタ処理前の画像データが参照され、インター予測にはフィルタ処理後の画像データが参照されることになる。
【００６１】
（本発明の他の実施形態）
前述した実施形態では、図１に示した本実施形態による画像符号化装置の各処理部はハードウェアで構成しているものとして説明したが、画像符号化装置の各処理部で行う処理をコンピュータプログラムでもって構成しても良い。図８は、本実施形態による画像符号化装置を実現可能なコンピュータのハードウェアの構成例を示すブロック図である。
【００６２】
ＣＰＵ８０１は、ＲＡＭ８０２やＲＯＭ８０３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うとともに、本実施形態による画像符号化装置が行うものとして前述した各処理を実行する。すなわち、ＣＰＵ８０１は、図１に示した各処理部として機能することになる。前述したフローチャートで説明した書く処理をＣＰＵ８０１が中心となってその制御を行う。
【００６３】
ＲＡＭ８０２は、外部記憶装置８０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）８０７を介して外部から取得したデータ等を一時的に記憶するためのエリアを有する。さらに、ＲＡＭ８０２は、ＣＰＵ８０１が各種の処理を実行する際に用いるワークエリアを有する。すなわち、ＲＡＭ８０２は、例えば、フレームメモリとして割り当てたり、その他の各種のエリアを適宜提供したりすることができる。ＲＯＭ８０３には、本コンピュータの設定データや、ブートプログラム等が格納されている。
【００６４】
操作部８０４は、キーボードやマウス等により構成されており、本コンピュータのユーザが操作することで、各種の指示をＣＰＵ８０１に対して入力することができる。表示部８０５は、例えば液晶ディスプレイで構成され、ＣＰＵ８０１による処理結果を表示する。外部記憶装置８０６は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置８０６には、ＯＳ（オペレーティングシステム）や、図１に示した各部の機能をＣＰＵ８０１に実現させるためのコンピュータプログラムが保存されている。さらには、外部記憶装置８０６には、処理対象としての各画像データが保存されていても良い。
【００６５】
外部記憶装置８０６に保存されているコンピュータプログラムやデータは、ＣＰＵ８０１による制御に従って適宜、ＲＡＭ８０２にロードされ、ＣＰＵ８０１による処理対象となる。Ｉ／Ｆ８０７には、ＬＡＮやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのＩ／Ｆ８０７を介して様々な情報を取得したり、送出したりすることができる。８０８は前述した各部を繋ぐバスである。
【００６６】
また、本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００６７】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【００６８】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６９】
１０２：ブロック分割部  １０３：予測制御情報生成部  １０４：予測モード決定部  １０５：予測モードバッファ  １０６：予測補償部  １０７：変換・量子化部  １０８：逆量子化・逆変換部  １０９：画像再生部  １１０：フレームメモリ  １１１：符号化部  ２０１：優先モード算出部  ２０２：イントラ予測画素生成部  ２０３：イントラ予測モード決定部  ２０４：インター予測画素生成部  ２０５：インター予測モード決定部  ２０６：予測モード決定部
【図１】
0006501532.tif 000002
【図２】
0006501532.tif 000003
【図３】
0006501532.tif 000004
【図４】
0006501532.tif 000005
【図５】
0006501532.tif 000006
【図６】
0006501532.tif 000007
【図７】
0006501532.tif 000008
【図８】
0006501532.tif 000009
【図９】
0006501532.tif 000010