(57)【要約】【課題】  画像中の特定領域がタイルに分断されることを抑制しつつ、且つ、タイルのサイズを可能な限り小さくして、タイル単位に符号化することを可能にする。【解決手段】  顔領域検出部３０４が検出した第ｎ番目の領域を包含する矩形領域の左端と右端の垂直線分をタイル境界候補の垂直線分Ｌｈ（ｎ），Ｌｍ（ｎ）、前記着目矩形領域の上端と下端の水平線分をタイル境界候補の水平線分Ｌｕ（ｎ），Ｌｓ（ｎ）と定義する。タイル分割部３０２は、着目矩形領域の水平線分Ｌｕ（ｎ），Ｌｓ（ｎ）の範囲内に存在する他の矩形領域の水平線分を削除対象として決定する。また、着目矩形領域の垂直線分Ｌｈ（ｉ），Ｌｍ（ｉ）の範囲内に存在する他の矩形領域の垂直線分を削除対象として決定する。そして、この処理を最後の矩形領域まで行ない、削除対象として決定した線分を除く、水平及び垂直線分に従って画像データを分割し、各分割領域をタイルとして符号化する。【選択図】  図３
2010166548.tif 000002
【特許請求の範囲】
【請求項１】
画像を分割し、各矩形領域の部分画像データを単位に符号化する画像符号化装置であって、
画像データ中の特定領域を検出する領域検出手段と、
該領域検出手段で検出された各特定領域を包含する各矩形領域の座標にしたがって、前記画像を、同一行であれば同一高さ、同一列であれば同一幅を有する複数のタイルに分割するための境界線としての垂直線分及び水平線分の位置を決定するタイル分割手段と、
該タイル分割手段で設定された水平及び垂直線分に従って前記画像データを分割し、各分割領域の部分画像を前記タイルとして符号化する符号化手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記タイル分割手段は、前記領域検出手段で検出された第ｎ番目の特定領域を包含する着目矩形領域の左端と右端の垂直線分をタイル境界線候補の垂直線分Ｌｈ（ｎ），Ｌｍ（ｎ）、前記着目矩形領域の上端と下端の水平線分をタイル境界候補の水平線分Ｌｕ（ｎ），Ｌｓ（ｎ）と定義したとき、
前記着目矩形領域の垂直線分Ｌｈ（ｎ），Ｌｍ（ｎ）の範囲内に存在する他の矩形領域の垂直線分を削除対象として決定すると共に、
前記着目矩形領域の水平線分Ｌｕ（ｎ），Ｌｓ（ｎ）の範囲内に存在する他の矩形領域の水平線分を削除対象として決定し、
非削除対象となった垂直線分、及び、非削除対象となった水平線分を前記画像をタイルに分割する境界線として決定することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記符号化手段の符号化処理の最小単位を画素ブロックと定義したとき、
前記タイル分割手段は、
前記画像中の各画素ブロックが前記領域検出手段で検出したいずれかの特定領域に含まれるか否かを判定し、当該判定の結果を各画素ブロックの２値のフラグ情報として決定する判定手段と、
垂直方向に並ぶ各画素ブロックの前記フラグ情報の論理和を演算する第１の演算手段と、
水平方向に並ぶ各画素ブロックの前記フラグ情報の論理和を演算する第２の演算手段と、
前記第１の演算手段の演算結果、及び、前記第２の演算手段の演算結果に従って、前記画像をタイル分割する水平線分、垂直線分の位置を決定する決定手段と
を有することを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記領域検出手段は、画像データ中の特定領域を囲む領域と特定領域の位置を示す情報を出力することを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
前記符号化手段は、符号化データのヘッダに、前記境界を示す線分の座標及び、各タイルが前記特定領域を包含するか否かを示す情報を格納することを特徴とする請求項１に記載の画像符号化装置。
【請求項６】
更に、優先する特定領域の個数Ｎを設定する設定手段と、
非削除対象となった線分で表わされる着目矩形領域が、前記設定手段で設定された個数Ｎを超える特定領域が含む場合、前記着目矩形領域における、予め設定された条件に従って並べた際の上位Ｎ個の特定領域に対して削除対象として決定された水平線分、垂直線分を非削除対象の線分として再設定する再設定手段とを備え、
前記符号化手段は、前記再設定手段による処理結果に従って前記画像データを分割し、各分割領域を前記タイルとして符号化することを特徴とする請求項１乃至５のいずれか１項に記載の画像符号化装置。
【請求項７】
前記条件は、前記特定領域のサイズ、位置、及び、第１位の特定領域からの距離が含まれることを特徴とする請求項６に記載の画像符号化装置。
【請求項８】
前記符号化手段において、タイルをまたぐ形でフィルタ処理を施す場合には、前記領域検出手段は、検出した特定領域に外接する矩形よりも、予め設定された画素数だけ水平、垂直方向ともに広い領域を検出結果として出力することを特徴とする請求項１乃至７のいずれか１項に記載の画像符号化装置。
【請求項９】
画像を分割し、各矩形領域の部分画像データを単位に符号化する画像符号化装置の制御方法であって、
領域検出手段が、画像データ中の特定領域を検出する領域検出工程と、
タイル分割手段が、前記領域検出工程で検出された各特定領域を包含する各矩形領域の座標にしたがって、前記画像を、同一行であれば同一高さ、同一列であれば同一幅を有する複数のタイルに分割するための境界線としての垂直線分及び水平線分の位置を決定するタイル分割工程と、
符号化手段が、該タイル分割工程で設定された水平及び垂直線分に従って前記画像データを分割し、各分割領域の部分画像を前記タイルとして符号化する符号化工程と
を備えることを特徴とする画像符号化装置の制御方法。
【請求項１０】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１乃至８のいずれか１項に記載の画像符号化装置として機能させることを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを符号化する技術に関するものである。
【背景技術】
【０００２】
静止画をタイルに分割してタイル毎に符号化を行う技術が知られている。例えば、ＪＰＥＧ２０００（ＩＳＯ／ＩＴＵ１５４４４−１:２０００）の中の１機能として、画像を小さな領域に分けて独立に符号化を行うタイル分割処理が採用されている。なお、ＪＰＥＧ２０００の方式の詳細については、以下の国際標準勧告書等に記載されているので、ここでは説明を割愛する。
【０００３】
タイル分割処理を行えば、タイルごとに画像の領域を特定することができるため、処理対象であるタイル以外の領域は符号状態のままで、処理対象のタイルは単体で復号が可能であって、画像の編集・加工処理を処理対象タイルのみに施すことが可能である。
【０００４】
しかしながら、これまでの画像符号化におけるタイルのサイズは固定であったので、特定領域のみを効率良く復号する場合には都合が悪いものであった。かかる点を別な表現で言えば、画像中の処理対象の或る特定領域が処理に都合の良いように符号化されるには、その特定領域を可能な限り少ないタイルで表わし、且つ、タイルサイズを小さくすることであろう。
【０００５】
タイルのサイズについては、処理対象である特定領域が細分化されていたり、特定領域よりも遥かに大きな単位で分割されていたりすることで、処理対象となる特定領域へのアクセス時間が長くなったりするので理解できよう。また、タイルを跨ぐ形でフィルタ処理が掛かっていると、タイル単体で部分復号を行った場合には、タイルの境界部分で画質劣化が起こる。このとき、特定領域を復号して表示するなどした場合に注目している領域の劣化目立つことになる。
【０００６】
また、タイルサイズが固定ではなく、処理したい特定の領域と同じ大きさ、または近い大きさのサイズでタイルを構成できれば、例えば、符号化処理を行うときに良好な画質を保持しておかなければならない特定領域のみ圧縮率を下げ、他の領域に関しては多少劣化しても構わないので圧縮率を上げるなどして符号化を行うことで、画像全体としては符号化効率が向上させることができる。
【０００７】
上記のように、画像符号化の際に、符号化しようとするタイルのサイズを可変にすることが望まれている。但し、符号化の効率の面も考慮しなくてはならない。そこで、本願発明者は、表計算アプリケーションのセルのように、タイルの幅と高さを可変とし、各行は一定の高さであり、各列は一定の幅であるようなタイル分割を行うことを考えた。具体的には、図２に示すような形に画像がタイル分割するものである。このようにすることで、罫線の位置の変更のみでタイルサイズを変えることができるので、簡易な方法で画像内のタイルサイズを可変にすることができる。タイルサイズを画像中で可変にすることで、注目オブジェクトに対してのアクセス時間が短縮されたり、タイルごとに適切な圧縮方式を適用することにより、圧縮効率を向上できる可能性があるといったメリットがある。
【０００８】
対象となるオブジェクトに適切な大きさのタイルを割り当てるような従来技術として、以下のような方法が挙げられる。被撮影の顔サイズを光センサーなどで測定し、測定された顔サイズにより、撮影画像の倍率を変更することで、証明写真のような規定の大きさに合うような、写真を作成するという方法がある（例えば特許文献１）。
【０００９】
また、表を作成する場合に、文字列や図形の大きさに負わせて、セルの大きさを調整するような方法も知られている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平０６−０６７３００号公報
【特許文献２】特開平０６−０８３５５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記方法のように１つのオブジェクトに合わせてセルの大きさを判定するような方法はあるが、複数のオブジェクトに対して、なるべく小さいサイズのタイルを設定し、符号化できるような方法はこれまでなかった。
【００１２】
本発明は、上記従来例を鑑みてなされたものであり、画像中の特定領域がタイルに分断されることを抑制しつつ、且つ、タイルのサイズが可能な限り小さくして、タイル単位に符号化する技術を提供しようとするものである。
【課題を解決するための手段】
【００１３】
かかる課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像を分割し、各矩形領域の部分画像データを単位に符号化する画像符号化装置であって、
画像データ中の特定領域を検出する領域検出手段と、
該領域検出手段で検出された各特定領域を包含する各矩形領域の座標にしたがって、前記画像を、同一行であれば同一高さ、同一列であれば同一幅を有する複数のタイルに分割するための境界線としての垂直線分及び水平線分の位置を決定するタイル分割手段と、
該タイル分割手段で設定された水平及び垂直線分に従って前記画像データを分割し、各分割領域の部分画像を前記タイルとして符号化する符号化手段とを備える。
【発明の効果】
【００１４】
本発明の構成によれば、画像中の特定領域がタイルに分断されることを抑制しつつ、且つ、タイルのサイズが可能な限り小さくして、タイル単位に符号化することが可能になる。この結果、特定領域がタイルに分断されることによるタイル境界での画質劣化を防ぐことができるようになる。また、部分復号する際にフィルタ処理などの影響が及ぶ範囲を考慮して、タイルサイズの設定が可能になるため、特定領域の画質劣化を抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係るタイル分割部の処理手順を示すフローチャート。
【図２】可変なタイル分割の例を示す図。
【図３】第１の実施形態に係る画像符号化装置のブロック構成図。
【図４】タイル境界線の候補位置の一例を示す図。
【図５】顔領域が２つの場合のタイル境界線の候補位置の例を示す図。
【図６】顔領域が２つの場合の設定されるタイル境界線の例を示す図。
【図７】第２の実施形態に係る画像符号化装置のブロック構成図。
【図８】第２の実施形態におけるタイル再設定部の処理内容を示すフローチャート。
【図９】複数の人物が並んだ画像の例を示す図。
【図１０】複数の同じ大きさの顔が並んでいる画像の顔領域の優先順位の番号付の例を示す図。
【図１１】１つの大きな顔と複数の同じ大きさの顔が並んでる画像の顔領域の優先順位の番号付の例を示す図。
【図１２】顔領域の優先度を示すテーブルを示す図。
【図１３】タイル再設定部の処理の具体的例を示す図。
【図１４】第１の実施形態をコンピュータプログラムで実現する場合の情報処理装置のブロック構成図。
【図１５】実施形態において生成する符号化データの構造の一例を示す図。
【図１６】タイル境界をまたいでフィルタをかける例を示す図。
【図１７】画質劣化が検出領域にかからないようにタイル境界を設定した場合の一例を示す図。
【図１８】第４の実施形態に係るタイル分割部の処理手順を示すフローチャート。
【図１９】第４の実施形態のタイル分割の処理を説明するための図。
【発明を実施するための形態】
【００１６】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１７】
［第１の実施形態］
本第１の実施形態では、顔検出結果の位置関係を基に、タイル境界線を設定することで、２つ以上の顔領域それぞれを、可能な限り小さいサイズのタイルで１つの顔領域が１つのタイルにおさめるように設定するものである。また、説明を簡単なものとするため、実施形態の画像符号化装置は、デジタルカメラ等の撮像装置に内蔵されるものとして説明する。
【００１８】
図３は、本第１の実施形態に係る画像符号化装置のブロック構成図である。
【００１９】
図３に示すように、実施形態の画像符号化装置は、データ入力部３０１、タイル分割部３０２、符号化部３０３及び顔検出部３０４を備える。
【００２０】
データ入力部３０１は、デジタルカメラが有する撮像素子で撮影された画像データを入力する。顔検出部３０４は、入力された画像データ中の人物の顔の領域（特定領域）を検出し、その検出した各顔領域に関する情報をタイル分割部３０２に出力する。なお、撮像画像中から人物の顔領域を検出する技術は公知であるので、その説明は省略する。
【００２１】
なお、画像の左上隅を原点（その座標を（０，０）とする）とし、水平右方向をＸ座標、垂直下方向をＹ座標と定義したとき、顔領域に関する情報とは、その顔領域に外接し、各辺がＸ座標又はＹ座標と並行な矩形領域の位置とサイズを特定する情報である。実施形態では、矩形領域の左上隅の座標と、その矩形領域の水平方向である幅と、垂直方向の高さとした。ただし、矩形領域の左上隅、右下隅の座標でも構わない。
【００２２】
また、実施形態では、画像符号化に関するものであるので、タイルの左上隅の位置とサイズは、それぞれ符号化単位の整数倍とする。
【００２３】
タイル分割部３０２は、データ入力部３０１から入力された画像データと、顔検出部２０４からの顔領域のデータをもとに、画像をタイルに分割する。タイル分割方法の詳細な説明は後述する。
【００２４】
符号化部３０３は、タイル分割部３０２でタイル分割された部分画像データ（タイルデータ）を入力し、その部分画像データ（タイル）を単位に符号化を行い、符号化データを生成する。
【００２５】
符号化方式として、本実施形態では、静止画の符号化技術として一般的に知られているＪＰＥＧ符号化方式（ＩＳＯ／ＩＥＣ  １５４４４−１）を用いて説明を行う。ＪＰＥＧ符号化では、まず、入力された画像のタイルデータを垂直方向８画素、水平方向８画素で構成される画素ブロック（最小符号化単位）に分割する。そして、この画素ブロックを単位に、ＤＣＴ変換処理を行ない、８×８個の周波数成分係数（以下、ＤＣＴ係数）を得る。そして、８×８個のＤＣＴ係数の左上隅の１つの係数がＤＣ（直流）成分、残りの６３係数がＡＣ（交流）成分を表す。次いで、各ＤＣＴ係数を、予め設定された量子化テーブルを参照して、量子化する。量子化された各ＤＣＴ係数は、エントロピ符号化され、符号化デーとして出力される。エントロピ符号化の方式としては、ハフマン符号化と算術符号化とがあり、ＤＣ係数とＡＣ係数とではそれぞれ異なる手順がとられ、符号化が施される。ＪＰＥＧ Ｂａｓｅｌｉｎｅでは、係数のエントロピ符号化手法としてハフマン符号化を採用している。ＤＣ係数とＡＣ係数とではそれぞれ異なる手順で符号化される。着目画素タイルのＤＣ成分は、直前の画素タイルのＤＣ成分（予測値）との差分値を算出された後、符号化される。一方、着目画素タイル内の各ＡＣ成分は、ゼロの連続数（ゼロラン）と非ゼロの係数値の組み合わせによりハフマン符号化される。
【００２６】
以上の方法により、タイルごとに符号化データが生成される。図１５は、上記のようにして生成されたオリジナルの画像データの符号化データのデータ構造を示している。ファイルヘッダには、画像の水平方向の画素数、垂直方向の画素数や、色成分の数、各画素のビット数などを格納する。そして、画像中の垂直方向のタイル数と、水平方向のタイル数、また、水平方向のｎ番目のタイル幅と垂直方向ｎ番目のタイル高さの情報を保持しておく必要がある。タイルの幅や高さは、画素数でも符号化最小単位ＭＢ数でもよい。即ち、復号側ではこのヘッダを解析すれば、各タイルのタイルデータを得ることができるということである。なお、各タイルのうち、特定領域（実施形態では顔領域）のタイルを特定する情報をヘッダに含ませても良い。例えば、タイル番号をラスタースキャン順に番号付け、顔領域の存在するタイル番号をヘッダに格納するようにすればよい。
【００２７】
また、それに後続して、画像の全タイルについての符号化データが並ぶ。なお、最終的に生成される符号化データのデータ構造は図１５に限らず、復号に必要な各種データがヘッダとして含まれていればよい。符号化データを装置外部へ出力する。なお、符号化方式は、タイルごとに符号化できるようなものであればよく、ＪＰＥＧには限らない。
【００２８】
図１は、タイル分割部３０２の処理内容を示すフローチャートである。以下、同図に従ってタイル分割部３０２の処理手順を説明する。
【００２９】
まず、ステップＳ１０１において、顔検出部３０４から供給される顔領域のデータの個数に従って、検出された顔領域数Ｋを決定する。そして、ステップＳ１０２にて、顔領域を特定するための変数ｎを“１”で初期化する。ステップＳ１０３では、変数ｎの値が顔領域数Ｋ以下であるか否かを判断する。ｎ≦Ｋであると判断した場合、処理はステップＳ１０４に進む。
【００３０】
ステップＳ１０４では、ｎ番目の顔領域情報を取得する。顔領域は、先に説明した様に矩形であるので、顔領域情報は、その矩形領域の左上隅の座標｛ｘ（ｎ），ｙ（ｎ）｝、幅ｗ（ｎ）、高さｈ（ｎ）である。
【００３１】
次に、ステップＳ１０５において、取得した顔領域情報からタイル境界線の候補を算出する。タイル境界線の候補とは、それぞれの顔領域を最小サイズのタイルに収める場合にタイル境界線となる位置のことを表す。たとえば、図４のエリア１を包含するような最小のタイルを切り出そうとすると、垂直方向のタイル境界線は、ｘ（１）とｘ（１）＋ｗ（１）に設定され、水平方向のタイル境界線は、ｙ（１）、ｙ（１）＋ｈ（１）に設定されることになる。但し、タイル毎に符号化を行うものであるから、タイル境界線の候補は、符号化の最小単位（ＪＰＥＧの場合は８×８）の整数倍である必要がある。
【００３２】
図４のエリア１の上下の２本の水平線分をＬｕ（１）、Ｌｓ（１）と表わし、２本の垂直線分をＬｈ（１）、Ｌｍ（１）と表わし、符号化部３０３による符号化可能な最小画像サイズの水平、垂直の画素数をＭＢＳと表すと、タイル境界線の候補位置はそれぞれ以下の式（１）〜（４）で表わされる。
Lu(1)＝Ｉｎｔ｛y(1)/MBS｝×MBS                      …（１）
Ls(1)＝Ｉｎｔ｛(y(1)＋h(1)＋(MBS - 1))／MBS｝×MBS   …（２）
Lh(1)＝Ｉｎｔ｛x(1)/MBS｝×MBS                      …（３）
Lm(1)＝Ｉｎｔ｛(x(1)＋W(1)＋(MBS - 1))／MBS｝×MBS   …（４）
（ここで、Ｉｎｔ（ｘ）は値ｘの整数を返す関数である）
つまり、第ｎ番目の顔領域（着目矩形領域）を切り出すタイル境界線の候補は、その上端の水平線分Ｌｕ（ｎ），下端の水平線分Ｌｓ（ｎ），左端の垂直線分Ｌｈ（ｎ），及び、右端の垂直線分Ｌｍ（ｎ）で表される。なお、これらの線分の値は、原点に対する水平又は垂直方向の画素位置を示すものでもある。
【００３３】
ステップＳ１０５において、ｎ番目の顔領域に対するタイル境界線の候補の算出を終えると、ステップＳ１０６にて変数ｎを“１”だけ増加させ、ステップＳ１０３に戻ることになる。従って、ステップＳ１０３の判断がＮｏとなった場合、全顔領域に対するタイル境界線の候補の算出が終了したことを意味する。
【００３４】
さて、全顔領域に対するタイル境界線の候補の算出が終了すると、算出したタイル境界線の候補の中から、不要な境界線を削除する処理を行なう。この為、先ず、ステップＳ１０７に進み、変数ｎを再び“１”で初期化する。そして、ステップＳ１０８にて、変数ｎの値が顔領域数Ｋ以下であるか否かを判断する。ｎ≦Ｋであると判断した場合、処理はステップＳ１０９に進む。
【００３５】
ステップＳ１０９では、着目顔領域に対応する水平線分のタイル境界線候補Ｌｕ（ｎ）、Ｌｓ（ｎ）で示される範囲内に存在する他の顔領域のタイル境界線候補の水平線分を削除対象として決定する。注意したい点は、そのような水平線分が見つかっても、その時点では削除しない点である。簡単には、削除対象として決定されたことを示す情報（フラグ）をその線分に対して設定する程度で良い。
【００３６】
ステップＳ１１０では、着目顔領域に対応する垂直線分のタイル境界線候補Ｌｈ（ｎ）、Ｌｍ（ｎ）で示される範囲内に存在する他の顔領域のタイル境界線候補の垂直線分を削除対象として決定する。削除対象に設定するだけで、この段階では削除しないのはステップＳ１０９と同じである。
【００３７】
この後、ステップＳ１１１に進み、変数ｎを“１”だけ増加させ、ステップＳ１０８に戻ることになる。従って、ステップＳ１０８の判断がＮｏとなった場合、全顔領域に対するタイル境界線の候補を削除すべきか否かの判定が終了したことを意味する。この場合、ステップＳ１１２に進み、削除対象として決定されたタイル境界線候補の水平、垂直線分を削除し、残った水平成分（ｙ座標値）、垂直線分（ｘ座標値）を符号化部３０３に出力する。
【００３８】
符号化部３０３は、入力した水平、垂直線分の座標に従って、入力した画像データを分割し、各分割領域をタイルとして符号化し、生成された符号化データを出力することになる。
【００３９】
さて、タイル境界線の設定方法の具体的な処理の流れを図５に示す画像を使って、以下に説明する。ここでは、検出された顔領域の数Ｋは２である例である。
【００４０】
そして、画像中の左上に位置する顔領域をエリア１、右下に位置する顔領域をエリア２と定義する。この場合のタイル境界線の候補は、｛Ｌｕ（１），Ｌｓ（１），Ｌｈ（１），Ｌｍ（１）｝と、｛Ｌｕ（２），Ｌｓ（２），Ｌｈ（２），Ｌｍ（２）｝となる。
【００４１】
先ず、エリア１のタイル境界候補の水平線分Ｌｕ（１）、Ｌｓ（１）に着目する。これら水平成分はＹ座標値で表わされるので、Ｌｕ（１）＜Ｌｓ（１）の関係にある。
【００４２】
ステップＳ１０９の処理では、Ｌｕ（２）、Ｌｓ（２）のＹ座標値が、Ｌｕ（１）とＬｓ（１）のＹ座標の範囲外であるので、水平成分Ｌｕ（２）、Ｌｓ（２）は削除対象とはならない。
【００４３】
また、ステップＳ１１０の処理では、Ｌｈ（２）、Ｌｍ（２）のＸ座標値が、Ｌｈ（１）とＬｍ（１）のＸ座標の範囲外であるので、垂直成分Ｌｈ（２）、Ｌｍ（２）は削除対象とはならない。
【００４４】
上記は、エリア２に着目した場合も同様であり、結局のところ、図５の場合、エリア１、エリア２の全タイル境界線の候補が削除対象とはならないことになる。従って、符号化部３０３は、図５の画像に対して、符号化対象の画像に対して２５個のタイルに分割し、それぞれのタイル単位に符号化処理を行なうことになる。
【００４５】
図６（ａ）の画像６０１に示すような位置に２つの顔領域が存在する場合を考察する。図示の如く、エリア１のタイル境界線の水平線分Ｌｕ（１）とＬｓ（１）の間に、エリア２のタイルの境界線の水平線分Ｌｕ（２）が位置する。換言すれば、エリア１内に、エリア２のタイル境界線の水平線分Ｌｕ（２）が横切ってしまう。従って、この場合、水平成分Ｌｕ（２）が削除対象となる。また、エリア２に着目すると、エリア２内にエリア１のタイル境界線の水平線分Ｌｓ（１）が横切るので、この水平線分Ｌｓ（１）も削除対象として決定される。結果、残る水平成分の境界線は、Ｌｕ（１）、Ｌｓ（２）となり、図示の参照符号６０２に示すようなタイル分割による符号化処理が行われることになる。
【００４６】
次に、図６（ｂ）の画像６０３に示すような位置に２つの顔領域が存在する場合を考察する。この場合、エリア１のタイル境界線の垂直線分Ｌｈ（１）とＬｍ（１）の間に、エリア２のタイルの境界線の垂直線分Ｌｈ（２）が位置する。また、エリア２のタイル境界線の垂直線分Ｌｈ（２）とＬｍ（２）の間に、エリア１のタイルの境界線の垂直線分Ｌｍ（１）が位置する。従って、垂直線分Ｌｈ（２）、Ｌｍ（１）が削除対象として決定され、残る垂直線分はＬｈ（１）、Ｌｍ（２）となり、図示の参照符号６０４に示すようなタイル分割が行われ、符号化処理が行われることになる。
【００４７】
図６（ｃ）の画像６０５に示すような位置に２つの顔領域が存在する場合を考察する。これまでの説明からもわかるように、画像６０５の場合、垂直線分Ｌｈ（２）、Ｌｍ（１）と、水平線分Ｌｕ（２）、Ｌｓ（１）が削除対象として決定される。換言すれば、残るのは垂直線分Ｌｈ（１）、Ｌｍ（２）と、水平線分Ｌｕ（１）、Ｌｓ（２）となり、同図の参照符６０６に示すようなタイル分割が行われることになる。
【００４８】
図６（ｄ）の画像６０７に示すような位置に２つの顔領域が存在する場合を考察する。この例では、２つの顔領域が一部重複している例である。この場合も、図６（ｃ）と同様となり、結果的に同図の参照符６０８に示すようなタイル分割が行われることになる。
【００４９】
以上説明したような処理を経て、同一行であれば同一高さ、同一列であれば同一幅を有する複数のタイルに分割するためのタイル境界線が決定され、検出された顔領域のすべてが他のタイル境界線に分断されることなく、可能な限り小さいサイズのタイル内に顔領域を包含させることが可能になる。
【００５０】
尚、本実施形態では注目する特徴領域であるオブジェクトをデジタルカメラで撮影した写真中の顔領域として説明を行った。しかしながら、画像から注目箇所を抽出して、その部分のみ、画像処理や圧縮率を変更したり、部分復号処理するなど、特別な処理を施す箇所であれば、領域検出対象は顔に限らず、他のオブジェクトでも良い。注目するオブジェクトは、例えば、文書画像中の写真部分やＣＧ部分、ロゴのような部分であっても構わないし、写真中の文字領域、例えば複数の車のナンバープレートや看板などでもよい。
【００５１】
＜変形例の説明＞
上記実施形態では図１の構成に基づいて説明したが、上記実施形態と同等の処理をパーソナルコンピュータ（ＰＣ）等で実行するコンピュータプログラム（ソフトウェア）でもって実現させても構わない。
【００５２】
図１４はソフトウェアで実現する場合の装置（ＰＣ等）の基本構成を示す図である。
【００５３】
図中、１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。
【００５４】
１４０２はＲＡＭで、外部記憶装置１４０７や記憶媒体ドライブ１４０８、若しくはＩ／Ｆ１４０９を介して外部装置からダウンロードされたプログラムやデータを記憶するため、及び、ＣＰＵ１４０１が各種の処理を実行する際のワークエリアとして使用される。図１に示されるバッファ１２０１、ハフマンテーブル２０４等も、このＲＡＭ１４０２に確保されるものである。
【００５５】
１４０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。
【００５６】
１４０４、１４０５は夫々キーボード、マウス（登録商標）等のポインティングデバイスで、ＣＰＵ１４０１に対して各種の指示を入力することができる。
【００５７】
１４０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。
【００５８】
１４０７は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置であって、ここにＯＳや後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどが保存されており、ＣＰＵ１４０１による制御によって、これらのプログラムやデータはＲＡＭ１４０２上の所定のエリアにロードされる。
【００５９】
１４０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１４０２や外部記憶装置１４０７に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良く、その場合、記憶媒体ドライブ１４０８は、ＣＰＵ１４０１による制御によって、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードする。
【００６０】
１４０９はＩ／Ｆで、このＩ／Ｆ１４０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１４０２や外部記憶装置１４０７、あるいは記憶媒体ドライブ１４０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００６１】
上記構成において、ソフトウェアでもって第１の実施形態と同様の処理を実現する場合、ＣＰＵは図１に示した各処理部に相当する機能を、ソフトウェア上の関数、サブルーチン等で実現することになる。また、顔検出やタイル単位の符号化処理そのものは公知の技術を採用すればよく、且つ、タイル分割部３０２に相当する処理は既に説明した図１に示す手順に従えば良いので、説明するまでも無いであろう。
【００６２】
［第２の実施形態］
第１の実施形態では、タイル境界線を、どの顔領域も横切らず、且つ、顔領域を包含するタイルのサイズを可能な限り小さいサイズにする例を説明した。本第２の実施形態では、タイル境界線が、いくつか顔領域を横切ることを許容する例を説明する。
【００６３】
いくつかの顔を横切らなければならない場合とは、検出された顔が多く、第１の実施形態の方法によってタイルのサイズが非常に大きいサイズになる場合が例として挙げられる。
【００６４】
例えば、図９に示す集合写真のように、たくさんの顔領域が存在し、複数の顔領域が重なっていたり、領域自体が重なっていなくても、タイル境界線候補のラインがどれかの顔領域を横切ったりすることで、タイル境界線が画像の端になってしまって、画像がタイル分割されないような状態がこれに相当する。
【００６５】
このような場合、効率的にタイル分割を行い符号化するためには、撮影された写真中の検出された顔領域に、自動的に優先順位付けを行い、顔領域全体を納めるタイルと、境界が横切ることを許容するタイルを決める必要がある。
【００６６】
本実施形態では、自動的に検出された顔領域に優先順位を付ける方法について以下に説明する。
【００６７】
撮影された画像の中で、他のタイル境界線を横切らせない優先度の高い顔領域として考えられるのが、サイズの大きい顔領域である。その理由としては、サイズの大きい顔領域を優先することで、最終的にタイル境界線に横切られてしまう顔領域は、必ず最大４つのタイル内に収まる点、サイズの大きい顔領域は撮影された画像中に占める割合が広いため、横切られる可能性が高いが、小さい領域であれば、横切られる可能性が低い点である。従って、サイズの大きい領域を優先してタイル境界線を設定することで、横切られる顔領域の数を少なくできる可能性も高くなる。さらに、顔領域が大きい方が写真の中で前方に位置する人物である可能性も高いのも、この理由でもある。
【００６８】
図７は、本第２の実施形態に係る画像符号化装置のブロック構成図である。図３と同じ処理を行なう処理部には同参照符号を付した。タイル分割部３０２’と図３のタイル分割部３０２との違いは、タイル分割部３０２’は削除対象外となったタイル境界線を示す情報に加えて、削除対象となったタイル境界線もタイル再設定部７０１に出力する点、及び、顔検出部３０４からの顔領域情報をそのままタイル再設定部７０１に出力する点であるので、その説明は省略し、以下ではタイル再設定部７０１について説明する。
【００６９】
タイル再設定部７０１は、タイル分割部３０２’から出力されるタイル境界線によって、切り出されるタイル内を調べて、一旦は削除対象となったタイル境界線を非削除対象の境界線に戻すタイル境界再設定処理を行なう。タイル境界線を再設定する場合の判定条件は、非削除対象となった１タイル内に３つ以上の顔領域が存在する場合、もしくは、すべてのタイル境界線が画像端になるような場合である。
【００７０】
タイル境界線を再設定すると判定された場合には、顔領域を横切るタイル境界候補位置のラインから、追加するタイル境界線を選択する。以下、タイル再設定部７０１の具体的な処理の流れを、図８のフローチャートに従って説明する。
【００７１】
まず、ステップＳ８０１において、画像中の顔領域のすべて（エリア１〜Ｋ）に優先順位を付ける。先に説明した通り、領域の大きい方が優先度を高く、領域の小さい方が優先度を低く設定する。すべて同じ大きさの場合には、図１０に示すように、下段ほど優先度が高く、両端ほど優先度を高いという条件に従って優先度を付けておく。但し、図１１に示すように、大きな顔領域と同じ大きさの複数の顔領域が混在する場合には、下側にあって、大きな顔領域（第１位の特定領域）から距離的に一番離れた位置にある顔領域から優先度を高くする。つまり、優先度のつけ方は、図１２に示す表のようになる。
【００７２】
次に、ステップＳ８０２で、優先度の高い顔領域（エリアｎ）から順に、この顔領域を切り出すタイル境界候補Ｌｕ（ｎ），Ｌｓ（ｎ），Ｌｈ（ｎ），Ｌｍ（ｎ）が１本以上あるかどうかを判断する。タイル境界候補が１本もない場合（ＹＥＳ）には、着目している顔領域が最適なタイル境界線で切り出されているので、次に優先度の高い顔領域の処理へと移る。一方、タイル境界線候補が１本以上の場合（ＮＯ）には、ステップＳ８０３に処理を移す。
【００７３】
ステップＳ８０３では、着目している領域（優先度ｎの領域）が、タイル境界線に横切られているかどうかを判定する。着目している領域が横切られていれば（ＹＥＳ）、タイル境界線再設定の処理対象とはしないため、次に優先度の高い顔領域の処理へと移る。注目している領域が横切られていなければ（ＮＯ）ステップＳ８０４に処理へと移る。
【００７４】
ステップＳ８０４においては、着目している顔領域と、優先度の１番高い顔領域との位置関係から第１の実施形態と同様の設定方法で追加するタイル境界線を選択する。着目領域での再設定が終わったら、次に優先度の高い顔領域の処理に移る。
【００７５】
以上の処理を繰り返し（ステップＳ８０５）、すべての顔領域で処理を行ったら、タイル境界線の再設定処理が完了となる。
【００７６】
以上に説明したタイル再設定部７０１の再設定の具体的な例を、図１３に示す画像を使って説明する。なお、ここでは優先するタイル数はユーザが不図示の操作部等を介して適宜設定するものであるが、ここでは優先する矩形領域の個数Ｎが“２”であるものとして説明する。
【００７７】
まず、第１の実施形態と同様に、タイル分割部３０２’は顔領域内に他の顔領域のタイル境界候補となる線分を削除対象として決定することで、図示の破線（１）で示すタイル境界線を決めることになる。
【００７８】
検出された顔領域のサイズの大小関係は、エリア１＞エリア２＞エリア４＞エリア３であるので、上位Ｎ個のエリアは、エリア１とエリア２となる。このエリア１、２の位置関係から再設定するタイル境界位置を選択する。エリア１とエリア２のみの位置関係から、第１の実施形態と同様の設定方法で追加するタイル境界線を選択した結果、図１３の破線（２）で示した、エリア１を切り出すタイル境界線候補Ｌｍ（１）、エリア２を切り出すタイル境界線候補Ｌｈ（２）、Ｌｓ（２）が新たにタイル境界線として設定される。
【００７９】
上記方法によれば、できるだけ多くの顔領域をなるべく小さい１つのタイルに収めることが可能となる。
【００８０】
こうして再設定されたタイル境界線をタイル再設定部７０１が符号化部３０３に出力する。符号化部３０３は、タイル再設定部７０１の処理結果に従ってタイル分割と符号化処理を行なうことになる。
【００８１】
なお、上記の優先順位付けとは別の優先順位も考えられる。例えば、図１３に示したような写真の場合、撮影者が子供のアルバムを作成する目的で撮影したときには、家族写真を撮影したとき、大きいサイズの顔を優先的にタイル分割してしまうと、メインである子供の顔にタイル境界線がかかってしまうので、あまり撮影者の意図に合ったタイル分割ではないと言える。こういった場合には、顔のサイズに関わらず、写真の下方に存在する顔領域を、前方に位置する顔であると判断して、主要な顔領域として、タイル境界線で分断されないようなタイル分割を行うなどの対応が可能である。優先順位の設定は、ユーザが操作部を操作して設定すればよい。例えば、デジタルカメラに適用するのであれば、電子ファインダーに顔領域の矩形枠を表示し、どのそのうちの優先する矩形枠を選択するようにしても良い。
【００８２】
なお、第１の実施形態と同様、本第２の実施形態に相当する処理をコンピュータプログラムでもって実現することができることは明らかである。
【００８３】
［第３の実施形態］
第１の実施形態乃至第２の実施形態において、タイル境界線を設定した場合に、タイルに余白が多くなってしまった場合の符号化方法について説明を行う。
【００８４】
たとえば、図６（ａ）の参照符号６０２のようなタイル境界線を設定した場合には、エリア１はタイル中の上に片寄った位置に、エリア２はタイル中の下に片寄った位置にあるため、どちらも、顔領域を包含しているタイルのみを取り出して復号処理などするとしても、必要ない部分まで処理しなければならなくなる。
【００８５】
このような場合には、処理対象である顔領域以外に処理する領域が増えるため、処理速度が遅くなるなどの問題がある。
【００８６】
そこで、タイル中の下側に顔領域がある場合には、符号化時に検出された顔領域の座標値をポインタとして、符号化データに付与しておくことで、余白部分は処理せず顔領域の先頭から、処理を開始することが可能となる。
【００８７】
また、タイル中の上側に顔領域がある場合には、符号化時に検出された顔領域の座標値や幅、高さから、顔領域の最終画素を特定しておき、符号化データに付与すれば、顔領域以外の部分を処理しないで済む。顔領域がタイルの左側や右側に位置する場合にも同様に顔領域の最初の画素や最終画素を符号化データに付与しておくことで、顔領域のみ処理することが可能となる。
【００８８】
なお、第１の実施形態と同様、本第３の実施形態に相当する処理をコンピュータプログラムでもって実現することができることは明らかである。
【００８９】
また、通常コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されており、それをコンピュータが有する読取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、本発明は、かかるコンピュータ可読記憶媒体をもその範疇とすることは明らかである。
【００９０】
[第４の実施形態]
第１乃至第３の実施形態において、タイル境界線の決定方法として、タイル境界線候補の中から、適切でないものを削除する方法について説明を行った。本第４の実施形態では、第１乃至第３の実施形態とは別の方法でタイル境界線を決定する手法について説明を行う。
【００９１】
図１８は、本実施形態におけるタイル分割部３０２の内部処理の処理フローを示す図である。本実施形態においても、第１の実施形態と同様に、タイル毎に符号化を行うものであるから、タイル境界線は、符号化の最小単位（ＪＰＥＧの場合は８×８）の整数倍であるものとする。
【００９２】
まず、入力画像を符号化の最小単位（本実施形態では８×８画素単位とする）のブロックに分割し、その１つを入力する（ステップＳ１８０１）。次に、入力したブロックの少なくとも一部が顔領域に含まれるか否かの判定を行う（ステップＳ１８０２）。着目ブロックが、顔領域に含まれる場合には、ステップＳ１８０３にて、着目ブロックのフラグ情報を“１”に設定する。また、着目ブロックが、顔領域に含まれない場合には、ステップＳ１８０４にて、着目ブロックのフラグ情報を“０”に設定する。フラグ情報の値は“０”か“１”のいずれかであるので、このフラグは２値（１ビット）で良い。この後、ステップＳ１８０５にて、全ブロックについての検査が終了したか否かを判定し、否の場合にはステップＳ１８０１以降の処理を繰り返す。
【００９３】
さて、全ブロックのフラグの値が決定すると、処理はステップＳ１８０６に進み、垂直方向に並ぶ列毎のフラグの論理和（ＯＲ）演算（第１の演算）を実行する。水平方向にＮ個のブロックが並んでいる場合、Ｎ列存在することになるので、全部でＮ個の論理和演算結果が得られる。ステップＳ１８０７では、垂直方向に論理和を取った結果から、ｘ軸上のタイル境界線（垂直線）を設定する。具体的には、論理和を取った結果のフラグが“０”から“１”に変化する箇所、及び、“１”から“０”に変化するｘ座標である。
【００９４】
垂直方向全てのフラグの値の変化点にタイル境界線を設定したら、ステップＳ１８０８にて、今度は水平方向に並ぶ行毎のフラグの論理和（ＯＲ）演算（第２の演算）を実行する。垂直方向にＭ個のブロックが並んでいる場合、Ｍ行存在することになるので、全部でＭ個の論理和演算結果が得られる。ステップＳ１８０９では、水平方向に論理和を取った結果から、ｙ軸上のタイル境界線（水平線）を設定する。具体的には、論理和を取った結果のフラグが“０”から“１”に変化する箇所、及び、“１”から“０”に変化するｙ座標である。
【００９５】
上記の処理の具体例を以下に説明する。ここでは、図６（ｂ）の画像６０３に示すような位置に２つの顔領域が存在するものとして説明する。
【００９６】
図１９（ａ）は、図６（ｂ）の画像６０３に８×８画素の境界（破線）を追加した図である。つまり、図１９（ａ）に示す破線上にタイル境界線が設定される。図１９（ａ）の左上からラスタースキャン順に８×８画素のブロックを単位にフラグの設定処理を行う。図１９（ｂ）は、全ブロックのフラグ設定処理を終えた場合の、各ブロックのフラグの値を示している。ブロックの少なくとも一部が顔領域に含まれる場合はフラグの値が“１”、顔領域に含まれない場合はフラグの値は“０”となるので、図示のようなフラグ分布となる。
【００９７】
図１９（ｂ）の垂直方向の列ごとに論理和を取った結果と、水平方向の行ごとに論理和を取った結果は、図１９（ｃ）に示すフラグ１９０１とフラグ１９０２となる。フラグ１９０１とフラグ１９０２の、“０”から“１”に変化する境界と、“１”から“０”に変化する境界に、タイルの境界線を設定することで、図６（ｂ）の画像６０４の結果を得ることができる。
【００９８】
以上説明したような方法で、タイル境界線が決定され、第１の実施形態と同様に、検出された顔領域のすべてが他のタイル境界線に分断されることなく、可能な限り小さいサイズのタイル内に顔領域を包含させることが可能になる。従って、第１の実施形態に変えて、本第４の実施形態のタイル設定処理を採用しても構わない。
【００９９】
［変形例］
第１乃至第４の実施形態において、特定の特徴領域、たとえば写真撮影時に顔認識で検出された顔領域などのオブジェクトに対して、検出された領域を含むタイルのみを復号して画像処理を行うことを想定しているため、当然、注目オブジェクトを劣化させたくはない。
【０１００】
しかしながら、タイル分割して符号化する際に、発生するタイル歪を抑制するため、タイルをオーバーラップしてフィルタ処理を施す場合がある。この場合、タイル単体で復号してしまうと、タイルの境界部分で、正しく復号されず画質の劣化が起こってしまう可能性がある。このタイル境界部分での画質劣化の影響を注目オブジェクトにまで及ばないようにするため、検出領域よりも一回り外側にタイル境界を設定する必要がある。
【０１０１】
たとえば、図１６に示すように４×４のタイルごとにタイルをオーバーラップしてフィルタ処理を行う場合には、図１７に示すように、タイルの境界２画素分の範囲に画質劣化が起こるので、少なくとも、注目オブジェクトの検出領域よりも２画素分外側の外周がタイルの境界線になるように設定する。この設定は、顔検出部３０４にて行うものとする。すなわち、顔検出部３０４は通常の処理で顔領域を検出した後、検出した顔領域の矩形の座標を、水平、垂直の両端部とも２画素分だけ拡張した座標をタイル分割部３０２に出力する。なお、顔検出部３０４とタイル分割部３０２との間に、顔検出の座標を補正する補正部を介在させるようにしても構わないし、その補正をタイル分割部３０２内で行っても構わない。
【０１０２】
以上説明したような方法により、注目オブジェクトの画質劣化を抑制するようなタイル境界線の位置を設定するための適切なパラメータを決定することが可能である。
【０１０３】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2010166548.tif 000003
【図２】
2010166548.tif 000004
【図３】
2010166548.tif 000005
【図４】
2010166548.tif 000006
【図５】
2010166548.tif 000007
【図６】
2010166548.tif 000008
【図７】
2010166548.tif 000009
【図８】
2010166548.tif 000010
【図９】
2010166548.tif 000011
【図１０】
2010166548.tif 000012
【図１１】
2010166548.tif 000013
【図１２】
2010166548.tif 000014
【図１３】
2010166548.tif 000015
【図１４】
2010166548.tif 000016
【図１５】
2010166548.tif 000017
【図１６】
2010166548.tif 000018
【図１７】
2010166548.tif 000019
【図１８】
2010166548.tif 000020
【図１９】
2010166548.tif 000021