(57)【要約】【課題】個々のサブブロックのイントラ予測を効率化して、イントラ予測に費やす時間を短縮した画像データの生成方法を提供する。【解決手段】Ｉｎｔｒａ１６についてのサーチを行って、最小コストをもたらす予測モードを取得し（Ｓ１）、Ｉｎｔｒａ１６における最小コスト、対応する予測モードを記憶する（Ｓ２）。Ｉｎｔｒａ８についてのサーチを行って、最小コストをもたらす予測モードを取得し（Ｓ３）、次に、記憶されたＩｎｔｒａ１６における最小コストと、Ｉｎｔｒａ８における最小コストとの大小関係を判定する（Ｓ４）。その後、Ｉｎｔｒａ８における最小コスト、対応する予測モードを記憶し（Ｓ５）、Ｉｎｔｒａ４についてのサーチを行って、最小コストをもたらす予測モードを取得する（Ｓ６）。cost_intraとＩｎｔｒａ４における最小コストとの大小関係を判定し（Ｓ７）、Ｉｎｔｒａ４の方が小さい場合は、それが最適予測モードとなる（Ｓ８）。【選択図】図２２
2010263301.tif 000002
【特許請求の範囲】
【請求項１】
マクロブロックを所定の符号化サイズで区分したサブブロック単位で画像予測を行う画像データの生成方法であって、
前記画像予測は、前記サブブロックのサイズによって規定される複数の予測方法によって実行され、
参照対象となる第１のサブブロックの画素値を用いて、符号化対象となる第２のサブブロックの画素に対する補間を複数の予測モードで行う第１のステップと、
前記補間によって得られた前記第２のサブブロックの第１の予測画像の画素値と、前記第２のサブブロックの補間が実行される前の画素値との差分の絶対値和で規定されるコストを前記複数の予測モードごとに取得して、取得した前記コストの中から最小コストを決定する第２のステップと、を有し、
前記符号化サイズのより大きな予測方法から、前記第１および第２のステップを実行して第１の最小コストを与える第１の予測モードを取得し、該第１の予測モードに対して予め設定された次の予測方法で使用すべき予測モードを用いて前記次の予測方法において前記第１および第２のステップを実行して第２の最小コストを決定し、前記第１および第２の最小コストを比較して、より小さい方を選択する動作によって、最適予測モードを決定する、画像データの生成方法。
【請求項２】
前記第１および第２の最小コストの比較において、前記第１の最小コストの方が小さいと判定された場合は、前記符号化サイズのより小さな予測方法についての最小コストの算出動作をスキップして、前記第１の最小コストを与える前記第１の予測モードを前記最適予測モードとして決定する、請求項１記載の画像データの生成方法。
【請求項３】
前記マクロブロックは１６×１６画素で構成され、
前記複数の予測方法は、
前記マクロブロックを、１６×１６画素単位、８×８画素単位および４×４画素単位のサブブロックで画像予測を行う、請求項１記載の画像データの生成方法。
【請求項４】
前記第１のサブブロックは、符号化が完了していないサブブロックであって、
前記画像予測は、
前記第１のサブブロックの符号化前の画素値を用いて前記第２のサブブロックの画素に対する補間を行う簡易イントラ予測に相当し、
前記簡易イントラ予測で決定された最適予測モードを用いてイントラ予測を行う、請求項１記載の画像データの生成方法。
【請求項５】
前記簡易イントラ予測および前記イントラ予測はパイプライン処理によって実行され、  前記パイプライン処理は、
ｎ番のサブブロックに対して前記簡易イントラ予測を実行しているｎ番の処理サイクルにおいて、ｎ−１番の処理サイクルで前記簡易イントラ予測が実行されたｎ−１番のサブブロックに対しての前記イントラ予測が実行されるとともに、前記簡易イントラ予測により決定した前記最適予測モードを使用して、前記ｎ−１番のサブブロックに対してのローカルデコードを実行する、請求項４記載の画像データの生成方法。
【請求項６】
前記第１のサブブロックは、符号化済みのサブブロックであって、
前記画像予測は、
前記符号化済みのサブブロックの画素値を用いて、前記第２のサブブロックの画素に対する補間を行うイントラ予測に相当する、請求項１記載の画像データの生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの生成方法に関し、特に予測モードの決定を簡易に行うイントラ予測を含んだ画像データの生成方法に関する。
【背景技術】
【０００２】
電気通信に関する国際標準化機関であるＩＴＵ−Ｔ（International Telecommunication Union-Telecommunication Standardization Sector）のＶＣＥＧ（Video Coding Experts Group）とＩＳＯ／ＩＥＣのＭＰＥＧ（Moving Picture Expetrts Group）によって、動画像符号化の最新国際標準としてＨ．２６４が開発され、実用化されている。
【０００３】
Ｈ．２６４は、ＭＰＥＧ−２やＭＰＥＧ−４に比べて、同程度の画質で２倍の圧縮を行うことができ、低ビットレートのテレビ会議からＨＤＴＶ（High Definition Television）までの幅広い用途に適用可能である。
【０００４】
Ｈ．２６４の特徴の１つに、フレーム内予測（イントラ予測）と呼称される方式が挙げられる。これは、画素相関を利用して圧縮率を向上させるための方式であり、サブブロック間でのデータの補間により予測画像を生成し、符号化対象サブブロックに隣接する符号化済みサブブロックを参照して、画素レベルでの比較により予測を行うものである。
【０００５】
イントラ予測は、ＭＰＥＧ−４においても採用されているが、ＭＰＥＧ−４が符号化対象サブブロックの左側、上側および左上側のサブブロックを参照するのに対し、Ｈ．２６４の場合は、左側、上側、左上側および右上側のサブブロックを参照するので、より精度の高い予測画像を得ることができる。
【０００６】
また、ＭＰＥＧ−４においては８×８画素単位で予測を行うのに対し、Ｈ．２６４では、複雑な画像は４×４画素単位で予測を行い、単純な画像は８×８画素単位、１６×１６画素単位で予測を行うので、効率の良い予測が可能となる。
【０００７】
このような、Ｈ．２６４におけるイントラ予測においては、１６×１６画素単位での予測では４通りの予測方法（予測モード）を使用して最適な予測モードを決定し、８×８画素単位での予測および４×４画素単位での予測では９通りの予測モードを使用して最適な予測モードを決定するので、膨大な計算処理を要し、予測結果が得られるまでに時間がかかるという問題がある。
【０００８】
特許文献１では、符号化前の画素値も予測値として使用してイントラ予測を行う簡易イントラ予測と、通常のイントラ予測とを併用することで、イントラ予測の効率化を達成し、イントラ予測に費やす時間を短縮する技術が開示されているが、昨今のディスプレイ装置の大型化に伴い、さらなる効率化が求められている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−２８２０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以上説明したように、イントラ予測のさらなる効率化を図り、イントラ予測に費やす時間をさらに短縮することが求められている。
【００１１】
本発明は上記のような問題点を解消するためになされたもので、個々のサブブロックのイントラ予測を効率化して、イントラ予測に費やす時間を短縮した画像データの生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る請求項１記載の画像データの生成方法は、マクロブロックを所定の符号化サイズで区分したサブブロック単位で画像予測を行う画像データの生成方法であって、前記画像予測は、前記サブブロックのサイズによって規定される複数の予測方法によって実行され、参照対象となる第１のサブブロックの画素値を用いて、符号化対象となる第２のサブブロックの画素に対する補間を複数の予測モードで行う第１のステップと、前記補間によって得られた前記第２のサブブロックの第１の予測画像の画素値と、前記第２のサブブロックの補間が実行される前の画素値との差分の絶対値和で規定されるコストを前記複数の予測モードごとに取得して、取得した前記コストの中から最小コストを決定する第２のステップと、を有し、前記符号化サイズのより大きな予測方法から、前記第１および第２のステップを実行して第１の最小コストを与える第１の予測モードを取得し、該第１の予測モードに対して予め設定された次の予測方法で使用すべき予測モードを用いて前記次の予測方法において前記第１および第２のステップを実行して第２の最小コストを決定し、前記第１および第２の最小コストを比較して、より小さい方を選択する動作によって、最適予測モードを決定する。
【００１３】
本発明に係る請求項２記載の画像データの生成方法は、前記第１および第２の最小コストの比較において、前記第１の最小コストの方が小さいと判定された場合は、前記符号化サイズのより小さな予測方法についての最小コストの算出動作をスキップして、前記第１の最小コストを与える前記第１の予測モードを前記最適予測モードとして決定する。
【００１４】
本発明に係る請求項３記載の画像データの生成方法は、前記マクロブロックは１６×１６画素で構成され、前記複数の予測方法は、前記マクロブロックを、１６×１６画素単位、８×８画素単位および４×４画素単位のサブブロックで画像予測を行う。
【００１５】
本発明に係る請求項４記載の画像データの生成方法は、前記第１のサブブロックは、符号化が完了していないサブブロックであって、前記画像予測は、前記第１のサブブロックの符号化前の画素値を用いて前記第２のサブブロックの画素に対する補間を行う簡易イントラ予測に相当し、前記簡易イントラ予測で決定された最適予測モードを用いてイントラ予測を行う。
【００１６】
本発明に係る請求項５記載の画像データの生成方法は、前記簡易イントラ予測および前記イントラ予測はパイプライン処理によって実行され、前記パイプライン処理は、ｎ番のサブブロックに対して前記簡易イントラ予測を実行しているｎ番の処理サイクルにおいて、ｎ−１番の処理サイクルで前記簡易イントラ予測が実行されたｎ−１番のサブブロックに対しての前記イントラ予測が実行されるとともに、前記簡易イントラ予測により決定した前記最適予測モードを使用して、前記ｎ−１番のサブブロックに対してのローカルデコードを実行する。
【００１７】
本発明に係る請求項６記載の画像データの生成方法は、前記第１のサブブロックは、符号化済みのサブブロックであって、前記画像予測は、前記符号化済みのサブブロックの画素値を用いて、前記第２のサブブロックの画素に対する補間を行うイントラ予測に相当する。
【発明の効果】
【００１８】
本発明に係る請求項１記載の画像データの生成方法によれば、符号化サイズのより大きな予測方法から、第１および第２のステップを実行して第１の最小コストを与える第１の予測モードを取得し、該第１の予測モードに対して予め設定された次の予測方法で使用すべき予測モードを用いて次の予測方法において第１および第２のステップを実行して第２の最小コストを決定し、第１および第２の最小コストを比較して、より小さい方を選択する動作によって、最適予測モードを決定するので、最適予測モードの導出においてコスト計算の回数を大幅に削減することができる。
【００１９】
本発明に係る請求項２記載の画像データの生成方法によれば、スキップ処理により、コスト計算の回数をさらに削減することができる。
【００２０】
本発明に係る請求項３記載の画像データの生成方法によれば、Ｈ．２６４で使用される現実的な予測方法に対応することができる。
【００２１】
本発明に係る請求項４記載の画像データの生成方法によれば、簡易イントラ予測に本発明を適用することで、直前のサブブロックに対する符号化が終わっていない段階でも画像予測を始めることができ、イントラ予測に費やす時間を短縮して、イントラ予測の効率化を図ることができる。
【００２２】
本発明に係る請求項５記載の画像データの生成方法によれば、簡易イントラ予測およびイントラ予測をパイプライン処理によって実行することで、画像データの符号化処理を効率的に行うことができる。
【００２３】
本発明に係る請求項６記載の画像データの生成方法によれば、イントラ予測に本発明を適用することで、最適予測モードの導出においてコスト計算の回数を大幅に削減することができる。また、イントラ予測では参照対象画素は全て符号化されているので、精度の高い予測が可能となる。
【図面の簡単な説明】
【００２４】
【図１】１６×１６画素で構成されるマクロブロックを模式的に表す図である。
【図２】サブブロックを構成する１６個の符号化対象画素と、イントラ予測において使用される参照画素を模式的に表す図である。
【図３】４×４画素単位でイントラ予測を行う場合の予測モード０を模式的に表す図である。
【図４】４×４画素単位でイントラ予測を行う場合の予測モード１を模式的に表す図である。
【図５】４×４画素単位でイントラ予測を行う場合の予測モード２を模式的に表す図である。
【図６】４×４画素単位でイントラ予測を行う場合の予測モード３を模式的に表す図である。
【図７】４×４画素単位でイントラ予測を行う場合の予測モード４を模式的に表す図である。
【図８】４×４画素単位でイントラ予測を行う場合の予測モード５を模式的に表す図である。
【図９】４×４画素単位でイントラ予測を行う場合の予測モード６を模式的に表す図である。
【図１０】４×４画素単位でイントラ予測を行う場合の予測モード７を模式的に表す図である。
【図１１】４×４画素単位でイントラ予測を行う場合の予測モード８を模式的に表す図である。
【図１２】１６×１６画素単位でイントラ予測を行う場合の予測モード０を模式的に表す図である。
【図１３】１６×１６画素単位でイントラ予測を行う場合の予測モード１を模式的に表す図である。
【図１４】１６×１６画素単位でイントラ予測を行う場合の予測モード２を模式的に表す図である。
【図１５】１６×１６画素単位でイントラ予測を行う場合の予測モード３を模式的に表す図である。
【図１６】４×４画素単位でイントラ予測を行う場合の予測方向を模式的に示す図である。
【図１７】１６×１６画素単位でイントラ予測を行う場合のサブブロックの構成例を示す図である。
【図１８】８×８画素単位でイントラ予測を行う場合のサブブロックの構成例を示す図である。
【図１９】４×４画素単位でイントラ予測を行う場合のサブブロックの構成例を示す図である。
【図２０】各サーチ結果に対するコスト計算の対象とする予測モードの一例を示す図である。
【図２１】簡易イントラ予測部を有したＨ．２６４のエンコーダの構成を示すブロック図である。
【図２２】最適予測モードの選択動作の全体の流れを示すフローチャートである。
【図２３】サーチ動作を説明するフローチャートである。
【図２４】パイプライン処理を模式的に示す図である。
【図２５】簡易イントラ予測を有した画像データの生成方法を説明するフローチャートである。
【図２６】最適予測モードの選択動作の変形例を説明するフローチャートである。
【図２７】Ｉｎｔｒａ１６でのサーチ結果に対応付けられる、Ｉｎｔｒａクロマの符号化モードの一例を表す図である。
【図２８】イントラ予測部を有したＨ．２６４のエンコーダの構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
＜イントラ予測モードについて＞
発明の実施の形態の説明に先立って、Ｈ．２６４におけるイントラ予測において、４×４画素単位での予測に使用される９通りの予測モードについて説明する。
【００２６】
図１は、１６×１６画素で構成されるマクロブロックＭＢを模式的に表す図であり、マクロブロックＭＢは１６個のサブブロックＳＢで構成されている。
【００２７】
各サブブロックＳＢは４×４画素で構成され、サブブロック単位でイントラ予測および符号化が実行される。図１において各サブブロックＳＢに割り当てられた数字は符号化の順番を表し、左上隅のサブブロックを０番とし、その右隣が１番、０番の下が２番というようにジグザグに割り当てられている。
【００２８】
また、４個のサブブロックＳＢで８×８画素単位のブロックＢＬを構成し、０番〜３番のサブブロックＳＢ、４番〜７番のサブブロックＳＢ、８番〜１１番のサブブロックＳＢおよび１２番〜１５番のサブブロックＳＢで、それぞれ１つのブロックＢＬを構成している。
【００２９】
以下、１２番のサブブロックＳＢに対してイントラ予測を行う場合を想定して、図２〜図１１を用いて、９通りの予測モードについて説明する。
【００３０】
図２は、上述した１２番のサブブロックＳＢを構成する１６個の符号化対象画素ＵＰと、１２番のサブブロックＳＢに隣接する、符号化済みのサブブロック内の符号化済み画素ＥＰを表しており、符号化済み画素ＥＰのうち、イントラ予測において参照画素として使用される画素には、便宜的にＡ〜Ｍの記号を割り当てている。また、１６個の符号化対象画素ＵＰのそれぞれに、便宜的にａ〜ｐの記号を割り当てており、左上隅の画素をａ番とし、その右隣をｂ番とし、以後、ｃ番、ｄ番と連続して割り当て、ａ番の下の画素をｅ番とし、以後、同様の規則でｐ番まで割り当てられている。
【００３１】
すなわち、図１に示す６番のサブブロックＳＢ（上側ブロック）における符号化済み画素ＥＰには、左から順にＡ〜Ｄを割り当て、７番のサブブロックＳＢ（右上側ブロック）における符号化済み画素ＥＰには、左から順にＥ〜Ｈを割り当て、９番のサブブロックＳＢ（左側ブロック）における符号化済み画素ＥＰには、上から順にＩ〜Ｌを割り当て、３番のサブブロックＳＢ（左上側ブロック）における符号化済み画素ＥＰには、Ｍを割り当てている。
【００３２】
図３は、予測モード０と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ａ〜Ｄ番の符号化済み画素ＥＰのそれぞれの画素値を、Ａ〜Ｄ番の符号化済み画素ＥＰのそれぞれの垂直方向に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については、符号化対象画素ＵＰとの差分を算出し、それらの絶対値和（ＳＡＤ：Sum of Absolute Difference）をコストとして算出し、コストの大小によって判断する。なお、各予測モードにおいてコストを算出する計算をコスト計算と呼称し、１つのサブブロックについて１つの予測モードでコストを計算した場合、コスト計算を１回行ったものと定義する。
【００３３】
図４は、予測モード１と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの画素値を、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの水平方向に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については、符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００３４】
図５は、予測モード２と呼称される予測方法を模式的に表す図であり、Ａ〜Ｄ番およびＩ〜Ｌ番の符号化済み画素ＥＰのそれぞれの画素値の平均値を、全ての符号化対象画素ＵＰの予測値として用いて補間を実行することで、予測画像を得るものであり、ＤＣ（直流）モードとも呼称される。なお、当該予測画像の適否については、符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００３５】
図６は、予測モード３と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ａ〜Ｈ番の符号化済み画素ＥＰのそれぞれの画素値を、Ａ〜Ｈ番の符号化済み画素ＥＰのそれぞれの対角線左下がり方向の位置に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については、符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００３６】
図７は、予測モード４と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ａ〜Ｄ、Ｍ、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの画素値を、Ａ〜Ｄ、Ｍ、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの対角線右下がり方向の位置に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については、符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００３７】
図８は、予測モード５と呼称される予測方法を模式的に表す図であり、矢印で示されるようにＡ〜Ｄ、Ｍ、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの画素値を、Ａ〜Ｄ、Ｍ、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの垂直方向よりも右側の位置に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については、符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００３８】
図９は、予測モード６と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ａ〜Ｄ、Ｍ、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの画素値を、Ａ〜Ｄ、Ｍ、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの水平方向よりも下側の位置に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については、符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００３９】
図１０は、予測モード７と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ａ〜Ｇ番の符号化済み画素ＥＰのそれぞれの画素値を、Ａ〜Ｇ番の符号化済み画素ＥＰのそれぞれの垂直方向よりも左側の位置に存在する、符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００４０】
図１１は、予測モード８と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの画素値を、Ｉ〜Ｌ番の符号化済み画素ＥＰのそれぞれの水平方向よりも上側の位置に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。なお、当該予測画像の適否については、符号化対象画素ＵＰの当初の画素値との差分を算出し、それらの絶対値和の大小によって判断する。
【００４１】
１６×１６画素で構成されるマクロブロックにおいて、１６×１６画素単位でイントラ予測を行う場合は４通りの予測モードが使用される。その４通りについて、図１２〜図１５を用いて説明する。
【００４２】
なお、図１２〜図１５においては、隣接するマクロブロックの符号化済み画素ＥＰのうち、イントラ予測において参照画素として使用される画素には、便宜的にＡ〜Ｐおよびａ〜ｑの記号を割り当てている。すなわち、上側において隣接するマクロブロックにおける符号化済み画素ＥＰには、左から順にＡ〜Ｐを割り当て、左側において隣接するマクロブロックにおける符号化済み画素ＥＰには、上から順にａ〜ｐを割り当て、左斜め上側において隣接するマクロブロックにおける符号化済み画素ＥＰには、ｑを割り当てている。
【００４３】
図１２は、予測モード０と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ａ〜Ｐ番の符号化済み画素ＥＰのそれぞれの画素値を、Ａ〜Ｐ番の符号化済み画素ＥＰのそれぞれの垂直方向に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。
【００４４】
図１３は、予測モード１と呼称される予測方法を模式的に表す図であり、矢印で示されるように、ａ〜ｐ番の符号化済み画素ＥＰのそれぞれの画素値を、ａ〜ｐ番の符号化済み画素ＥＰのそれぞれの水平方向に存在する符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得る。
【００４５】
図１４は、予測モード２と呼称される予測方法を模式的に表す図であり、Ａ〜Ｐ番およびａ〜ｐ番の符号化済み画素ＥＰのそれぞれの画素値の平均値を、全ての符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得るものであり、ＤＣ（直流）モードとも呼称される。
【００４６】
図１５は、予測モード３と呼称される予測方法を模式的に表す図であり、矢印で示されるように、Ａ〜Ｐ番、ｑ番およびａ〜ｐ番の符号化済み画素ＥＰについて、それぞれ斜め方向で対応する画素で一対とし、当該一対の画素の画素値を、両画素で挟まれる符号化対象画素ＵＰの予測値として用いて補間を実行することで予測画像を得るものであり、平面予測とも呼称される。
【００４７】
なお、１６×１６画素で構成されるマクロブロックにおいて、８×８画素単位でイントラ予測を行う場合、４×４画素単位でイントラ予測を行う場合と同様に予測モード０〜８が使用される。
【００４８】
図１６には、４×４画素単位でイントラ予測を行う場合の予測方向を矢印で模式的に示している。なお、イントラ予測において参照画素として使用される画素の採番および１６個の符号化対象画素の採番は図２と同様である。
【００４９】
図１６において、各予測モードの番号を予測方向を示す矢印に対応付けて示しており、垂直方向に予測する予測モード０を中心として、反時計回りに予測モード５、４、６、１および８の方向が示され、時計回りに予測モード７および３の方向が示されている。なお、予測モード２は、予測方向は特定できず予測値は、（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｉ＋Ｊ＋Ｋ＋Ｌ）／８によって算出される。
【００５０】
図１７〜図１９のそれぞれは、１６×１６画素で構成されるマクロブロックを、１６×１６画素単位、８×８画素単位、４×４画素単位でイントラ予測を行う場合のサブブロックの構成例を示す図であり、それぞれ、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４と呼称する。
【００５１】
図１７に示すＩｎｔｒａ１６ではサブブロックは存在せず、ブロック数は０番の１個のみとなる。図１８に示すＩｎｔｒａ８ではサブブロックは０番〜３番の４個となり、図１９に示すＩｎｔｒａ４ではサブブロックは０番〜１５番の１６個となる。
【００５２】
＜本発明の技術思想について＞
次に、本発明の技術思想について説明する。
【００５３】
Ｈ．２６４では、複雑な画像は４×４画素単位で予測を行い、単純な画像は１６×１６画素単位で予測を行うことで符号化効率は上がるが、この選択はコスト計算を用いての比較によって最適なサイズを決定することとなる。
【００５４】
Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の全ての予測方法の中から、最適な予測モードを選択するのに必要なコスト計算の回数は以下の数式（１）で表される。
【００５５】
【数１】
2010263301.tif 000003
【００５６】
すなわち、Ｉｎｔｒａ１６では０番のブロック（図１７）に対して４通りの予測モードを用いてコスト計算を行い、Ｉｎｔｒａ８では０〜３番のブロック（図１８）のそれぞれに対して９通りの予測モードを用いてコスト計算を行い、Ｉｎｔｒａ４では０〜１５番のブロック（図１９）のそれぞれに対して９通りの予測モードを用いてコスト計算を行うので、合計で１８４回のコスト計算が必要となる。
【００５７】
そして、イントラ予測においては、後に説明するように、変換、量子化、逆量子化および逆変換という処理を順に施して符号化済み画素を作成し、それを参照画素として使用することが必要であり、１つのモードについてのコスト計算を行うだけでも多大な処理時間が必要となる。
【００５８】
本発明は、それぞれの予測方法について全ての予測モードを使用するのではなく、符号化サイズの大きな予測方法から順にコスト計算を行い、その結果に基づいて、次の予測方法における予測モードの選択を行うことで、コスト計算の回数を大幅に削減するという技術思想に基づいた発明である。
【００５９】
すなわち、Ｉｎｔｒａ８において、コスト計算の対象とする予測モードは、Ｉｎｔｒａ１６において行ったコスト計算の結果、最小値をもたらす予測モードごとに予め限定しておき、Ｉｎｔｒａ４において、コスト計算の対象とする予測モードは、Ｉｎｔｒａ８において行ったコスト計算の結果、最小コストをもたらす予測モードごとに予め限定しておくことで、コスト計算の回数を削減することができる。
【００６０】
ここで、各予測方法において最小コストをもたらす予測モードを取得する動作をサーチと呼称し、Ｉｎｔｒａ１６のサーチにおける予測対象モードの集合をＭＯＤＥ（１６）と呼称し、Ｉｎｔｒａ８のサーチにおけるサーチ対象モードの集合をＭＯＤＥ（８）と呼称し、Ｉｎｔｒａ４のサーチにおけるサーチ対象モードの集合をＭＯＤＥ（４）と呼称すると、各サーチ結果に対するコスト計算の対象とするサーチ対象モードの一例は、図２０のように表される。
【００６１】
図２０に示すように、Ｉｎｔｒａ１６のサーチ対象モードは、Ｉｎｔｒａ１６が最上位（一番最初のサーチを行うという意味）であるので、予測モード０〜３の全てとなる。
【００６２】
そして、Ｉｎｔｒａ１６におけるサーチの結果、予測モード０が最もコストが小さいと判明した場合は、Ｉｎｔｒａ８でのサーチ対象モードは、予測モード３、７、０、５および４となる。これらのモードは、図１６において示されるように、予測モード０を中心としてその両側に展開するモードであり、Ｉｎｔｒａ１６におけるサーチの結果が予測モード０であるので、その近隣のモードを重点的にサーチする方が効率的に最小コストのモードを発見できるという意味で、このように設定されている。
【００６３】
また、Ｉｎｔｒａ１６におけるサーチの結果、予測モード１が最もコストが小さいと判明した場合は、Ｉｎｔｒａ８でのサーチ対象モードは、予測モード４、６、１および８となる。これらのモードは、図１６において示されるように、予測モード１を中心としてその両側に展開するモードであり、Ｉｎｔｒａ１６におけるサーチの結果が予測モード１であるので、その近隣のモードを重点的にサーチする方が効率的に最小コストのモードを発見できるという意味で、このように設定されている。
【００６４】
また、Ｉｎｔｒａ１６におけるサーチの結果、予測モード２または３が最もコストが小さいと判明した場合は、Ｉｎｔｒａ８でのサーチ対象モードは、予測モード０、１および２となる。これらのモードは、Ｉｎｔｒａ１６におけるサーチの結果が予測モード２または３であるので、１６×１６単位では画像に明らかな方向性が存在しないということで、８×８単位で画像の方向性を再サーチするという意味で、このように設定されている。
【００６５】
このように、サーチ対象モードの設定には規則性があり、これは、Ｉｎｔｒａ４でのサーチ対象モードについても同じである。
【００６６】
図１６においては、Ｉｎｔｒａ８におけるサーチの結果が、予測モード０〜８の何れかであった場合に、それぞれについてのＩｎｔｒａ８でのサーチ対象モードを示しており、Ｉｎｔｒａ８におけるサーチ結果に対して、それぞれ３つのモードがサーチ対象として設定されている。
【００６７】
以上説明した方法を採ることで、  Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の全ての予測方法の中から、最適な予測モードを選択するのに必要なコスト計算の回数は以下の数式（２）で表されるように大幅に低減することとなる。
【００６８】
【数２】
2010263301.tif 000004
【００６９】
すなわち、Ｉｎｔｒａ１６では０番のブロック（図１７）に対して４通りの予測モードを用いてコスト計算を行い、Ｉｎｔｒａ８では０〜３番のブロック（図１８）のそれぞれに対して最大で５通りの予測モードを用いてコスト計算を行い、Ｉｎｔｒａ４では０〜１５番のブロック（図１９）のそれぞれに対して３通りの予測モードを用いてコスト計算を行うので、合計で７２回のコスト計算で済むこととなる。
【００７０】
この結果、本発明を適用しない場合の１８４回と比較すると、７２／１８４＝０．３９１となり、コスト計算量を６割も削減することができる。
【００７１】
なお、図２０に示した、各サーチ結果に対するサーチ対象モードの設定数は一例であり、これに限定されるものではなく、例えば、Ｉｎｔｒａ１６におけるサーチの結果が予測モード０であった場合、ＭＯＤＥ（８）でのサーチ対象モードを、予測モード７、０および５の３つにしても良く、Ｉｎｔｒａ１６におけるサーチの結果が予測モード１であった場合、ＭＯＤＥ（８）でのサーチ対象モードを、予測モード６、１および８の３つにしても良い。
【００７２】
サーチ対象モードの個数を減らせば、コスト計算量をさらに削減することが可能であり、サーチ対象モードの個数は、画質とのトレードオフ関係を考慮して決定すれば良い。
【００７３】
＜実施の形態１＞
以下、図２１〜図２７を用いて、本発明に係る実施の形態１の画像データの生成方法について説明する。
【００７４】
実施の形態１は、簡易イントラ予測とイントラ予測とを併用したＨ．２６４のエンコーダに本発明を適用するものである。
【００７５】
＜エンコーダの全体構成および動作の流れ＞
図２１は、簡易イントラ予測とイントラ予測とを併用するＨ．２６４のエンコーダ１００の構成を示すブロック図である。
【００７６】
図２１に示すようにエンコーダ１００は、簡易イントラ予測部１、イントラ予測部２、変換部３、量子化部４、エントロピー符号化部５、逆量子化部６、逆変換部７、ループフィルタ８、フレームメモリ９、フレーム間予測部１０および動き予測部１１を備えている。
【００７７】
エンコーダ１００に入力された入力画像信号は、簡易イントラ予測部１および動き予測部１１に与えられるとともに、フレーム間予測部１０から出力される予測画像との差分を取るためにも使用される。
【００７８】
簡易イントラ予測部１は、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の全ての予測方法の中から、最適な予測モードを簡易イントラ予測により選択するものであり、簡易イントラ予測では、参照対象のサブブロック（第１のサブブロック）の符号化済みの画素値だけでなく、符号化前の画素値も予測値（第１の予測値）として使用して、最大で９通りの予測モードを実行し、各予測モードにおける予測画像（第１の予測画像）を得るとともに、符号化対象のサブブロック（第２のサブブロック）の符号化対象画素の画素値との差分の絶対値和（ＳＡＤ）すなわちコストを取得する。
【００７９】
この場合、先に説明した本発明の技術思想に従い、符号化サイズの大きな予測方法から順にコスト計算を行い、その結果に基づいて、次の予測方法における予測モードの選択を行うことで、予測モードの絞り込みを行って最適予測モードを選択する。
【００８０】
簡易イントラ予測部１での予測モードの絞り込みの結果は、入力画像信号とともにイントラ予測部２に与えられ、イントラ予測部２においては、絞り込みによって得られた最適予測モードについて、通常のイントラ予測を実行し、最適予測モードを決定する。
【００８１】
ここで、通常のイントラ予測とは、符号化済みの画素値を予測値（第２の予測値）として用いて予測を行うものであり、この段階では、直前のサブブロックに対する符号化が終わっているので、通常のイントラ予測を行うのに不都合は生じない。なお、簡易イントラ予測およびイントラ予測については、後にさらに説明する。
【００８２】
イントラ予測部２において決定された最適予測モードによって得られた、各符号化対象画素と予測画像（第２の予測画像）との差分データは、変換部３に与えられる。なお、変換部３には、上述したフレーム内予測を行うフレーム内モードで得られる差分データと、フレーム間予測を行うフレーム間モードで得られる差分データとが、モードによって切り換えて与えられる構成となっている。
【００８３】
変換部３では、与えられた差分データに対して離散コサイン変換（ＤＣＴ）を施し、変換係数を出力するが、Ｈ．２６４では、浮動小数点計算を整数化した整数変換（Integer Transform）を用いる。なお、変換の単位は、４×４画素単位である。
【００８４】
量子化部４では、変換部３から与えられるＤＣＴ変換係数に対して量子化を行い、量子化された変換係数を出力する。
【００８５】
量子化された変換係数はエントロピー符号化部５に与えられ、エントロピー符号化部５では、ベースライン・プロフアイルおよびＸプロファイルでは、指数ゴロム符号（Exponential Golomb Coding）と、それを応用したＣＡＶＬＣ（Context−based Adaptive Variable Length Coding）を使用し、また、メイン・プロファイルおよびハイ・プロファイルではＣＡＢＡＣ（Context−based Adaptive Binary Arithmetic Coding）という算術符号を用いて、量子化された変換係数に対するエントロピー符号化を行って、圧縮された画像データをビットストリームとして出力する。
【００８６】
なお、量子化された変換係数は逆量子化部６にも与えられ、さらに逆変換部７を経て差分データに戻される。
【００８７】
フレーム間モードにおいては、スイッチＳＷ１が入って、フレーム間予測部１０で作成された直前のフレームの画素値に上記差分データがそれぞれ加えられた後に、ループフィルタ８を介してフレームメモリ９に蓄積される。このフレームのデータはデコーダ側で再生される符号化済み画像と同じであり、直前のフレームとして、次のフレームを作成するときに使用される。
【００８８】
一方、フレーム内モードの場合は、スイッチＳＷ２が入って、イントラ予測部２において決定された最適の予測モードによって得られた予測画像の画素値に、逆変換後の差分データがそれぞれ加えられて、符号化済み画像データとして、簡易イントラ予測部１およびイントラ予測部２に与えられ、簡易イントラ予測およびイントラ予測に使用される。なお、この符号化済み画像データはデコーダ側で再生される画像データと同じである。
【００８９】
ここで、変換部３、量子化部４、逆量子化部６および逆変換部７における、変換処理、量子化処理、逆変換処理および逆量子化処理によって、デコーダ側で再生される画像データと同じ画像データを得る処理をローカルデコードと呼称する。
【００９０】
ループフィルタ８は、整数変換のブロック境界のみを平滑化してブロックノイズの発生を抑制するデブロッキングフィルタである。
【００９１】
フレーム間予測部１０では、フレームメモリ９に蓄積された、直前のフレームの画像データを使用して、画面の動きを考慮して次のフレームの予測画像を作成する動き補償が実行される。ここで作成された予測画像は、フレーム間モードにおいて、入力画像との間で差分を取るために使用される。
【００９２】
また、動き予測部１１においては、入力画像信号から動きベクトルを検出して画面の動き予測を行い、その結果をエントロピー符号化部５、フレーム間予測部１０に与える。
【００９３】
＜簡易イントラ予測部の動作＞
次に、簡易イントラ予測部１での最適予測モードの選択動作について、図２２および図２３に示すフローチャートを用いて説明する。
【００９４】
図２２は、最適予測モードの選択動作の全体の流れを示すフローチャートであり、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の全ての予測方法の中から、最適予測モードを選択する場合について示している。
【００９５】
選択動作を開始すると、図２２に示すステップＳ１において、Ｉｎｔｒａ１６についてのサーチを行って、最小コストをもたらす予測モードを取得する。この場合のサーチ対象モードは、先に説明したように、予測モード０〜３の全てとなる。なお、具体的なサーチ動作については、図２３を用いて後に説明する。
【００９６】
その後、ステップＳ２において、Ｉｎｔｒａ１６における最小コスト（第１の最小コスト）をcost_intraとして記憶するとともに、対応する予測モード（第１の予測モード）を記憶する。
【００９７】
次に、ステップＳ３において、Ｉｎｔｒａ８についてのサーチを行って、最小コスト（第２の最小コスト）をもたらす予測モード（第２の予測モード）を取得する。この場合のサーチ対象モードは、先に図２０を用いて説明したように、Ｉｎｔｒａ１６において行ったサーチの結果、最小コストをもたらす予測モードに対応して予め限定された複数の予測モードであり、ステップＳ２で記憶された最小コストを与えるＩｎｔｒａ１６の予測モードに基づいて選択され、図２０に示した例では、最大で５つの予測モードが選択されることになる。
【００９８】
次に、ステップＳ４において、cost_intraとして記憶されたＩｎｔｒａ１６における最小コストと、Ｉｎｔｒａ８における最小コスト（cost８）との大小関係を判定する。そして、cost８の方が小さいと判定された場合は、ステップＳ５に進み、Ｉｎｔｒａ８における最小コストをcost_intraとして記憶するとともに、対応する予測モードを記憶する。
【００９９】
一方、ステップＳ４においてcost_intra（Ｉｎｔｒａ１６における最小コスト）の方が小さいと判定された場合は、ステップＳ６に進む。
【０１００】
ステップＳ６では、Ｉｎｔｒａ４についてのサーチを行って、最小コスト（第２の最小コスト）をもたらす予測モード（第２の予測モード）を取得する。この場合のサーチ対象モードは、先に図２０を用いて説明したように、Ｉｎｔｒａ８において行ったサーチの結果、最小コスト（第１の最小コスト）をもたらす予測モード（第１の予測モード）に対応して予め限定された複数の予測モードであり、ステップＳ５で記憶された最小コストを与えるＩｎｔｒａ８の予測モードに基づいて選択され、図２０に示した例では、３つの予測モードが選択されることになる。
【０１０１】
次に、ステップＳ７において、cost_intraとＩｎｔｒａ４における最小コスト（cost４）との大小関係を判定する。そして、cost４の方が小さいと判定された場合は、ステップＳ８に進み、Ｉｎｔｒａ４における最小コストをcost_intraとして記憶するとともに、対応する予測モードを記憶し、一連の処理を終える。この場合、記憶された予測モードが、簡易イントラ予測で得られた最適予測モードとなる。
【０１０２】
なお、ステップＳ７における比較対象であるcost_intraは、ステップＳ５で記憶されたＩｎｔｒａ８における最小コストあるいはステップＳ２で記憶されたＩｎｔｒａ１６における最小コストである。
【０１０３】
一方、ステップＳ７においてcost_intra（Ｉｎｔｒａ１６における最小コストまたはＩｎｔｒａ８における最小コスト）の方が小さいと判定された場合は、当該cost_intraに対応する予測モードが簡易イントラ予測で得られた最適予測モードとなる。
【０１０４】
図２３は、図２２を用いて説明したステップＳ１、Ｓ３およびＳ６におけるサーチ動作を説明するフローチャートであり、何れのサーチであるかは特定せず、ＩｎｔｒａＮのサーチ動作として説明する。
【０１０５】
ＩｎｔｒａＮについてのサーチを開始すると、まず、ステップＳ１１において、記憶されているコストの値をゼロに設定して初期値とする。これは、サーチ動作を繰り返すので、新たなサーチ動作に際して、以前のサーチ動作で得られたコストの値をリセットする動作である。
【０１０６】
次に、ステップＳ１２において、サーチ対象ブロックを設定する。例えば、Ｉｎｔｒａ１６であれば図１７に示したようにサブブロックは存在しないので、サーチ対象ブロックは０番のブロックのみとなるが、Ｉｎｔｒａ８であれば図１８に示したようにサブブロックは４個であるので、サーチ対象ブロックは０番〜３番のブロックとなり、Ｉｎｔｒａ４であれば図１９に示したようにサブブロックは１６個であるので、サーチ対象ブロックは０番〜１５番のブロックとなる。
【０１０７】
次に、ステップＳ１３において、ステップＳ１２において設定したサーチ対象ブロックの中から、実際にサーチするブロック番号を指定する。また、ＭＯＤＥ（Ｎ）における最小コスト（min_cost）の初期値として、考え得る最大の値（COST_MAX）を設定する。
【０１０８】
次に、ステップＳ１４において、コスト算出の対象となる予測モード（算出対象モード）を設定する。例えばＩｎｔｒａ１６であれば、図２０に示したように予測モード０〜３となり、Ｉｎｔｒａ８であれば最大５通りの予測モードが設定され、Ｉｎｔｒａ４であれば３通りの予測モードが設定される。
【０１０９】
次に、ステップＳ１５において、ステップＳ１４において設定した算出対象モードの中から、実際にコストを算出するモード番号を指定する。
【０１１０】
次に、ステップＳ１６において、指定されたモード番号の予測モードに基づいて予測画像を取得し、補間が実行される前の画素値と補間を実行して得た予測画像の画素値との差分を４×４画素単位で算出し、それらの総和（ＳＡＤ）を得ることでコスト（cost(mode)）を算出する。すなわち、Ｉｎｔｒａ４であればサーチ対象ブロックは４×４画素で構成されるので、サーチ対象ブロックの４×４画素についてのＳＡＤがステップＳ１６で算出すべきコスト（cost(mode)）となる。
【０１１１】
一方、Ｉｎｔｒａ８であればサーチ対象ブロックは８×８画素で構成されるので、サーチ対象ブロックの８×８画素を４×４画素単位で４個に区分したサブブロックのそれぞれについてＳＡＤを算出し、４個のサブブロックのＳＡＤを合計したものがステップＳ１６で算出すべきコスト（cost(mode)）となる。
【０１１２】
また、Ｉｎｔｒａ１６であればサーチ対象ブロックは１６×１６画素で構成されるので、サーチ対象ブロックの１６×１６画素を４×４画素単位で１６個に区分したサブブロックのそれぞれについてＳＡＤを算出し、１６個のサブブロックのＳＡＤを合計したものがステップＳ１６で算出すべきコスト（cost(mode)）となる。
【０１１３】
次に、ステップＳ１７において、ステップＳ１６で算出したコスト（cost(mode)）と、最小コスト（min_cost）との大小関係を判定する。なお、min_costが初期値（COST_MAX）に設定されている場合は、cost(mode)の方が小さいことになる。
【０１１４】
そして、cost(mode)の方が小さいと判定された場合は、ステップＳ１８に進み、算出したコスト（cost(mode)を最小コスト（min_cost）として設定する。
【０１１５】
その後、ステップＳ１９において、ステップＳ１４で設定された算出対象モードの全てについてコストの算出が終了したか否かを判定し、コスト未算出の算出対象モードが存在する場合は、ステップＳ１５に戻って、次にコストを算出するモード番号を指定し、ステップＳ１６以下の動作を繰り返す。
【０１１６】
一方、ステップＳ１９において算出対象モードが存在しないと判定された場合は、ステップＳ２０において、ステップＳ１８で設定した最小コスト（min_cost）を、ＩｎｔｒａＮにおける暫定的な最小コストとして決定する。
【０１１７】
その後、ステップＳ２１において、ステップＳ１２で設定されたサーチ対象ブロックの全てについて最小コストを決定したか否かを判定し、未決定のサーチ対象ブロックが存在する場合は、ステップＳ１３に戻って、次に最小コストを決定するブロック番号を指定し、ステップＳ１４以下の動作を繰り返す。
【０１１８】
一方、ステップＳ２１において、最小コスト未決定のサーチ対象ブロックが存在しないと判定された場合は、ステップＳ２０で決定した暫定的な符号化サイズの最小コストをマクロブロックの個数分足し合わせたものをＩｎｔｒａＮにおける最小コストとして決定し、サーチ動作を終了する。
【０１１９】
簡易イントラ予測部１では、上述した処理における予測モードの絞り込みを、符号化済みの画素値だけでなく、符号化前の画素値（未符号化状態の画素値）も予測値として使用する簡易イントラ予測により行っている。
【０１２０】
簡易イントラ予測部１で得られた最適予測モードはイントラ予測部１に与えられ、イントラ予測部１において通常のイントラ予測を実行する。
【０１２１】
＜簡易イントラ予測およびイントラ予測＞
次に、簡易イントラ予測およびイントラ予測について説明する。
【０１２２】
簡易イントラ予測およびイントラ予測は、パイプライン処理により実行される。図２４は、当該パイプライン処理を模式的に示す図である。
【０１２３】
図２４においては横軸に時間の経過を示し、一連の処理サイクルをブロック処理サイクルとして示しており、図２４では（ｎ−１）、（ｎ）および（ｎ＋１）の３つのブロック処理サイクルを示している。
【０１２４】
ここで、ｎ番のサブブロックが符号化対象のサブブロックであるとすると、ｎ番のサブブロックに対して、簡易イントラ予測部１において、図２２および図２３を用いて説明した処理により、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の全ての予測方法の中から、最適な予測モードを選択する。
【０１２５】
簡易イントラ予測においては、参照対象となるサブブロックの符号化が終わっていない場合には、入力画像信号の画素値を予測値として使用する。
【０１２６】
例えば、図１に示す１３番のサブブロックＳＢをｎ番のサブブロックとした場合、通常のイントラ予測では１２番のサブブロックＳＢの符号化が終わらないと、９通りの予測モードを全て実行することができないが、簡易イントラ予測では１２番のサブブロックＳＢの未符号化の状態にある画素、すなわち符号化対象画素の画素値を用いることで、９通りの予測モードを全て実行することができる。
【０１２７】
図２４に示すように、ｎ番のサブブロックに対する簡易イントラ予測をブロック処理サイクル（ｎ）において行うが、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の全ての予測方法の中から最適予測モードを得るには、数式（２）を用いて説明した例では７２回のコスト計算が必要であり、ブロック処理サイクル（ｎ）のほぼ全期間を費やして簡易イントラ予測を実行する。
【０１２８】
また、ブロック処理サイクル（ｎ）では、簡易イントラ予測と平行して、ｎ−１番のサブブロックに対して、イントラ予測部２において通常のイントラ予測を実行する。
【０１２９】
ｎ−１番のサブブロックに関しては、ブロック処理サイクル（ｎ−１）において簡易イントラ予測を実行して予測モードの絞り込みを行っているので、当該絞り込みの結果を反映させて、ブロック処理サイクル（ｎ）において通常のイントラ予測を実行することで、当該処理サイクル期間内で最適予測モードに基づいた符号化を行うことができる。
【０１３０】
すなわち、ここで実行されるイントラ予測では、簡易イントラ予測で得られた最適予測モードについてのみ、再度、予測を実行すれば良く、簡易イントラ予測よりも短い時間で最適予測モードについてのイントラ予測を行うことができる。また、ここで実行されるイントラ予測では、参照対象画素は全て符号化されているので、精度の高い予測が可能となる。
【０１３１】
なお、ブロック処理サイクル（ｎ−１）においては、ｎ−２番のサブブロックに対するローカルデコードが終わっているので、ｎ−１番のサブブロックに対して、通常のイントラ予測を実行することについて支障は生じない。
【０１３２】
ｎ−１番のサブブロックに対して、通常のイントラ予測を実行して最適予測モードでの予測画像を決定した後は、ブロック処理サイクル（ｎ）において、当該予測画像を使用して、ｎ−１番のサブブロックのローカルデコードを実行する。
【０１３３】
ローカルデコードによって符号化された、ｎ−１番のサブブロックの画素データはイントラ予測部２内のメモリに記憶され、ｎ番のサブブロックに対する通常のイントラ予測において使用される。
【０１３４】
同様に、ブロック処理サイクル（ｎ＋１）においては、ｎ＋１番のサブブロックに関しての簡易イントラ予測を実行するとともに、ｎ番のサブブロックに対して、通常のイントラ予測を実行して予測画像を決定し、その後は、当該予測画像から得られる差分データを使用して、ｎ番のサブブロックのローカルデコードを実行する。
【０１３５】
図２５には、符号化対象サブブロックに対して実行する、簡易イントラ予測、通常のイントラ予測およびローカルデコードの流れをフローチャートで示す。
【０１３６】
図２５において、エンコーダ１００に符号化対象画像のデータが入力されると、簡易イントラ予測部１において、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４において簡易イントラ予測を実行して予測画像を取得し（ステップＳ３１）、その後、図２２および図２３を用いて説明した手順で最適予測モードが絞り込まれる（ステップＳ３２）。なお、イントラ予測部２にも符号化対象画素のデータが与えられる。
【０１３７】
そして、イントラ予測部２において、ステップＳ３２で絞り込まれた最適予測モードに対して、符号化された画素値を用いてイントラ予測を実行し（ステップＳ３３）、予測画像を取得する（ステップＳ３４）。
【０１３８】
その後、得られた予測画像と各符号化対象画素の当初の画素値との差分データに対して、変換部３において直交変換（例えばＤＣＴ）を施し（ステップＳ３５）、続いて、量子化部４における量子化（ステップＳ３６）、逆量子化部６における逆量子化（ステップＳ３７）、逆変換部７における逆変換を施す（ステップＳ３８）。
【０１３９】
そして、最適予測モードによって得られた予測画像に逆変換後のデータ（差分データ）を加えることで、符号化済み画像データを生成し（ステップＳ３９）、イントラ予測部２にフィードバックする。
【０１４０】
＜効果＞
以上説明したように、エンコーダ１００においては、符号化前の画素値も予測値として使用してイントラ予測を行う簡易イントラ予測部１において、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の予測方法について、符号化サイズの大きな予測方法から順にコスト計算を行い、その結果に基づいて、次の予測方法における予測モードの選択を行うので、最適予測モードの導出においてコスト計算の回数を大幅に削減することができる。また、これを、簡易イントラ予測部１において行うので、直前のサブブロックに対する符号化が終わっていない段階でも画像予測を始めることができ、イントラ予測に費やす時間を短縮して、イントラ予測の効率化を図ることができる。
【０１４１】
＜変形例１＞
図２２を用いて説明したエンコーダ１００における最適予測モードの選択動作においては、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の予測方法について、符号化サイズの大きな予測方法から順にコスト計算を行う例を示したが、符号化サイズの大きい方のコストが、符号化サイズの小さい方のコストよりも小さい場合には、以降の処理をスキップする構成としても良い。この動作について、図２６に示すフローチャートを用いて説明する。なお、図２６において図２２と同じ動作を示すステップには同じ符号を、重複する説明は省略する。
【０１４２】
図２６に示すステップＳ４において、cost_intraとして記憶されたＩｎｔｒａ１６における最小コスト（第１の最小コスト）と、Ｉｎｔｒａ８における最小コスト（第２の最小コスト：cost８）との大小関係を判定する。そして、cost８の方が小さいと判定された場合は、ステップＳ５に進み、Ｉｎｔｒａ８における最小コストをcost_intraとして記憶するとともに、対応する予測モードを記憶する。
【０１４３】
一方、ステップＳ４においてcost_intra（Ｉｎｔｒａ１６における最小コスト）の方が小さいと判定された場合は、以降の処理をスキップし、一連の処理を終える。この場合、cost_intraとして記憶されたＩｎｔｒａ１６における最小コストが簡易イントラ予測で得られた最適予測モードとなる。
【０１４４】
このようなスキップを行うのは、Ｉｎｔｒａ１６の符号化サイズ（１６×１６）よりも小さいＩｎｔｒａ８の符号化サイズ（８×８）としても、コストが小さくならない場合には、さらに小さな符号化サイズ（４×４）としてもコストが小さくならない可能性が高く、そのような場合にまで、Ｉｎｔｒａ４での最小コストを求めることは、コスト計算の無駄となるからである。特に、Ｉｎｔｒａ４での最小コストの算出には図２０の例では４８回のコスト計算が必要であるが、これを省略することで、コスト計算の回数を１／３にすることができる。
【０１４５】
＜変形例２＞
図２０に示した、各サーチ結果に対するコスト計算の対象とする予測モードでは、Ｉｎｔｒａ１６におけるサーチの結果に対して、ＭＯＤＥ（８）でのサーチ対象モードは最大で５通りの予測モードとする例を示し、Ｉｎｔｒａ８におけるサーチの結果に対して、ＭＯＤＥ（４）でのサーチ対象モードは３通りとする例を示したが、これに固定、限定されるものではなく、画像サイズや符号化の難易度に応じてフレーム単位で可変とすることも可能である。
【０１４６】
すなわち、サーチ対象モードの設定はレジスタによって設定されるので、レジスタの設定を変えることで、任意に変更可能である。
【０１４７】
例えば、図２２に示したエンコーダ１００が、１９２０×１０８８のＨＤ（High Definition）画像に対して３０ｆｐｓ（Frame Per Second）のエンコードが可能な性能を有する場合、エンコーダ１００では、７２（回／ＭＢ）×８１６０（ＭＢ）＝５８７５２０（回／フレーム）のイントラ予測が可能となる。
【０１４８】
ここで、１４４０×１０８８のＨＤ画像に対して３０ｆｐｓのエンコードを行う場合、１４４０×１０８８＝６１２０ＭＢであるので、ＭＯＤＥ（８）でのサーチ対象モードをフルサーチ（９モード）に変更した場合、最適な予測モードを選択するのに必要なコスト計算の回数は以下の数式（３）で表される８８回となる。
【０１４９】
【数３】
2010263301.tif 000005
【０１５０】
この場合、８８（回／ＭＢ）×６１２０（ＭＢ）＝５３８５６０（回／フレーム）のイントラ予測を行うことになるが、これはエンコーダ１００の性能範囲内の数値であり、リアルタイムでの処理が可能となる。
【０１５１】
また、７０４×４８０のＳＤ（Standard Dentisy）画像に対して３０ｆｐｓのエンコードを行う場合、７０４×４８０＝１３２０ＭＢであるので、ＭＯＤＥ（８）およびＭＯＤＥ（９）でのサーチ対象モードを、何れもフルサーチに変更した場合、最適な予測モードを選択するのに必要なコスト計算の回数は以下の数式（４）で表される１６４回となる。
【０１５２】
【数４】
2010263301.tif 000006
【０１５３】
この場合、１８４（回／ＭＢ）×１３２０（ＭＢ）＝２４２８８０（回／フレーム）のイントラ予測を行うことになるが、これはエンコーダ１００の性能範囲内の数値であり、リアルタイムでの処理が可能となる。
【０１５４】
＜変形例３＞
色差信号についてもイントラ予測を行うが、色差信号のイントラ予測（Ｉｎｔｒａクロマ）は、輝度成分のＩｎｔｒａ１６と類似する予測処理を行う。このため、Ｉｎｔｒａクロマの予測結果は、Ｉｎｔｒａ１６と良く似た結果となることが考えられる。
【０１５５】
すなわち、予測モード数は、Ｉｎｔｒａ１６と同じ４通りであり、予測方向も同じである。このため、例えば、１フレームでの符号化処理時間が増え、リアルタイム処理が困難になりつつある昨今では、Ｉｎｔｒａクロマの符号化モードを、Ｉｎｔｒａ１６でのサーチ結果を用いて決定することで、画質を低下させることなく処理時間を削減し、リアルタイム処理を維持することができる。
【０１５６】
すなわち、人間の視覚特性は、色差よりも輝度による画質劣化に敏感であるため、輝度ではなく、色差モードのサーチを省略することで、画質とリアルタイム処理との両立を図るものである。
【０１５７】
図２７には、Ｉｎｔｒａ１６でのサーチ結果に対応付けられる、Ｉｎｔｒａクロマの符号化モードの一例を表す。
【０１５８】
図２７において、Ｉｎｔｒａ１６におけるサーチの結果、予測モード０が最もコストが小さいと判明した場合は、Ｉｎｔｒａクロマの符号化モードは２（予測モード０と同じ垂直方向）に決定される。同様に、Ｉｎｔｒａ１６におけるサーチ結果が予測モード１である場合、Ｉｎｔｒａクロマの符号化モードは１（予測モード１と同じ水平方向）に決定され、Ｉｎｔｒａ１６におけるサーチ結果が予測モード２である場合、Ｉｎｔｒａクロマの符号化モードは０（予測モード２と同じＤＣ）に決定され、Ｉｎｔｒａ１６におけるサーチ結果が予測モード３である場合、Ｉｎｔｒａクロマの符号化モードは３（予測モード３と同じ平面予測）に決定される。
【０１５９】
上述した方法によりＩｎｔｒａクロマを行うことで処理時間が削減されるが、その削減された時間分を、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４に使用する（予測モード数を増やす）ことも有効である。
【０１６０】
また、画像サイズや符号化の難易度に応じてフレーム単位でＩｎｔｒａクロマのサーチ対象モード数を可変にすることは、用途に応じた画質と処理量との関係を改善すると言う点で有効である。
【０１６１】
＜実施の形態２＞
＜エンコーダの全体構成および動作の流れ＞
次に、本発明に係る実施の形態２として、簡易イントラ予測を使用せず、イントラ予測のみで予測画像を生成するＨ．２６４のエンコーダに本発明を適用した場合について説明する。
【０１６２】
図２８は、イントラ予測により予測画像を生成するＨ．２６４のエンコーダ２００の構成を示すブロック図である。なお、図２１に示したエンコーダ１００と同一の構成については同一の符号を付し、重複する説明は省略する。
【０１６３】
図２８に示すようにエンコーダ２００は、イントラ予測部２２、変換部３、量子化部４、エントロピー符号化部５、逆量子化部６、逆変換部７、ループフィルタ８、フレームメモリ９、フレーム間予測部１０および動き予測部１１を備えている。
【０１６４】
エンコーダ２００に入力された入力画像信号は、イントラ予測部２２および動き予測部１１に与えられるとともに、フレーム間予測部１０から出力される予測画像との差分を取るためにも使用される。
【０１６５】
イントラ予測部２２は、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の全ての予測方法の中から、最適な予測モードをイントラ予測により選択するものであり、イントラ予測では、参照対象のサブブロック（第１のサブブロック）の符号化済みの画素値を使用して、最大で９通りの予測モードを実行し、各予測モードにおける予測画像（第１の予測画像）を得るとともに、符号化対象のサブブロック（第２のサブブロック）の符号化対象画素の画素値との差分の絶対値和（ＳＡＤ）、すなわちコストを取得する。
【０１６６】
この場合、先に説明した本発明の技術思想に従い、符号化サイズの大きな予測方法から順にコスト計算を行い、その結果に基づいて、次の予測方法における予測モードの選択を行うことで、予測モードの絞り込みを行って最適予測モードを決定する。
【０１６７】
フレーム内モードにおいては、イントラ予測部２２において決定された最適予測モードによって得られた、各符号化対象画素と予測画像（第２の予測画像）との差分データは、変換部３に与えられ、量子化部４、エントロピー符号化部５、逆量子化部６および逆変換部７を経て差分データに戻される。
【０１６８】
フレーム間モードにおいては、スイッチＳＷ３が入って、フレーム間予測部１０で作成された直前のフレームの画素値に上記差分データがそれぞれ加えられた後に、ループフィルタ８を介してフレームメモリ９に蓄積される。このフレームのデータはデコーダ側で再生される符号化済み画像と同じであり、直前のフレームとして、次のフレームを作成するときに使用される。
【０１６９】
フレーム間予測部１０では、フレームメモリ９に蓄積された、直前のフレームの画像データを使用して、画面の動きを考慮して次のフレームの予測画像を作成する動き補償が実行される。ここで作成された予測画像は、フレーム間モードにおいて、入力画像との間で差分を取るために使用される。
【０１７０】
また、動き予測部１１においては、入力画像信号から動きベクトルを検出して画面の動き予測を行い、その結果をエントロピー符号化部５、フレーム間予測部１０に与える。
【０１７１】
＜効果＞
以上説明したように、エンコーダ２００においては、イントラ予測部２２において、図２２および図２３に示すフローチャートを用いて説明した方法により最適予測モードの選択動作を行うものであり、Ｉｎｔｒａ１６、Ｉｎｔｒａ８およびＩｎｔｒａ４の予測方法について、符号化サイズの大きな予測方法から順にコスト計算を行い、その結果に基づいて、次の予測方法における予測モードの選択を行うので、最適予測モードの導出においてコスト計算の回数を大幅に削減することができる。
【符号の説明】
【０１７２】
ＭＢ  マクロブロック
ＳＢ  サブブロック
ＥＰ  符号化済み画素
ＵＰ  符号化対象画素
ＢＬ  ブロック
【図１】
2010263301.tif 000007
【図２】
2010263301.tif 000008
【図３】
2010263301.tif 000009
【図４】
2010263301.tif 000010
【図５】
2010263301.tif 000011
【図６】
2010263301.tif 000012
【図７】
2010263301.tif 000013
【図８】
2010263301.tif 000014
【図９】
2010263301.tif 000015
【図１０】
2010263301.tif 000016
【図１１】
2010263301.tif 000017
【図１２】
2010263301.tif 000018
【図１３】
2010263301.tif 000019
【図１４】
2010263301.tif 000020
【図１５】
2010263301.tif 000021
【図１６】
2010263301.tif 000022
【図１７】
2010263301.tif 000023
【図１８】
2010263301.tif 000024
【図１９】
2010263301.tif 000025
【図２０】
2010263301.tif 000026
【図２１】
2010263301.tif 000027
【図２２】
2010263301.tif 000028
【図２３】
2010263301.tif 000029
【図２４】
2010263301.tif 000030
【図２５】
2010263301.tif 000031
【図２６】
2010263301.tif 000032
【図２７】
2010263301.tif 000033
【図２８】
2010263301.tif 000034