(57)【要約】【課題】符号化単位のブロック内に多数の予測ブロックが存在した場合でも、処理性能が低下してしまう可能性を低減することを可能にすることを課題とする。【解決手段】ブロック決定部（２０１）は、符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する。閾値決定部（２０２）は、所定の予測ブロックサイズに対する予測ブロック数の閾値を決定する。変更部（２０３）は、決定された閾値に基づいて、ブロック決定部（２０１）にて決定された複数の予測ブロックのサイズうち、第１の予測ブロックサイズを第２の予測ブロックサイズに変更する。【選択図】図２
2018170673.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置であって、
前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定手段と、
所定の予測ブロックサイズの予測ブロック数に対する閾値を決定する閾値決定手段と、
前記閾値決定手段で決定された閾値に基づいて、前記決定手段にて決定された複数の予測ブロックのサイズのうち、第１の予測ブロックサイズを第２の予測ブロックサイズに変更する変更手段と、
を有することを特徴とする画像符号化装置。
【請求項２】
前記閾値決定手段は、前記符号化単位のブロック内で前記予測ブロックのサイズ毎にカウントした予測ブロック数に基づいて前記閾値を決定することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記閾値決定手段は、Ｍ×Ｎ（Ｍは１以上の整数、Ｎは１以上の整数）画素の予測ブロックサイズの予測ブロック数に基づいて前記閾値を算出することを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
前記閾値決定手段は、画像サイズに基づいて前記閾値を決定することを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
前記閾値決定手段は、所定の符号化方式に規定されている所定のレベルに基づいて前記閾値を決定することを特徴とする請求項１に記載の画像符号化装置。
【請求項６】
前記閾値決定手段は、画像のフレームレートに基づいて前記閾値を決定することを特徴とする請求項１に記載の画像符号化装置。
【請求項７】
前記変更手段は、前記第１の予測ブロックサイズの予測ブロックの内、前記符号化単位のブロック内の下側に位置する予測ブロックから順に、前記第２の予測ブロックサイズへの変更を行うことを特徴とする請求項１から６の何れか１項に記載の画像符号化装置。
【請求項８】
前記変更手段は、前記第１の予測ブロックサイズである予測ブロックの内、前記符号化単位のブロック内の符号化順とは逆の順に、前記第２の予測ブロックサイズへの変更を行うことを特徴とする請求項１から６の何れか１項に記載の画像符号化装置。
【請求項９】
前記変更手段は、前記第１の予測ブロックサイズである予測ブロックの内、画素分散が低いブロックから順に前記第２の予測ブロックサイズへの変更を行うことを特徴とする請求項１から６の何れか１項に記載の画像符号化装置。
【請求項１０】
前記変更手段は、前記閾値決定手段により決定された閾値と一つ前に処理された符号化単位のブロックに対して決定された閾値との差分を保持し、次に処理される符号化単位のブロックに対して決定された閾値に前記差分を加算することを特徴とする請求項１から９の何れか１項に記載の画像符号化装置。
【請求項１１】
画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置であって、
前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定手段を有し、
前記決定手段は、前記符号化単位のブロック内で前記予測ブロックのサイズを決定する際に、前記符号化単位のブロック内で既に決定されたほかの予測ブロックのサイズに基づいて、所定の予測ブロックサイズの使用を制限する制限手段を含む
ことを特徴とする画像符号化装置。
【請求項１２】
画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置の画像符号化方法であって、
前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定工程と、
所定の予測ブロックサイズの予測ブロック数に対する閾値を決定する閾値決定工程と、
前記閾値決定工程で決定された閾値に基づいて、前記決定工程にて決定された複数の予測ブロックのサイズのうち、第１の予測ブロックサイズを第２の予測ブロックサイズに変更する変更工程と、
を有することを特徴とする画像符号化方法。
【請求項１３】
コンピュータを、請求項１から１１の何れか１項に記載の画像符号化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像信号を符号化する画像符号化装置、画像符号化方法、及びプログラムに関する。
【背景技術】
【０００２】
動画符号化技術には、ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）（非特許文献１）等がある。これらの動画符号化技術では、画像を符号化単位の画素ブロック（以降、符号化ブロックと呼ぶ。）に分割し、符号化ブロックで符号化処理を行う。ＨＥＶＣでは、画像を符号化ブロック（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｂｌｏｃｋ（ＣＴＢ））に分割し、符号化ブロックを四分木構造で階層的にサブブロック（Ｃｏｄｉｎｇ  Ｕｎｉｔ（ＣＵ））に分割することが可能となっている。さらにＣＵは、予測処理を行うための予測ブロック（Ｐｒｅｄｉｃｔｉｏｎ  Ｕｎｉｔ（ＰＵ））及び、変換処理を行うための変換ブロック（Ｔｒａｎｓｆｏｒｍ  Ｕｎｉｔ（ＴＵ））に分割され、各ブロック単位の予測処理及び変換処理が行われる。
【０００３】
予測処理には、画面内の符号化済みブロックを参照して予測符号化を行う画面内（イントラ）符号化と、現在符号化中の画像とは時間的に異なる画像を参照して予測符号化を行う画面間（インター）符号化がある。イントラ予測処理では、符号化済みの符号化対象の予測ブロック周辺のブロックの画素を用いて予測画像が生成され、どの方向の画素を用いるかを示す予測モードに基づいて、予測ブロックの画素と予測画素との差分を求める。そして、この差分画素に対して直交変換処理及び量子化処理を行い、エントロピー符号化処理を行うことにより、データ量が削減される。また、量子化後のデータは、逆量子化処理及び逆直交変換処理が行われ、その逆直交変換後のデータと予測画素とを足し合わせることで再構成画素が生成される。再構成画像は、次の予測ブロックの予測画素として利用される。
【０００４】
なお、特許文献１には、複数のフレームを含む画像データを符号化する画像符号化装置において、符号化位置又は発生符号量に応じて符号化ブロックの上限サイズを決定して符号化誤差を制御する技術が開示されている。特許文献１に記載の技術では、フレームの未符号化ブロック数を全符号化ブロック数で割って、フレームの符号化率を算出し、フレームの符号化率が閾値より大きい場合に、予測ブロックサイズの上限を制限することで、符号量の制御を可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−３５２３号公報
【非特許文献】
【０００６】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６５  （０４／２０１３）  Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、符号化処理の際に予測ブロックが参照する予測画素には、前述したように符号化済みの画像データを用いて再構成された画像の画素が使用される。一方、ＨＥＶＣでは様々なサイズの予測ブロックの利用が可能となされている。例えば符号化ブロックサイズが６４×６４画素の場合、全ての予測ブロックサイズが４×４画素であるならば、一つの符号化ブロック内には２５６個の予測ブロックが存在し得ることになる。しかしながら、符号化ブロック内に多数の予測ブロックが存在すると、直前のブロックの再構成画素の生成が完了するまで予測画素を準備できず、次のブロックの予測処理を開始できない状態になることがあり、この場合、処理性能が低下してしまう。このため、符号化ブロック内に多数の予測ブロックが存在する場合であっても、処理性能の低下を防ぐことが望まれる。なお、特許文献１に記載の技術のように、予測ブロックサイズを制限して符号量を制御すれば、或る程度、処理性能の低下を防ぐことは可能になる。しかし、特許文献１に記載の技術は、予測ブロックサイズの上限を制限して発生符号量を制御する技術であるため、符号化ブロック内の予測ブロック数が増加してしまった場合の処理性能の低下を防ぐことは困難である。
【０００８】
そこで、本発明は、符号化単位のブロック内に多数の予測ブロックが存在した場合に、処理性能が低下してしまう可能性を低減することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置であって、前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定手段と、所定の予測ブロックサイズの予測ブロック数に対する閾値を決定する閾値決定手段と、前記閾値決定手段で決定された閾値に基づいて、前記決定手段にて決定された複数の予測ブロックのサイズのうち、第１の予測ブロックサイズを第２の予測ブロックサイズに変更する変更手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、符号化単位のブロック内に多数の予測ブロックが存在した場合でも、処理性能が低下してしまう可能性を低減することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の画像符号化装置の構成例を示す図である。
【図２】実施形態のイントラ予測部の構成例を示す図である。
【図３】第１の実施形態のイントラ予測モード決定処理のフローチャートである。
【図４】第１の実施形態を適用した場合の予測ブロック分割例を示す図である。
【図５】予測ブロック数をカウントするスキャン順を示す概略図である。
【図６】予測ブロック数をカウントするスキャン順の他の例を示す概略図である。
【図７】第３の実施形態のイントラ予測モード決定処理のフローチャートである。
【図８】第３の実施形態の予測ブロックサイズ変更例を示す概略図である。
【図９】第４の実施形態のイントラ予測部の構成例を示す図である。
【図１０】第４の実施形態のイントラ予測モード決定処理のフローチャートである。
【図１１】第５の実施形態のイントラ予測モード決定処理のフローチャートである。
【図１２】符号化ブロックのブロック分割の説明図である。
【図１３】予測処理の符号化順及び予測に用いる参照画素の説明図である。
【図１４】実施形態の画像符号化処理を実現可能なＰＣの構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
＜第１の実施形態＞
図１は実施形態の画像符号化装置１００の概略構成例を示す図である。
図１において、入力端子１０１には、例えば、不図示の撮像部により撮像された画像データ、不図示の記録部が記録媒体から読み出した画像データ、又は、不図示の通信ネットワーク等を介して受信した画像データ等が入力される。入力端子１０１を介した画像データは、分割部１０２に入力される。
【００１３】
分割部１０２は、入力された画像データを、それぞれ符号化単位の画素ブロックである複数の符号化ブロックに切り出し、それら符号化ブロック毎の画像データを、補償部１０６、イントラ予測部１０３、インター予測部１０４に出力する。本実施形態では、入力端子１０１から入力される画像を３２×３２画素の符号化ブロックに分割する例を挙げて説明するが、符号化ブロックのサイズや分割方法はこの例に限定されない。例えば符号化ブロックサイズは、１６×１６画素でもよいし、６４×６４画素でも、またＮ×Ｍ画素（Ｎ、Ｍは１以上の整数）でもよい。また、ブロック分割方法は、入力画像の性質に応じてブロックサイズを決定する分割方法や、ブロックサイズごとに符号化コストを計算して符号化コストが最小となるブロックサイズを適応的に選択する分割方法等でもよい。
【００１４】
イントラ予測部１０３は、符号化対象となっている符号化ブロック（ＣＴＵ）内の予測ブロックサイズを決定する。そして、イントラ予測部１０３は、決定した予測ブロックサイズで複数のイントラ予測モードの符号化コストを計算し、最適なイントラ予測モードを決定する。イントラ予測部１０３により決定された予測ブロックサイズ及びイントラ予測モードを示す情報は、予測情報として判定部１０５に送られる。
【００１５】
インター予測部１０４は、符号化対象となっている符号化ブロック（ＣＴＵ）内の予測ブロックサイズ及び動きベクトルを求め、符号化コストを計算して、最適なインター予測モードを決定する。イントラ予測部１０３により決定された予測ブロックサイズ及び動きベクトルとインター予測モードを示す情報は、予測情報として判定部１０５に送られる。また、インター予測部１０４からの予測情報は後述する画像再生部１０９にも送られる。
【００１６】
判定部１０５は、イントラ／インター判定部である。判定部１０５は、イントラ予測部１０３とインター予測部１０４とから出力された予測情報を基に、イントラ予測モードとインター予測モードのそれぞれの符号化コストを比較する。そして、判定部１０５は、各予測ブロックに対してイントラ符号化とインター符号化の何れの符号化を行うかを判定し、符号化コストが低い方の予測情報を補償部１０６に送る。
【００１７】
補償部１０６は、分割部１０２から出力された符号化ブロック単位の画像データに対し、判定部１０５から出力された予測情報に基づく予測ブロックごとにイントラ予測処理又はインター予測処理を行って、予測画像データを生成する。さらに、補償部１０６は、入力された画像データと前記予測画像データから予測誤差を算出して、その予測誤差データを変換・量子化部１０７に出力する。
【００１８】
変換・量子化部１０７は、補償部１０６から出力された予測誤差データを変換ブロック単位で直交変換して変換係数を得、さらにその変換係数を量子化して量子化係数を得る。この量子化係数は、符号化部１１２と逆変換・逆量子化部１０８に送られる。
逆変換・逆量子化部１０８は、変換・量子化部１０７から出力された量子化係数を逆量子化して変換係数を再生し、さらにその変換係数を逆直交変換して予測誤差を再生する。この再生された予測誤差データは画像再生部１０９に送られる。
【００１９】
画像再生部１０９は、インター予測部１０４から出力された予測情報に基づいて、フレームメモリ１１１を適宜参照して予測画像データを生成する。さらに、画像再生部１０９は、その予測画像データと逆変換・逆量子化部１０８から入力された予測誤差とから画像データを再構成してフィルタ処理部１１０に出力する。
【００２０】
フィルタ処理部１１０は、画像再生部１０９にて再構成された画像データに対して、フィルタ処理を行い、そのフィルタ処理後の画像データをフレームメモリ１１１に出力する。
フレームメモリ１１１は、フィルタ処理部１１０から出力される画像データを格納する。このフレームメモリ１１１に格納された画像データは、インター予測部１０４で参照される参照画像データである。
【００２１】
符号化部１１２は、エントロピー符号化部である。符号化部１１２は、変換・量子化部１０７から出力された量子化係数及び予測情報を符号化してビットストリームを生成し、出力端子１１３から出力する。
出力端子１１３は、符号化部１１２で生成されたビットストリームを図示しない外部の構成に出力する。
【００２２】
ここで、本実施形態においては、例えばＨＥＶＣ等の符号化方式を用いて動画の符号化を行う例を挙げる。以下、ＨＥＶＣにおける予測ブロック分割の概要と符号化処理の順番及び予測ブロックが参照する画素の概要について説明する。図１２（ａ）と図１２（ｂ）はＨＥＶＣにおける予測ブロック分割の一例を示す図であり、図１３（ａ）と図１３（ｂ）は符号化処理の順番及び予測ブロックが参照する画素の概要を説明する図である。ＨＥＶＣでは、例えば図１２（ａ）と図１２（ｂ）に示すように、符号化ブロック内において、予測ブロックサイズとして最小４×４画素から最大６４×６４画素まで、様々なブロックサイズを利用することが可能となされている。なお、図１２（ａ）は６４×６４画素の符号化ブロックとその中の複数サイズの予測ブロック例を示し、図１２（ｂ）は３２×３２画素の符号化ブロックとその中の複数サイズの予測ブロック例を示している。また、図１３（ａ）と図１３（ｂ）に示すように、予測画素１３１１には符号化済みのブロックの画素が使用される。図１３（ａ）は例えば四つの予測ブロックの符号化順を示しており、図中の矢印の順に符号化が行われる。図１３（ｂ）は符号化済みの予測ブロック、処理対象の予測ブロック１３０１及び符号化済みでない未符号化の予測ブロック１３０２と予測画素１３１１との関係を表している。符号化済みでない未符号化の箇所については、他の参照画素を複製するなどして補間した画素が参照される予測画素１３１１として用いられる。ただし、符号化ブロック内に多数の予測ブロックが存在する場合は、直前のブロックの再構成画素の生成が完了するまで予測画素を準備できないことがあり、次のブロックの予測処理を開始できないため、処理性能が低下してしまう。そこで、第１の実施形態では、符号化ブロック内に多数の予測ブロックが存在する場合には、符号化ブロック内の予測ブロックの個数を制限して、符号化ブロック内の予測ブロックの個数を減らすことにより性能低下を防ぐようにしている。
【００２３】
図２は、本実施形態の画像符号化装置１００のイントラ予測部１０３の構成を示す図である。以下、図２を参照しながらイントラ予測部１０３の詳細な構成について説明する。
図２において、ブロック決定部２０１は、符号化ブロック毎の画像データを受け取り、符号化ブロック内を複数の予測ブロックに分割する際の予測ブロックサイズを決定する。そして、ブロック決定部２０１は、それら各予測ブロックのサイズの情報を閾値決定部２０２に出力する。なお、符号化ブロック内を複数の予測ブロックに分ける際の各予測ブロックのサイズは、ＨＥＶＣ等の符号化方式において規定されるサイズから後述する方法に基づいて選択される。また、ブロック決定部２０１は、符号化ブロックの画像データを後述するモード決定部２０４に出力する。
【００２４】
閾値決定部２０２は、予測ブロックサイズの情報をブロック決定部２０１から受け取り、１符号化ブロック内の予測ブロックサイズ毎にそれぞれ予測ブロックの個数をカウントする。そして、閾値決定部２０２は、予測ブロックサイズ毎の予測ブロック数に基づいて符号化ブロック内の４×４画素からなる予測ブロック数に対する閾値を算出する。なお、本実施形態では、以下、Ｍ×Ｎ画素からなる予測ブロックをＭ×Ｎ予測ブロックと記す。さらに、閾値決定部２０２は、後述する変更部２０３に、各予測ブロックサイズの個数及び４×４予測ブロック数の閾値の情報を出力する。閾値決定部２０２で行われる閾値の算出方法の詳細については後述する。
【００２５】
変更部２０３は、１符号化ブロック内の各予測ブロックサイズの個数及び４×４予測ブロック数の閾値を閾値決定部２０２から受け取り、予測ブロックサイズの変更が必要か否かを判定し、変更が必要と判定された場合には予測ブロックサイズの変更を行う。変更部２０３で行われる予測ブロックサイズの変更の要否判定とサイズ変更方法の詳細については後述する。そして、変更部２０３は、必要に応じてサイズ変更を行った後の後の予測ブロックサイズの情報を、後述するモード決定部２０４に出力する。
【００２６】
モード決定部２０４は、ブロック決定部２０１から符号化ブロックの各画素データを受け取る。また、モード決定部２０４は、変更部２０３から、予測ブロックサイズの情報を受け取る。そして、モード決定部２０４は、各予測ブロックに対するイントラ予測モードを決定する。具体的には、モード決定部２０４は、各予測ブロックに対して複数のイントラ予測モードのそれぞれについて符号化コストを求め、最も符号化コストが低くなるイントラ予測モードを選択する。なお、本実施形態における予測モード選択手法はこの例に限定されるものではない。例えば、すでに選択済みの周囲の予測ブロックのイントラ予測モードに基づいて、イントラ予測モードの候補を求め、各候補の符号化コストを算出し、最も符号化コストが低くなるイントラ予測モードを選択してもよい。
【００２７】
以下、図２に示した構成のイントラ予測部１０３の動作について、図３のフローチャートを参照しながら説明する。図３はイントラ予測部１０３にて行われるイントラ予測モード決定処理のうち、特に予測ブロックサイズの決定から、必要に応じた予測ブロックサイズ変更までの処理の流れを示したフローチャートである。なお、以下の説明では、図３の処理ステップＳ３０１〜Ｓ３０４をそれぞれＳ３０１〜Ｓ３０４と略記する。また図３のフローチャートの処理は、ハードウェア構成により実行されてもよいし、ＣＰＵ等がプログラムを実行することにより実現されてもよい。これらのことは後述する他のフローチャートにおいても同様とする。
【００２８】
Ｓ３０１において、ブロック決定部２０１は、符号化ブロックを複数の予測ブロックに分ける際の各予測ブロックのサイズを決定する。具体的には、ブロック決定部２０１は、複数のイントラ予測モード（画面内予測モード）と予測ブロックサイズの組み合わせのそれぞれについて符号化コストを求め、最も符号化コストが低くなる予測ブロックサイズを選択する。なお、本実施形態における予測ブロックサイズの選択手法はこの例に限定されるものではない。例えば、ブロック決定部２０１は、符号化ブロック内を所定の画素ブロックに分割し、ブロック内の画素の平均値と各画素との差分の絶対値を合計した画素分散を求め、その画素分散の値に基づいて予測ブロックサイズを決めてもよい。また、ブロック決定部２０１は、符号化ブロック内のオブジェクトの境界を検出し、オブジェクト境界がブロック境界となるよう各予測ブロックとそのサイズを決めてもよい。
【００２９】
次のＳ３０２において、閾値決定部２０２は、Ｓ３０１で決定した予測ブロックサイズ毎に各予測ブロックの個数をカウントし、それら予測ブロックサイズ毎の予測ブロック数を基に、４×４予測ブロック数に対する閾値を算出する。閾値の算出方法の詳細は後述する。なお、本実施形態では、予測ブロック数の閾値を求める際の予測ブロックサイズが４×４画素である例を挙げて説明を行うが、これには限定されない。例えば、予測ブロックサイズが、８×８画素からなる予測ブロックでもよいし、４×８画素からなる予測ブロックでもよい。
【００３０】
次のＳ３０３において、変更部２０３は、Ｓ３０２で算出した４×４予測ブロック数の閾値と、Ｓ３０１で決定された各予測ブロックサイズのうちの４×４予測ブロックの数とを比較する。そして、変更部２０３は、Ｓ３０３にて４×４予測ブロック数が閾値より多いと判定した場合には、Ｓ３０４に処理を進める。一方、Ｓ３０３において４×４予測ブロック数が閾値未満であると判定された場合、イントラ予測部１０３は、図３のフローチャートの処理を終了する。
【００３１】
Ｓ３０４の処理に進んだ場合、変更部２０３は、Ｓ３０１で決定した４×４予測ブロックサイズの変更を行う。
以下、図３のＳ３０２の閾値算出処理とＳ３０４のサイズ変更処理について、図４（ａ）〜図４（ｄ）を用いて詳細に説明する。図４（ａ）は、Ｓ３０１で決定した各予測ブロックサイズで符号化ブロックが分割された場合の各予測ブロックの一例を示している。なお、図４（ａ）中の１６×１６と記された箇所が１６×１６予測ブロック、８×８と記された箇所が８×８予測ブロック、４×４と記された箇所が４×４予測ブロックを表している。図４（ｂ）は、図４（ａ）に示した各予測ブロック例に対して、Ｓ３０４で予測ブロックサイズが変更された後の各予測ブロックの一例を示している。図４（ｃ）は、Ｓ３０２において図４（ａ）の４×４予測ブロック数をカウントする際のカウント順を示しており、図４（ｃ）の４×４予測ブロック内に記されている番号の順にカウントが行われる。図４（ｄ）は、Ｓ３０４において予測ブロックサイズが変更された後の、図４（ｂ）の各４×４予測ブロックを、図４（ｃ）のカウント番号に対応させて示した図である。
【００３２】
図４（ａ）に示したように、符号化ブロックには、１６×１６予測ブロックが１個、８×８予測ブロックが６個、４×４予測ブロックが２４個存在している。閾値決定部２０２は、Ｓ３０２において、１６×１６予測ブロックの個数及び３２×３２予測ブロックの個数をカウントし、それらカウント数を基に、符号化ブロック内の４×４予測ブロック数に対する閾値を算出する。本実施形態の場合、符号化ブロック内に、１６×１６予測ブロックが１個につき４×４予測ブロックを１６個許容する。また、本実施形態では、符号化ブロック内に、３２×３２予測ブロックが１個につき、４×４予測ブロックを６４個許容する。
【００３３】
なお、本実施形態では、符号化ブロック内に、１６×１６予測ブロックが１個につき４×４予測ブロックを１６個許容する例を挙げているがこれには限定されない。例えば、符号化ブロック内に、１６×１６予測ブロックが１個につき４×４予測ブロックを３２個許容してもよい。また、符号化ブロック内に、３２×３２予測ブロックが１個につき４×４予測ブロックを１６個許容してもよい。図４（ａ）の場合は、符号化ブロック内には１６×１６予測ブロックが１個で、３２×３２予測ブロックが０個であるため、閾値決定部２０２は、１６×１＋６４×０＝１６個を、符号化ブロック内の４×４予測ブロック数に対する閾値として算出する。
【００３４】
そして、変更部２０３は、Ｓ３０４において、閾値１６を超える４×４予測ブロックを８×８予測ブロックに変更する。本実施形態の場合、変更部２０３は、４×４予測ブロックサイズの各予測ブロックの内、符号化ブロック内で下側に位置する４×４予測ブロックから順に、８×８予測ブロックサイズに変更する。また、本実施形態の場合、変更部２０３は、４×４予測ブロックサイズの各予測ブロックの内、符号化ブロック内の符号化順とは逆の順に、４×４予測ブロックサイズを８×８予測ブロックサイズに変更してもよい。これらのサイズ変更処理により、図４（ａ）の例の場合、８×８予測ブロックに変更される４×４予測ブロックは、例えば図４（ｃ）の１７番目から２４番目の４×４予測ブロックとなされる。これにより、図４（ｃ）の１７番目から２４番目の４×４予測ブロックは、図４（ｂ）に示すように８×８予測ブロックに変更される。
【００３５】
図４（ｄ）は、図４（ｂ）に示すように４×４予測ブロックが８×８予測ブロックに変更された後の符号化ブロック内の４×４予測ブロックの個数を示している。図４（ｄ）に示したように、４×４予測ブロックの個数は１番目から１６番目までの１６個に変更されている。このように本実施形態では、変更部２０３が、閾値を超える４×４予測ブロックを８×８予測ブロックに変更することにより、符号化ブロック内の予測ブロックの個数が制限される。Ｓ３０４の処理後、図３のフローチャートの処理は終了する。
【００３６】
なお、本実施形態では４×４予測ブロックサイズを８×８予測ブロックサイズに変更する場合を例に説明しているが、この例には限定されない。変更部２０３は、８×８予測ブロックサイズを１６×１６予測ブロックサイズに変更してもよいし、１６×１６予測ブロックサイズを３２×３２予測ブロックサイズに変更してもよい。また、変更部２０３は、Ｋ×Ｌ（Ｋ、Ｌは１以上の整数）予測ブロックをＭ×Ｎ（ＭはＭ≧Ｋが成り立つ整数、ＮはＮ≧Ｌが成り立つ整数）予測ブロックに変更してもよい。さらに、変更部２０３は、１６個の４×４予測ブロックを１個の１６×１６予測ブロックサイズに変更してもよい。
【００３７】
次に、図５（ａ）と図５（ｂ）を用いて、図３のＳ３０２において、閾値決定部２０２が４×４予測ブロック数をカウントする際のスキャン順序を説明する。図５（ａ）の各ブロックは図４（ａ）に示した各予測ブロックに対応している。図５（ａ）は、図４（ａ）に示した各予測ブロックのスキャン順を示した図であり、図中矢印に示す順にスキャンが行われる。すなわち、予測ブロック数のカウント時のスキャン順は、図５（ａ）に示すように、８×８予測ブロック単位で、符号化ブロックの左上から右にスキャンされ、一番右のブロックまでスキャンが終わったら、一つ下の行を一番左から右へスキャンする順となされる。また、４つの４×４予測ブロック数をカウントする際のスキャン順序は、図５（ｂ）に示すように、左上、右上、左下、右下の順で行われる。なお、スキャン順序については、この例に限定されるものではなく、別のスキャン順でカウントが行われてもよい。例えば、図６（ａ）の矢印に示すような順番で予測ブロック数をカウントするスキャンが行われてもよい。図６（ａ）の順番で予測ブロック数のカウントがなされた場合、４×４予測ブロックのカウント番号は図６（ｂ）に示すようになる。
【００３８】
本実施形態の画像符号化装置１００では、イントラ予測部１０３において、図３のＳ３０１〜Ｓ３０４の処理を行うことにより、符号化ブロック内の予測ブロックの個数を制限できる。これにより、本実施形態の画像符号化装置１００によれば、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、その結果、性能低下を防ぐことが可能となる。
【００３９】
＜第２の実施形態＞
第１の実施形態では、符号化ブロック内の４×４予測ブロック数の閾値を、１６×１６予測ブロックや３２×３２予測ブロックの個数に基づいて算出したが、第２の実施形態では、画像サイズやフレームレートに基づいて閾値を算出する方法について説明する。なお、第２の実施形態の画像符号化装置１００の構成は、図１及び図２で示した第１の実施形態の画像符号化装置１００の構成と同様であるためその図示と説明は省略する。
【００４０】
第２の実施形態の画像符号化装置１００における動作について、前述した図３のフローチャートを用いて説明する。なお、Ｓ３０１、Ｓ３０３、Ｓ３０４の処理については第１の実施形態におけるイントラ予測部１０３の処理と同様であるため、その説明は省略する。
第２の実施形態の場合、Ｓ３０２において、閾値決定部２０２は、Ｓ３０１で決定された予測ブロックの個数を、予測ブロックサイズ毎にカウントし、各予測ブロックサイズの個数の情報を変更部２０３に出力する。さらに、閾値決定部２０２は、画像サイズやフレームレートに基づいて閾値を算出して、その閾値の情報を変更部２０３に出力する。画像サイズやフレームレートについては、画像符号化装置１００が外部から入力として受け取り、閾値決定部２０２に入力される。
【００４１】
先ず、第２の実施形態において、画像サイズに基づいて閾値を算出する方法について説明する。
本実施形態において、画像のサイズが例えば６４０×４８０画素である場合には、符号化ブロック内に、４×４予測ブロックを４個許容する。すなわち、閾値決定部２０２は、画像のサイズが６４０×４８０画素である場合には閾値を４に決定する。また本実施形態において、画像サイズが例えば１２８０×７２０画素である場合には、符号化ブロック内に、４×４予測ブロックを８個許容する。この場合、閾値決定部２０２は閾値を８に決定する。また本実施形態において、画像サイズが例えば１９２０×１０８０画素である場合には、符号化ブロック内に、４×４予測ブロックを１６個許容する。この場合、閾値決定部２０２は閾値を１６に決定する。
【００４２】
なお、第２の実施形態では、画像サイズが６４０×４８０画素、１２８０×７２０画素、１９２０×１０８０画素の場合を例に説明したが、本発明はこれに限定されない。例えば、画像サイズは３８４０×２１６０画素や７６８０×４３２０画素であってもよい。また、閾値についても、前述の例に限定されない。例えば、６４０×４８０画素の場合の閾値は１６としてもよい。
【００４３】
また、閾値決定部２０２は、ＨＥＶＣやＨ．２６４等の所定の符号化方式で規定される所定のレベル（Ｌｅｖｅｌ）に応じて閾値を算出してもよい。例えば、レベルがＬｅｖｅｌ５（４０９６×２０４８画素で２４フレーム／秒）である場合は閾値を１６とし、Ｌｅｖｅｌ４（１９２０×１０８０画素で２４フレーム／秒）である場合は閾値を３２としてもよい。
【００４４】
次に、フレームレートに基づいて閾値を算出する方法について説明する。
Ｓ３０２において、閾値決定部２０２は、画像符号化装置１００が外部から入力として受け取ったフレームレートの情報に基づいて閾値を算出する。本実施形態において、フレームレートが例えば６０ｆｐｓである場合には、符号化ブロック内に、４×４予測ブロックを４個許容する。すなわちこの場合、閾値決定部２０２は閾値を４に決定する。また本実施形態において、フレームレートが例えば３０ｆｐｓである場合には、符号化ブロック内に、４×４予測ブロックを８個許容する。すなわちこの場合、閾値決定部２０２は閾値を８に決定する。また本実施形態において、フレームレートが例えば１５ｆｐｓである場合には、符号化ブロック内に、４×４予測ブロックを１６個許容する。すなわちこの場合、閾値決定部２０２は閾値を１６に決定する。
【００４５】
なお、本実施形態では、フレームレートが６０ｆｐｓ、３０ｆｐｓ、１５ｆｐｓの場合を例に説明したが、本発明はこれに限定されない。例えば、フレームレートは、２４ｆｐｓや５ｆｐｓであってもよい。さらに、閾値についても前述の例には限定されない。例えば、フレームレートが６０ｆｐｓの場合、閾値は１６に決定されてもよい。
【００４６】
第２の実施形態においては、前述したように、画像サイズやフレームレートに応じて、符号化ブロック内に予測ブロック数を制限することが可能となる。したがって、第２の実施形態においても前述した第１の実施形態の場合と同様に、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、その結果、性能低下を防ぐことが可能となる。
【００４７】
＜第３の実施形態＞
以下、第３の実施形態の画像符号化装置１００について説明する。第３の実施形態の画像符号化装置１００の構成は、図１及び図２で示した第１の実施形態の画像符号化装置１００の構成と同様であるためその図示と説明は省略する。第３の実施形態は、変更部２０３において予測ブロックのサイズを変更する４×４予測ブロックを決定する際の４×４予測ブロックの選択方法が前述した第１、第２の実施形態の例とは異なる。
【００４８】
第３の実施形態の画像符号化装置１００の動作について、図７のフローチャートを参照して説明する。なお、図７のフローチャートのＳ７０１、Ｓ７０２、Ｓ７０３の処理は、第１の実施形態におけるＳ３０１、Ｓ３０２、Ｓ３０３の処理と同様であるため、その説明は省略する。以下、図７のＳ７０４及びステップＳ７０５の処理について説明する。
【００４９】
第３の実施形態の場合、Ｓ７０３にて４×４予測ブロック数が閾値より多いと判定（Ｙｅｓ）した場合、Ｓ７０４に処理を進める。Ｓ７０４に進むと、変更部２０３は、予測ブロックサイズを変更する候補となる４つの４×４予測ブロックを含む、８×８予測ブロック毎に画素分散を求める。画素分散は、８×８予測ブロック内の各画素値の平均値を求め、８×８予測ブロック内の各画素値と画素の平均値との差分の絶対値を合計したものである。
【００５０】
次に、Ｓ７０５において、変更部２０３は、Ｓ７０４で算出した画素分散の値に基づいて、４×４予測ブロックサイズを８×８予測ブロックサイズに変更する。Ｓ７０５の処理後、図７のフローチャートの処理は終了する。
図８（ａ）〜図８（ｃ）を用いて、予測ブロックサイズの変更方法について説明する。図８（ａ）はＳ７０１で決定された各予測ブロックサイズにより符号化ブロックが分割された場合の各予測ブロックの一例を示している。なお、図８（ａ）の１６×１６、８×８、４×４は前述の図４（ａ）と同様に各予測ブロックのサイズに対応している。図８（ｂ）は、Ｓ７０４で算出した、４個の４×４予測ブロックに対応した８×８予測ブロック毎の画素分散の値の例を示した図であり、図中の各数値が画素分散の値の例である。図８（ｃ）は、図８（ｂ）に示した画素分散の値に基づいて、Ｓ７０５で変更部２０３が予測ブロックサイズを変更した後の予測ブロックを示している。図８（ａ）の例の場合、１６×１６予測ブロックは１個存在し、３２×３２予測ブロックは存在しない。したがって、本実施形態の場合、前述の第１の実施形態で説明した例と同様に４×４予測ブロックの閾値は１６×１＋６４×０＝１６個である。
【００５１】
一方、図８（ａ）の例の場合、符号化ブロック内に含まれる４×４予測ブロックの数は３６個である。したがって、変更部２０３は、３６個−１６個＝２０個の４×４予測ブロックを、８×８予測ブロックに変更する。本実施形態の場合、変更部２０３は、Ｓ７０４で算出した画素分散が低い順（画素分散の値が小さい順）に４×４予測ブロックを８×８予測ブロックに変更する。図８（ｂ）の例の場合、画素分散の値が小さい８×８予測ブロックの順番は、画素分散の値は２００→１８０→１７０→１２０→１１０→９０→６０→５０→１０の順番で小さくなっている。このため変更部２０３は、４×４予測ブロック数がＳ３０２で算出した予測ブロック数の閾値を超えないようにするために、図８（ｃ）の中で画素分散の値が小さい順の１０、５０、６０、９０、１１０の各４×４予測ブロックを８×８予測ブロックに変更する。図８（ｃ）は、図８（ｂ）で画素分散が１０、５０、６０、９０、１１０となっていた４個の４×４予測ブロックを、８×８予測ブロックに変更した後の各予測ブロックを示している。
【００５２】
以上のように第３の実施形態の画像符号化装置１００では、図７のフローチャートの処理を行うことにより、符号化ブロック内の予測ブロックの個数を制限できる。これにより、第３の実施形態においても前述した第１，第２の実施形態の場合と同様に、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、その結果、性能低下を防ぐことが可能となる。また、第３の実施形態では、ブロックサイズを変更する予測ブロックを画素分散に基づいて選択しており、画素分散の値が小さい予測ブロックについて予測ブロックサイズを変更しているため、予測ブロックサイズの変更に伴う画質劣化を抑制可能となる。
【００５３】
なお、第３の実施形態においても前述の各実施形態と同様に、４×４予測ブロックサイズを８×８予測ブロックサイズに変更する場合を例に説明しているが、これに限定されない。８×８予測ブロックサイズを１６×１６予測ブロックサイズに変更してもよいし、１６×１６予測ブロックサイズを３２×３２予測ブロックサイズに変更してもよい。Ｋ×Ｌ（Ｋ、Ｌは１以上の整数）予測ブロックをＭ×Ｎ（ＭはＭ≧Ｋが成り立つ整数、ＮはＮ≧Ｌが成り立つ整数）予測ブロックに変更してもよい。さらに１６個の４×４予測ブロックを１個の１６×１６予測ブロックサイズに変更してもよい。
【００５４】
また、第３の実施形態では、画素分散を求めるブロックは８×８画素サイズのブロックとしているが、この例には限定されず、変更する予測ブロックのサイズに応じて、画素分散を求めるブロックのサイズを変えてもよい。
さらに、第３の実施形態では、ブロックサイズを変更する予測ブロックを、画素分散に基づいて決定したが、この例には限定されない。例えば、予測ブロックサイズを変更する前後の符号化コストを予測ブロック毎に計算し、最も符号化コストが小さくなるように、ブロックサイズを変更する予測ブロックを選択してもよい。
【００５５】
＜第４の実施形態＞
以下、第４の実施形態の画像符号化装置１００について説明する。第４の実施形態の画像符号化装置１００の構成は図１で示した第１の実施形態の画像符号化装置１００の構成と概ね同様である。ただし、第４の実施形態の場合、イントラ予測部１０３は、図９に示す構成となされる。以下、第４の実施形態におけるイントラ予測部１０３について、図９を用いて説明する。
【００５６】
図９において、ブロック決定部９０１は、符号化ブロックのデータを受け取り、符号化ブロック内の各予測ブロックのサイズを決定して、各予測ブロックサイズ及び画素データをモード決定部９０２に出力する。
モード決定部９０２は、ブロック決定部９０１から符号化ブロックの画素データ及び予測ブロックサイズの情報を受け取り、各予測ブロックに対するイントラ予測モードを決定する。
【００５７】
以下、第４の実施形態のブロック決定部９０１の動作について、図１０のフローチャートを参照して説明する。
Ｓ９０１において、ブロック決定部９０１は、符号化ブロック内に使用できる４×４予測ブロックの数を示すｂｌｏｃｋ＿ｎｕｍを初期値０にセット（ｂｌｏｃｋ＿ｎｕｍ＝０とする。）する。
【００５８】
次のＳ９０２にて、ブロック決定部９０１は、ｂｌｏｃｋ＿ｎｕｍが０より大きいか（ｂｌｏｃｋ＿ｎｕｍ＞０）否かを判定する。そして、ブロック決定部９０１は、Ｓ９０２の判定においてｂｌｏｃｋ＿ｎｕｍ＞０であると判定（Ｙｅｓ）した場合にはＳ９０３に処理を進め、一方、ｂｌｏｃｋ＿ｎｕｍが０であると判定（Ｎｏ）した場合にはＳ９０４に処理を進める。
【００５９】
Ｓ９０３に進んだ場合、ブロック決定部９０１は、４×４予測ブロックを予測ブロックサイズの候補として含めて、符号化ブロック内の各予測ブロックのサイズを決定する。予測ブロックサイズの決定処理は、前述の第１の実施形態におけるＳ３０１と同様の処理であるため、その説明は省略する。Ｓ９０３の後、ブロック決定部９０１の処理はＳ９０５に進む。
一方、Ｓ９０４に進んだ場合、ブロック決定部９０１は、４×４予測ブロックを予測ブロックサイズの候補として含めず、符号化ブロック内の各予測ブロックのサイズを決定する。Ｓ９０４の後、ブロック決定部９０１の処理はＳ９０５に進む。
【００６０】
Ｓ９０５において、ブロック決定部９０１は、Ｓ９０３又はＳ９０４で決定した予測ブロックサイズが４×４予測ブロックサイズであるか否かを判定する。ブロック決定部９０１は、予測ブロックサイズが４×４予測ブロックサイズであると判定（Ｙｅｓ）した場合にはＳ９０６に処理を進め、４×４予測ブロックサイズでないと判定（Ｎｏ）した場合にはＳ９０７に処理を進める。
【００６１】
Ｓ９０６に進むと、ブロック決定部９０１は、ｂｌｏｃｋ＿ｎｕｍ＝ｂｌｏｃｋ＿ｎｕｍ−１をセットする。すなわちこの場合、使用できる４×４予測ブロックの個数は１個減少する。Ｓ９０６の後、ブロック決定部９０１の処理はＳ９１３に進む。
一方、Ｓ９０７に進んだ場合、ブロック決定部９０１は、Ｓ９０３又はＳ９０４で決定した予測ブロックサイズが８×８予測ブロックサイズであるか否かを判定する。ブロック決定部９０１は、予測ブロックサイズが８×８予測ブロックサイズであると判定（Ｙｅｓ）した場合にはＳ９０８に処理を進め、８×８予測ブロックサイズでないと判定（Ｎｏ）した場合にはＳ９０９に処理を進める。
【００６２】
Ｓ９０８に進むと、ブロック決定部９０１は、ｂｌｏｃｋ＿ｎｕｍ＝ｂｌｏｃｋ＿ｎｕｍをセットする。すなわちこの場合、使用可能な４×４予測ブロックの個数はそのままとなる。Ｓ９０８の後、ブロック決定部９０１の処理はＳ９１３に進む。
一方、Ｓ９０９に進んだ場合、ブロック決定部９０１は、Ｓ９０３又はＳ９０４で決定した予測ブロックサイズが１６×１６予測ブロックサイズであるか否かを判定する。ブロック決定部９０１は、予測ブロックサイズが１６×１６予測ブロックサイズであると判定（Ｙｅｓ）した場合にはＳ９１０に処理を進め、１６×１６予測ブロックサイズでないと判定（Ｎｏ）した場合にはＳ９１１に処理を進める。
【００６３】
Ｓ９１０に進むと、ブロック決定部９０１は、ｂｌｏｃｋ＿ｎｕｍ＝ｂｌｏｃｋ＿ｎｕｍ＋１６をセットする。すなわちこの場合、使用可能な４×４予測ブロック数は１６個増加する。Ｓ９１０の後、ブロック決定部９０１の処理はＳ９１３に進む。
一方、Ｓ９１１に進んだ場合、ブロック決定部９０１は、Ｓ９０４で決定した予測ブロックサイズが３２×３２予測ブロックサイズであるか否かを判定する。ブロック決定部９０１は、予測ブロックサイズが３２×３２予測ブロックサイズであると判定（Ｙｅｓ）した場合にはＳ９１２に処理を進め、３２×３２予測ブロックサイズでないと判定（Ｎｏ）した場合にはＳ９１３に処理を進める。
【００６４】
Ｓ９１２に進むと、ブロック決定部９０１は、ｂｌｏｃｋ＿ｎｕｍ＝ｂｌｏｃｋ＿ｎｕｍ＋６４をセットする。すなわちこの場合、使用可能な４×４予測ブロックの個数は６４個増加する。Ｓ９１２の後、ブロック決定部９０１の処理はＳ９１３に進む。
Ｓ９１３に進むと、ブロック決定部９０１は、符号化ブロック内の全ての画素について予測ブロックが決定したか否かを判定する。ブロック決定部９０１は、全ての画素の予測ブロックが決定したと判定（Ｙｅｓ）した場合には図１０のフローチャートの処理を終了し、一方、全ての画素の予測ブロックが決定していないと判定（Ｎｏ）した場合にはＳ９０２に処理を戻して、以降の処理を行う。
【００６５】
なお、本実施形態の場合、Ｓ９０６、Ｓ９０８、Ｓ９１０及びＳ９１２において、ｂｌｏｃｋ＿ｎｕｍの値を増減するが、増減幅は前述の例には限定されない。一例として、Ｓ９１０でｂｌｏｃｋ＿ｎｕｍの値を３２個増加させたりしてもよい。
第４の実施形態によれば、図９のフローチャートの処理を行うことで、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、性能低下を防ぐことが可能である。
また、本実施形態では、４×４予測ブロックの個数を制限しているが、これには限定されず、例えば８×８予測ブロックの個数を制限しても、また、Ｍ×Ｎ（Ｍ、Ｎは１以上の整数）予測ブロックの個数を制限してもよい。さらに、制限する予測ブロックのサイズは１種類でなくてもよい。
【００６６】
また、本実施形態では、例えばｂｌｏｃｋ＿ｎｕｍの値に応じて、４×４予測ブロックと８×８予測ブロックの使用を制限してもよい。この例の場合、ブロック決定部９０１は、符号化ブロック内で複数の予測ブロックサイズを決定する際に、符号化ブロック内で既に決定された他の予測ブロックサイズに基づいて、４×４予測ブロック等の所定の予測ブロックサイズの使用を制限する機能を有する。
【００６７】
＜第５の実施形態＞
以下、第５の実施形態に画像符号化装置１００について説明する。第１の実施形態では、符号化ブロック毎に４×４予測ブロック数を制限したが、第５の実施形態では、複数の符号化ブロックにわたって４×４予測ブロック数を制限する。なお、第５の実施形態の画像符号化装置１００の構成は図１及び図２で示した第１の実施形態の画像符号化装置１００の構成と同様である。
以下、第５の実施形態におけるイントラ予測部１０３の動作を図１１のフローチャートを使用して説明する。なお、図１１のフローチャートのＳ１１０１、Ｓ１１０２、Ｓ１１０４、Ｓ１１０５の処理は、第１の実施形態におけるＳ３０１、Ｓ３０２、Ｓ３０３、Ｓ３０４と同様であるためその説明は省略する。
【００６８】
第５の実施形態の場合、Ｓ１１０２の処理後、イントラ予測部１１０３の処理は、変更部２０３で行われるＳ１１０３の処理に進む。Ｓ１１０３において、変更部２０３は、予測ブロック数の閾値の更新を行う。本実施形態の場合、変更部２０３は、後述するＳ１１０６にて保持した一つ前の符号化ブロックにおける４×４予測ブロック数と閾値との差分を示す値と、Ｓ１１０２で算出された閾値とを加算して、予測ブロック数の閾値を更新する。そして、Ｓ１１０３の処理後、変更部２０３は、Ｓ１１０４に処理を進める。
【００６９】
また、第５の実施形態の場合、変更部２０３は、Ｓ１１０４において４×４予測ブロック数が閾値以下と判定（Ｎｏ）した場合にはＳ１１０６に処理を進める。Ｓ１１０６の処理に進むと、変更部２０３は、Ｓ１１０２で算出した４×４予測ブロック数と閾値との差分を保持する。そして、変更部２０３は、Ｓ１１０６で保持された差分を、次の符号化ブロックにおける４×４予測ブロック数の閾値に加算する。そして、Ｓ１１０６の後、変更部２０３は、Ｓ１１０７に処理を進める。また、第５の実施形態の場合、変更部２０３は、Ｓ１１０５の処理後、Ｓ１１０７に処理を進める。
【００７０】
Ｓ１１０７に進むと、変更部２０３は、全ての符号化ブロックの処理が完了したかを判定する。変更部２０３は、全ての符号化ブロックの処理が完了したと判定（Ｙｅｓ）した場合には図７のフローチャートの処理を終了し、一方全ての符号化ブロックの処理が完了していないと判定（Ｎｏ）した場合にはＳ１１０１に戻って次の符号化ブロックの処理を行う。
【００７１】
第５の実施形態では、Ｓ１１６０において４×４予測ブロック数と閾値との差分を保持し、Ｓ１１０３において一つ前の符号化ブロックの４×４予測ブロック数と閾値との差分値を閾値に加算して予測ブロック数の閾値を更新している。このため、第５の実施形態によれば、符号化ブロックを跨って４×４予測ブロック数を制限することが可能となる。したがって、第５の実施形態によれば、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、性能低下を防ぐことが可能となる。
【００７２】
＜ＰＣへの適用例＞
図１４は、前述した各実施形態に係る画像符号化装置をコンピュータにより実現する場合の、コンピュータの概略構成例を示す図である。
図１４において、ＣＰＵ１００１は、中央演算装置である。ＲＡＭ１００２は、揮発性メモリであり、前述した各実施形態の何れかの画像符号化処理を実現するためのプログラムが展開され、また、画像データなどが一時的に格納される。ＲＯＭ１００３は不揮発性メモリであり、ＣＰＵ１００１の起動用プログラムや各種初期設定データ等が格納されている。外部記憶装置１００６は、ＲＡＭ１００２と比較して大容量な記録デバイスであり、例えばＨＤＤ（ハードディスクドライブ）やＳＳＤ（ソリッドステートドライブ）からなる。外部記憶装置１００６には、ＣＰＵ１００１により実行されるＯＳ（基本ソフトウェア）や、実施形態に係る画像符号化処理を実現するためのプログラム、その他各種のデータ等が格納されている。また、外部記憶装置１００６には、撮影された画像データやネットワーク等を介して取得された画像データ等も記録可能となされている。Ｉ／Ｆ１００７は、外部ネットワーク等と接続するためのインターフェースであり、Ｉ／Ｆ１００７を介してインターネット等を介した通信や他のコンピュータ等との通信が行われる。実施形態の画像符号化処理のプログラムはＩ／Ｆ１００７を介して取得されてもよく、また、実施形態の画像符号化処理にて扱う画像データもＩ／Ｆ１００７を介して取得されてもよい。出力部１００５は、液晶等の表示デバイスである。これらの各構成はバス１０１０により接続されている。
【００７３】
ＣＰＵ１００１は、電源ＯＮ等の起動時、ＲＯＭ１００３に格納されている起動用プログラムを実行する。この起動用プログラムは、外部記憶装置１００６に格納されているＯＳを読み出し、ＲＡＭ１００２に展開するためのものである。ＣＰＵ１００１は、ＯＳの起動後、操作部１００４等を介してユーザにより実施形態の画像符号化処理のプログラムを起動する旨の指示がなされると、外部記憶装置１００６から画像符号化処理のプログラムを読み出してＲＡＭ１００２に展開する。これにより、ＣＰＵ１００１は、実施形態の画像符号化処理を実行可能な状態となる。また、ＣＰＵ１００１は、実施形態の画像符号化処理のプログラムの動作に用いられる各種データについてもＲＡＭ１００２上に格納して読み書きを行う。
【００７４】
また、実施形態の画像符号化処理プログラムは、図１の画像符号化装置１００の各部の処理を、ＣＰＵ１００１が実行可能なプログラムとなされる。すなわち、画像符号化処理プログラムを実行することで、ＣＰＵ１００１は、分割部１０２、イントラ予測部１０３、インター予測部１０４、判定部１０５、補償部１０６等の各部の処理を行う。また、ＣＰＵ１００１は、画像符号化処理プログラムを実行することで、変換・量子化部１０７、逆変換・逆量子化部１０８、画像再生部１０９、フィルタ処理部１１０、符号化部１１２の各処理も行うこともできる。特に実施形態の画像符号化処理プログラムは、図２や図９の構成、図３、図７、図１０、図１１の各フローチャートの処理を、ＣＰＵ１００１が実行可能なプログラムとなされている。
【００７５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００７６】
１０２：分割部、１０３：イントラ予測部、１０４：インター予測部、１０５：判定部、１０６：補償部、１０７：変換・量子化部、１０８：逆変換・逆量子化部、１０９：画像再生部、１１０：フィルタ処理部、１１１：フレームメモリ、１１２：符号化部、２０１，９０１：ブロック決定部、２０２：閾値決定部、２０３：ブロック変更部、２０４，９０２：モード決定部
【図１】
2018170673.tif 000003
【図２】
2018170673.tif 000004
【図３】
2018170673.tif 000005
【図４】
2018170673.tif 000006
【図５】
2018170673.tif 000007
【図６】
2018170673.tif 000008
【図７】
2018170673.tif 000009
【図８】
2018170673.tif 000010
【図９】
2018170673.tif 000011
【図１０】
2018170673.tif 000012
【図１１】
2018170673.tif 000013
【図１２】
2018170673.tif 000014
【図１３】
2018170673.tif 000015
【図１４】
2018170673.tif 000016