(57)【特許請求の範囲】
【請求項１】
動画像を構成するフレーム内のオブジェクトに応じた特定領域を抽出する抽出手段と、
前記抽出手段が抽出した特定領域から、他の領域よりも高い画質で符号化されるべき特定領域を選択領域として選択する選択手段と、
前記選択手段により選択された選択領域を前記他の領域よりも高い画質で符号化する為の符号化パラメータを用いて、前記フレームに対応する画像データを符号化する符号化手段とを備え、
前記選択手段は、第１フレームから抽出された特定領域から１つ以上の選択領域を第１の選択領域として選択した場合、前記第１フレームから第２フレームまでの選択領域として、前記第１の選択領域に対応する特定領域を選択すると共に、前記第２フレームの次の第３フレームの選択領域として、前記第１の選択領域に対応する特定領域とは異なる特定領域を選択する
ことを特徴とする画像処理装置。
【請求項２】
更に、
前記動画像において、フレーム間で同じオブジェクトであると判定されるオブジェクトの特定領域を対応付ける手段と、
前記第３フレームより過去のフレームにおいて前記第３フレームから抽出された特定領域と対応付けられる特定領域、を前記選択手段が連続して選択しなかったフレーム数を示す連続非選択フレーム数を特定する特定手段を備え、
前記選択手段は、前記第３フレームから所定数より多くの特定領域が抽出された場合、前記第３フレームの前記所定数の選択領域を前記連続非選択フレーム数に基づいて選択することを特徴とする請求項１に記載に画像処理装置。
【請求項３】
前記選択手段は、前記第３フレームから所定数より多くの特定領域が抽出された場合、前記連続非選択フレーム数が最も多い特定領域から前記所定数の特定領域を前記第３フレームの選択領域として選択することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記選択手段は、前記第１フレームの次のフレームから前記第３フレームまでのフレームにおいて新たに検出されたオブジェクトに応じた特定領域に対応する前記第３フレームの特定領域を、前記第３フレームの選択領域として選択することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記選択手段は、前記第３フレームから所定数より多くの特定領域が抽出された場合、該特定領域の前記第３フレーム内の位置に基づいて前記第３フレームの前記所定数の選択領域を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記選択手段は、前記第３フレームから所定数より多くの特定領域が抽出された場合、該特定領域に対応するオブジェクトの動きの速度に基づいて前記第３フレームの前記所定数の選択領域を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記選択手段は、前記第３フレームから所定数より多くの特定領域が抽出された場合、該特定領域に対応する他のフレームの特定領域が選択領域として選択された回数に基づいて前記第３フレームの前記所定数の選択領域を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
更に、
前記抽出手段により抽出された特定領域の面積に関する情報を取得する取得手段を備え、
前記選択手段は、前記フレームの選択領域として選択された１つ以上の特定領域の面積の合計が所定面積よりも小さくなるように選択領域を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記符号化手段は、前記符号化パラメータの制御として、前記選択手段により選択された選択領域を量子化するための量子化ステップを前記他の領域の量子化ステップよりも小さくする制御を行うことを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の抽出手段が、動画像を構成するフレーム内のオブジェクトに応じた特定領域を抽出する抽出工程と、
前記画像処理装置の選択手段が、前記抽出工程で抽出した特定領域から、他の領域よりも高い画質で符号化されるべき特定領域を選択領域として選択する選択工程と、
前記画像処理装置の符号化手段が、前記選択工程で選択された選択領域を前記他の領域よりも高い画質で符号化する為の符号化パラメータを用いて、前記フレームに対応する画像データを符号化する符号化工程とを備え、
前記選択工程では、第１フレームから抽出された特定領域から１つ以上の選択領域を第１の選択領域として選択した場合、前記第１フレームから第２フレームまでの選択領域として、前記第１の選択領域に対応する特定領域を選択すると共に、前記第２フレームの次の第３フレームの選択領域として、前記第１の選択領域に対応する特定領域とは異なる特定領域を選択する
ことを特徴とする画像処理方法。
【請求項１１】
更に、
前記画像処理装置の対応付け手段が、前記動画像において、フレーム間で同じオブジェクトであると判定されるオブジェクトの特定領域を対応付ける工程と、
前記画像処理装置の特定手段が、前記第３フレームより過去のフレームにおいて前記第３フレームから抽出された特定領域と対応付けられる特定領域、を前記選択工程で連続して選択しなかったフレーム数を示す連続非選択フレーム数を特定する特定工程を備え、
前記選択工程では、前記第３フレームから所定数より多くの特定領域が抽出された場合、前記第３フレームの前記所定数の選択領域を前記連続非選択フレーム数に基づいて選択することを特徴とする請求項１０に記載に画像処理方法。
【請求項１２】
前記選択工程では、前記第３フレームから所定数より多くの特定領域が抽出された場合、前記連続非選択フレーム数が最も多い特定領域から前記所定数の特定領域を前記第３フレームの選択領域として選択することを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
コンピュータを、請求項１乃至９の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像内の特定の領域をその他の領域よりも高画質に符号化するための技術に関するものである。
【背景技術】
【０００２】
動画像の伝送や蓄積再生を行うために、画像信号の符号化技術が用いられる。そのような技術としての動画像の符号化技術には、ＩＳＯ／ＩＥＣ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  １４４９６−２（ＭＰＥＧ−４  Ｖｉｓｕａｌ）などの国際標準化符号化方式が知られている。また、他の国際標準符号化方式として ITU-T と ISO／IECによる、H.264等が知られている。本明細書においては、ITU-T Rec. H.264 Advanced Video Coding | ISO／IEC International Standard 14496-10 (MPEG-4 AVC)を単にH.264と呼ぶ。これらの技術はビデオカメラやレコーダ等の分野にも用いられており、特に近年では監視用ビデオカメラ（以下、監視カメラと呼ぶ）への適用が積極的に行われている。
【０００３】
監視カメラ用途においては、長時間の録画を行う必要性から比較的低ビットレートで符号化して符号化データのサイズを抑えるケースが多い。しかし、低ビットレートで符号化することにより多くの情報が失われて画質が劣化するために、人物の顔の特定等本来の用途として機能しないという問題があった。そこで、フレーム全体を一様に符号化するのではなく、人物の顔等、使用用途上重要と思われる領域を特定領域として検出し、フレームを特定領域とそうでない領域（非特定領域）とに分け、領域毎に符号量の割り当てを変える技術が一般的に用いられている。具体的には、特定領域には多くの符号量を割り当てて画質を落とさないようにし、非特定領域のみ符号量を抑えるように符号化する。
【０００４】
この技術には、フレーム内に特定領域が複数存在する場合に、全ての特定領域に多くの符号量を割り当てると、目標ビットレートを超えてしまうという課題があった。またその一方で、全ての特定領域に目標ビットレートを超えない範囲で平均的に符号量を割り当てると、特定領域に対して、例えば人物の顔の特定等の用途に適した画質を得ることができないという課題があった。こうした課題に対し、それぞれの特定領域への符号量の割り当てを制御することで解決する技術が提案されてきている。
【０００５】
このような従来技術として、特許文献１が挙げられる。特許文献１では、フレームに占める面積が大きい特定領域よりも、フレームに占める面積が小さい特定領域に対して符号量を多く割り当てる。このようにすれば、小さく映った顔を鮮明に映しだすことができる圧縮データを確実に作成でき、大きく映った顔については、圧縮率が殆ど下がらなかったとしても、顔を十分に認識できる画質を維持できるとしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１９３４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の従来技術では、フレームに対する特定領域の面積比が小さい場合でも、特定領域が多数存在する場合においては、意図した画質を得ることができないケースが存在する。
【０００８】
本発明は以上の問題に鑑みてなされたものであり、特定領域が多数存在する場合においても、ビットレートを増加させることなく、特定領域に対して人物の特定等の用途に適した画質を得ることができる符号化技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、たとえば本発明の画像処理装置は、動画像を構成するフレーム内のオブジェクトに応じた特定領域を抽出する抽出手段と、
前記抽出手段が抽出した特定領域から、他の領域よりも高い画質で符号化されるべき特定領域を選択領域として選択する選択手段と、
前記選択手段により選択された選択領域を前記他の領域よりも高い画質で符号化する為の符号化パラメータを用いて、前記フレームに対応する画像データを符号化する符号化手段とを備え、
前記選択手段は、第１フレームから抽出された特定領域から１つ以上の選択領域を第１の選択領域として選択した場合、前記第１フレームから第２フレームまでの選択領域として、前記第１の選択領域に対応する特定領域を選択すると共に、前記第２フレームの次の第３フレームの選択領域として、前記第１の選択領域に対応する特定領域とは異なる特定領域を選択する
ことを特徴とする。
【発明の効果】
【００１０】
本発明の構成によれば、特定領域が多数存在する場合においても、ビットレートを増加させることなく、特定領域に対して人物の特定等の用途に適した画質を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】画像処理装置の機能構成例を示すブロック図。
【図２】特定領域選択部１０２が行う選択領域の選択処理のフローチャート。
【図３】特定領域選択部１０２が行う選択領域の選択処理のフローチャート。
【図４】図２のフローチャートの処理の具体例を示す図。
【図５】図２のフローチャートの処理の具体例を示す図。
【図６】図３のフローチャートの処理の具体例を示す図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の一つである。
【００１３】
［第１の実施形態］
本実施形態では、動画像を構成する各フレームの画像を符号化する画像処理装置について説明する。まず、本実施形態に係る画像処理装置の機能構成例について、図１のブロック図を用いて説明する。
【００１４】
動画像を構成する各フレームは、特定領域検出部１０１および符号化部１０３に入力される。
【００１５】
特定領域検出部１０１は、フレーム毎に、該フレームの画像中に写っているそれぞれの被写体の領域（特定領域）を抽出（検出）し、該領域内に写っている被写体に固有の識別情報を該領域に割り当てる。なお、特定領域検出部１０１は、一度検出して識別情報を割り当てた領域についてはそれ以降、フレームをまたいで追尾し続け、同一の識別情報を割り当てるものとする。
【００１６】
この「被写体」については特に限定するものではなく、ユースケースによって重要と位置付けられるものであればよく、たとえば人の顔であってもよいし、人体や動体、侵入者、置き去りにされたオブジェクトであってもよい。また、被写体の領域はユーザが操作部などを用いて指定した領域であってもよい。
【００１７】
また、被写体の領域の形状は矩形であってもよいし、円形や楕円形などの形状であってもよい。また、識別情報は、本実施形態ではＩＤとするが、これに限るものではない。
【００１８】
そして特定領域検出部１０１は、フレーム毎に、該フレームの画像から検出した被写体の領域毎の特徴情報、被写体の領域の総数、を含む領域情報を生成する。特徴情報は、｛領域のＩＤ、領域の面積、画像内における領域の位置（たとえば左上隅の位置と右下隅の位置）｝のセットを含む。そして特定領域検出部１０１は、生成したこの領域情報を特定領域選択部１０２に対して送出する。なお、特徴情報は、画像中のそれぞれの被写体の領域を一意に特定することができる情報であれば、如何なる情報であってもよい。また、この特徴情報は上述のものに限定されない。例えば被写体の領域の検出の精度、人の顔の向き等といった情報を出力してもよいし、領域の座標だけ出力してもよい。
【００１９】
特定領域選択部１０２は、フレーム毎に、該フレームの画像から特定領域検出部１０１が抽出したそれぞれの領域のうち規定個数の領域を、より高画質で符号化するための領域（選択領域）として選択する。特定領域選択部１０２による選択領域の選択方法については、図２を用いて後述する。
【００２０】
符号化部１０３は、入力された各フレームの画像を、制御部１０４により設定された符号化パラメータを用いて符号化する。制御部１０４は、符号化部１０３が符号化しようとするフレームの画像における選択領域を該選択領域以外の領域よりも高い画質で符号化する為の符号化パラメータを設定し、設定した符号化パラメータを符号化部１０３に供給する。たとえば符号化パラメータとして量子化ステップを採用する場合、制御部１０４は、選択領域に対して設定する量子化ステップを、選択領域以外の領域に対して設定する量子化ステップよりも小さく設定する。もちろん、符号化パラメータは量子化ステップに限るものではなく、ほかにも例えば量子化テーブルの値を採用してもよい。制御部１０４は更に、画像処理装置を構成する各部の動作制御も行う。
【００２１】
次に、特定領域選択部１０２が行う選択領域の選択処理について、同処理のフローチャートを示す図２を用いて説明する。なお、特定領域選択部１０２は、図２のフローチャートに従った処理をフレーム毎に行う。然るに以下の説明では、着目フレームの画像から選択領域を選択する処理を例にとり説明する。
【００２２】
ステップＳ２０１では、特定領域検出部１０１から送出された領域情報を受ける。そしてステップＳ２０２では、この領域情報中のそれぞれの特徴情報に含まれているＩＤを配列ＩＤ［］に格納すると共に、この領域情報に含まれている「被写体の領域の総数」を変数Ｍに設定する。すなわち、配列ＩＤ［］は、ＩＤ［０］〜ＩＤ［Ｍ−１］から成り、ＩＤ［０］〜ＩＤ［Ｍ−１］のそれぞれにはＭ個の領域のそれぞれのＩＤが格納されている。
【００２３】
ステップＳ２０３では、着目フレームよりも１フレーム過去のフレームから特定領域検出部１０１が検出したそれぞれの領域のＩＤが格納されている配列ＩＤｐｒｅｖ［］を参照する。そして配列ＩＤ［］に格納されているＩＤのうち配列ＩＤｐｒｅｖ［］には格納されていないＩＤを特定する。これはすなわち、着目フレームよりも１フレーム過去のフレームでは検出されなかったが、着目フレームで新たに検出された被写体のＩＤを特定する処理である。たとえば、ＩＤ＝ｎがＩＤ［］には格納されているもののＩＤｐｒｅｖ［］には格納されていないとする。この場合、ＩＤ＝ｎの領域が選択された連続フレーム数（連続選択回数）を示す変数ｆ［ｎ］を０に初期化すると共に、ＩＤ＝ｎの領域が選択されなかった連続フレーム数（連続非選択回数）を示す変数ｔ［ｎ］を十分に大きい規定値に初期化する。このように、連続非選択回数を示す変数ｔ［ｎ］に十分に大きい規定値を設定することで、後述するステップＳ２１２〜Ｓ２１５における処理で優先的に選択領域として選択されるようになる。
【００２４】
ステップＳ２０４では、変数ｓｅｌ＿ｎｕｍ、ｍａｘ＿ｉｄｘを０に初期化すると共に、配列ｓｅｌ＿ｌｉｓｔ［］の各要素をＮＵＬＬなどの規定値に初期化する。
【００２５】
そしてステップＳ２０５〜ステップＳ２０９の各ステップを、ｉ＝０〜Ｍ−１について行う。まず、ステップＳ２０６では０＜ｆ［ＩＤ［ｉ］］＜Ｔｃｏｎを満たすか否かを判断する。すなわち、着目フレームの画像から検出された「ＩＤ＝ＩＤ［ｉ］の領域」の連続選択回数が０より大きく且つ規定回数Ｔｃｏｎよりも少ないか否かを判断する。この判断の結果、満たしていると判断した場合は処理はステップＳ２０８に進み、満たしていないと判断した場合は処理はステップＳ２０７に進む。
【００２６】
ステップＳ２０８では、着目フレームの画像における選択領域のＩＤを登録するための配列ｓｅｌ＿ｌｉｓｔ［］のｓｅｌ＿ｎｕｍ番目の要素（ｓｅｌ＿ｌｉｓｔ［ｓｅｌ＿ｎｕｍ］）にＩＤ［ｉ］を格納する。更に本ステップでは、着目フレームの画像から検出された各領域が選択領域、非選択領域の何れであるのかを示すフラグ値を登録するための配列ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［］のｉ番目の要素に、選択領域であることを示すフラグ値＝１を格納する。すなわち、ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［ｉ］＝１とする。更に本ステップでは、変数ｓｅｌ＿ｎｕｍの値を１つインクリメントする。
【００２７】
一方、ステップＳ２０７では、ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［］のｉ番目の要素（ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［ｉ］）に、非選択領域であることを示すフラグ値＝０を格納する。
【００２８】
このように、ステップＳ２０５〜Ｓ２０９の上記の各処理をｉ＝０〜（Ｍ−１）について行うことで、着目フレームの画像から検出したそれぞれの領域のうち、連続選択回数が０より大きく且つ規定回数Ｔｃｏｎよりも少ない領域を選択領域として選択する。なお、この時点で選択領域（第１の選択領域）として選択した領域の数はｓｅｌ＿ｎｕｍ個である。
【００２９】
次に、ステップＳ２１０〜ステップＳ２１８の各ステップにおける処理を、ｊ＝ｓｅｌ＿ｎｕｍ〜（Ｔｓｅｌ−１）について行う。ここでＴｓｅｌは、１フレームの画像から選択する選択領域の最大数を示す規定値であり、予め設定されている。本実施形態ではＴｓｅｌ＝２２として説明するが、これに限るものではない。例えば現在のフレームから検出された領域の数に対してある割合の数となるようにＴｓｅｌを設定してもよい。
【００３０】
まず、ステップＳ２１１では変数ｍａｘ＿ｔを０に初期化する。次に、ステップＳ２１２〜ステップＳ２１５の各ステップにおける処理を、ｋ＝０〜（Ｍ−１）について行う。ステップＳ２１３では、ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［ｋ］＝０且つｍａｘ＿ｔ＜ｔ［ＩＤ［ｋ］］という条件が満たされているか否かを判断する。すなわち、本ステップでは、着目フレームの画像から検出された「ＩＤ＝ＩＤ［ｋ］の領域」が非選択領域であり且つこの非選択領域の連続非選択回数がｍａｘ＿ｔよりも多い、という条件が満たされているか否かを判断する。
【００３１】
この判断の結果、この条件が満たされていると判断した場合には、処理はステップＳ２１４に進み、この条件が満たされていないと判断した場合には、処理はステップＳ２１５に進む。ステップＳ２１４では、変数ｍａｘ＿ｔにｔ［ＩＤ［ｋ］］を設定すると共に、変数ｍａｘ＿ｉｄｘに変数ｋの値を設定する。
【００３２】
このようにｋ＝０〜Ｍ−１についてステップＳ２１２〜Ｓ２１５を実行することで、着目フレームの画像における全ての非選択領域のうち連続非選択回数が最も多い非選択領域を特定する。そして、配列ＩＤ［］においてこの特定した非選択領域のＩＤを格納している要素のインデックスを変数ｍａｘ＿ｉｄｘに設定する。
【００３３】
ステップＳ２１６では、ｓｅｌ＿ｌｉｓｔ［］のｓｅｌ＿ｎｕｍ番目の要素（ｓｅｌ＿ｌｉｓｔ［ｓｅｌ＿ｎｕｍ］）に、ＩＤ［ｍａｘ＿ｉｄｘ］の値を設定する。すなわち、着目フレームの画像における全ての非選択領域のうち連続非選択回数が最も多い非選択領域を選択領域（第２の選択領域）として選択する。更に本ステップでは、配列ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［］におけるｍａｘ＿ｉｄｘ番目の要素（ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［ｍａｘ＿ｉｄｘ］）に、選択領域であることを示すフラグ値＝１を格納する。更に本ステップでは、変数ｓｅｌ＿ｎｕｍの値を１つインクリメントする。
【００３４】
ステップＳ２１７では、ｓｅｌ＿ｎｕｍの値がＭに達したか否かを判断する。この判断の結果、達したと判断した場合、処理はステップＳ２１９に進む。一方、達していないと判断した場合、処理はステップＳ２１８に進み、変数ｊの値を１つインクリメントしてステップＳ２１１以降の処理を繰り返す。
【００３５】
次に、ステップＳ２１９〜Ｓ２２３の各ステップにおける処理を、ｌ＝０〜（Ｍ−１）について行う。ステップＳ２２０では、ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［ｌ］＝１であるか否かを判断する。この判断の結果、ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［ｌ］＝１である場合は処理はステップＳ２２２に進み、ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［ｌ］＝０である場合は処理はステップＳ２２１に進む。
【００３６】
ステップＳ２２２では、ｆ［ＩＤ［ｌ］］の値を１つインクリメントすると共に、ｔ［ＩＤ［ｌ］］の値を０に初期化する。一方、ステップＳ２２１では、ｔ［ＩＤ［ｌ］］の値を１つインクリメントすると共に、ｆ［ＩＤ［ｌ］］の値を０に初期化する。
【００３７】
このように、ｔ［］、ｆ［］により、ＩＤ毎（識別情報毎）に、該ＩＤを割り当てた領域を選択した連続フレーム数を連続選択回数として、選択しなかった連続フレーム数を連続非選択回数として、管理する。
【００３８】
このように、第１の選択領域としての領域を選択すると、該領域のＩＤについて管理している連続選択回数を１つインクリメントすると共に、該領域のＩＤについて管理している連続非選択回数を０に初期化する。
【００３９】
更に、第２の選択領域としての領域を選択すると、該領域のＩＤについて管理している連続選択回数を１つインクリメントすると共に、該領域のＩＤについて管理している連続非選択回数を０に初期化する。
【００４０】
更に、第１の選択領域にも第２の選択領域にも該当しない領域を非選択領域とすると、該非選択領域のＩＤについて管理している連続非選択回数を１つインクリメントすると共に、該非選択領域のＩＤについて管理している連続選択回数を０に初期化する。
【００４１】
更に、連続選択回数が規定回数Ｔｃｏｎに達した領域のＩＤについて管理している連続非選択回数を１つインクリメントすると共に、該領域のＩＤについて管理している連続選択回数を０に初期化する。
【００４２】
ステップＳ２２４に処理が移行した時点で、配列ｓｅｌ＿ｌｉｓｔ［０］〜ｓｅｌ＿ｌｉｓｔ［Ｔｓｅｌ−１］には、選択領域として選択された各領域のＩＤが登録されている。然るにステップＳ２２４では、配列ｓｅｌ＿ｌｉｓｔ［０］〜ｓｅｌ＿ｌｉｓｔ［Ｔｓｅｌ−１］のそれぞれに登録されているＩＤが割り当てられた領域を選択領域として選択し、選択した選択領域を制御部１０４に通知する。これにより制御部１０４は、着目フレームの画像中におけるそれぞれの選択領域に対しては、それ以外の領域よりも小さい量子化ステップを設定することができる。
【００４３】
ステップＳ２２５では、変数Ｍｐｒｅｖに変数Ｍの値を設定すると共に、配列ＩＤｐｒｅｖ［］に配列ＩＤ［］をコピーする。変数Ｍｐｒｅｖは、配列ＩＤｐｒｅｖ［］の要素数を表す変数であり、たとえば、ステップＳ２０３において配列ＩＤｐｒｅｖ［］内を検索する場合の検索上限値として使用される。
【００４４】
フレームの画像から抽出したそれぞれの領域のうち、該フレームよりも１フレーム過去のフレームにおいて選択されなかった領域と同じＩＤが割り当てられた領域を非選択領域とする。この場合、以上の処理により、該非選択領域のうち規定個数以下の非選択領域を、規定個数の領域の一部もしくは全部として選択することとなる。
【００４５】
図２のフローチャートに従って説明した処理を、具体例を挙げて図４を用いて説明する。図４では、１フレーム目から４０フレーム目までの各フレームについて、特定領域検出部１０１が検出した領域、それぞれの領域のｔ［］の値、特定領域選択部１０２により選択された選択領域、を示している。図４では説明を簡単にする為に特定領域検出部１０１は、各フレームから６つの領域を検出し、それぞれの領域にＩＤ＝１〜６を割り当てており、１フレーム目におけるｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［１］〜ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［６］は全て０としている。また、図４では、Ｔｃｏｎ＝１０、Ｔｓｅｌ＝２としている。
【００４６】
１フレーム目におけるｔ［１］〜ｔ［６］の値から、値が大きい順に上位から２個の領域はＩＤ＝１，ＩＤ＝２の領域となるので、特定領域選択部１０２は、ＩＤ＝１の領域、ＩＤ＝２の領域を選択領域として選択する。そして特定領域選択部１０２は、ｔ［１］、ｔ［２］のそれぞれを０に初期化する。
【００４７】
その後、１０フレームに到達するまで、ｔ［１］、ｔ［２］は０のままで、ｔ［３］〜ｔ［６］はフレーム毎にインクリメントされる。
【００４８】
１０フレーム目に到達すると、この時点でｔ［１］〜ｔ［６］のうち値が大きい順に上位から２個の領域はＩＤ＝３，ＩＤ＝４の領域となる。然るに特定領域選択部１０２は、ＩＤ＝３の領域、ＩＤ＝４の領域を選択領域として選択する。そして特定領域選択部１０２は、ｔ［３］、ｔ［４］のそれぞれを０に初期化する。
【００４９】
その後、２０フレーム目に到達するまで、ｔ［３］、ｔ［４］は０のままで、ｔ［１］、ｔ［２］、ｔ［５］、ｔ［６］はフレーム毎にインクリメントされる。
【００５０】
２０フレーム目に到達すると、この時点でｔ［１］〜ｔ［６］のうち値が大きい順に上位から２個の領域はＩＤ＝５，ＩＤ＝６の領域となる。然るに特定領域選択部１０２は、ＩＤ＝５の領域、ＩＤ＝６の領域を選択領域として選択する。そして特定領域選択部１０２は、ｔ［５］、ｔ［６］のそれぞれを０に初期化する。
【００５１】
その後、３０フレーム目に到達するまで、ｔ［５］、ｔ［６］は０のままで、ｔ［１］〜ｔ［４］はフレーム毎にインクリメントされる。
【００５２】
３０フレーム目に到達すると、この時点でｔ［１］〜ｔ［６］のうち値が大きい順に上位から２個の領域はＩＤ＝１，ＩＤ＝２の領域となる。然るに特定領域選択部１０２は、ＩＤ＝１の領域、ＩＤ＝２の領域を選択領域として選択する。そして特定領域選択部１０２は、ｔ［１］、ｔ［２］のそれぞれを０に初期化する。
【００５３】
もし、図４のように被写体の領域がフレーム内の大部分を占めている時、領域全てをそのまま高画質化対象として符号化すると、目標ビットレートを大きく超えてしまうであろう事は自明である。しかし本実施形態においては特定領域選択部１０２において被写体の領域の取捨選択を行うため、実際のビットレートが目標ビットレートを大きく超えることはない。そして選択領域を切り替えながら符号化する事で、全ての特定領域を一定時間内に一度は高画質に符号化する事が可能となる。
【００５４】
次に、被写体の領域がフレームインしたりフレームアウトしたりするケースにおける特定領域選択部１０２の動作について、図５を用いて説明する。図５では、１フレーム目から４０フレーム目までの各フレームについて、特定領域検出部１０１が検出した領域、それぞれの領域のｔ［］の値、特定領域選択部１０２により選択された選択領域、を示している。１フレーム目ではｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［１］〜ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［６］は全て０としている。また、図５では、Ｔｃｏｎ＝３０、Ｔｓｅｌ＝２としている。
【００５５】
特定領域検出部１０１は、１フレーム目〜９フレーム目まではＩＤ＝１〜５の５つの領域を検出している。それぞれの領域に対するｔ［１］〜ｔ［５］の値から、値が大きい順に上位から２個の領域はＩＤ＝１，ＩＤ＝２の領域となるので、特定領域選択部１０２は、ＩＤ＝１の領域、ＩＤ＝２の領域を選択領域として選択する。そして特定領域選択部１０２は、ｔ［１］、ｔ［２］のそれぞれを０に初期化する。その後、ｔ［１］、ｔ［２］は０のままで、ｔ［３］〜ｔ［５］はフレーム毎にインクリメントされる。
【００５６】
１０フレーム目に到達すると、ＩＤ＝６の領域が新たに検出されたため、この領域に対するｔ［６］に十分に大きい規定値である９９を設定する。この時点でｔ［１］〜ｔ［６］のうち値が大きい順に上位から２個の領域はＩＤ＝３，ＩＤ＝６の領域となるが、この時点でｆ［１］、ｆ［２］の連続選択回数はまだＴｃｏｎには到達していないし、現在選択中の選択領域の数は２（＝Ｔｓｅｌ）である。そのため、選択領域の追加は行わない。然るに特定領域選択部１０２は、現在選択領域として選択しているＩＤ＝１の領域、ＩＤ＝２の領域をそのまま選択領域として選択する。そして特定領域選択部１０２は、ｔ［１］、ｔ［２］のそれぞれを０に初期化する。その後、ｔ［１］、ｔ［２］は０のままで、ｔ［３］〜ｔ［６］はフレーム毎にインクリメントされる。
【００５７】
２０フレーム目に到達すると、ＩＤ＝１の領域がフレームアウトして検出されなくなり、その結果、この時点で選択領域の数は１となる。そのため、この時点でｔ［３］〜ｔ［６］のうち値が大きい順に上位から１個の領域であるＩＤ＝６の領域を新たに選択領域として追加選択する。そして特定領域選択部１０２は、ｔ［２］、ｔ［６］のそれぞれを０に初期化する。その後、ｔ［２］、ｔ［６］は０のままで、ｔ［３］〜ｔ［５］はフレーム毎にインクリメントされる。
【００５８】
３０フレーム目に到達すると、ＩＤ＝２の領域の連続選択回数が３０に到達したため、この領域の代わりとなる選択領域を選択する必要がある。一方、ＩＤ＝６の領域についてはまだ連続選択回数が３０には到達していないので、この領域の代わりとなる選択領域を選択する必要はない。そこで、この時点でｔ［３］〜ｔ［５］のうち値が大きい順に上位から１個の領域はＩＤ＝３の領域となる。然るに特定領域選択部１０２は、ＩＤ＝３の領域、ＩＤ＝６の領域を選択領域として選択する。そして特定領域選択部１０２は、ｔ［３］、ｔ［６］のそれぞれを０に初期化する。
【００５９】
なお、図２のフローチャートでは、連続非選択回数の多い順に選択領域を選択しているが、選択基準はこれに限るものではない。たとえば、領域の座標に応じて選択してもよい。具体的には、各非選択領域の座標から各々の重心を計算し、重心とフレームの端部からの距離が小さい順に上位から（Ｔｓｅｌ−ｓｅｌ＿ｎｕｍ−１）個（Ｎ個）の非選択領域を選択領域として選択してもよい。フレーム端部に位置する領域はフレームインやフレームアウト発生の確率が高いため、優先的に選択する事で高画質化しないままこの領域がフレームアウトする事を防ぐ効果がある。他にも、フレームを複数の領域に分割して、分割された複数の領域の中から一つの領域を選択分割領域として決定し、その領域の内部に重心が存在する領域のみを選択領域としてもよい。そのように選択領域を決定する場合は、選択分割領域を順次切り替える事でフレーム内の全ての領域を高画質化する事ができる。
【００６０】
また、移動速度の大きい領域はフレームアウトする確率が高いと考えられる。そのため、フレーム間での各非選択領域の重心の座標の変化量を基に各非選択領域の移動速度を算出し、移動速度が大きい順に上位から（Ｔｓｅｌ−ｓｅｌ＿ｎｕｍ−１）個の非選択領域を選択領域として選択してもよい。
【００６１】
また、連続選択回数の累積値が小さい順に上位から（Ｔｓｅｌ−ｓｅｌ＿ｎｕｍ−１）個の非選択領域を、選択領域として選択してもよい。連続選択回数が小さい領域は、高画質に符号化された時間が短い事を意味する。例えば監視カメラにおける人物の識別等のユースケースにおいて、高画質化された時間が短いと人物を識別できる可能性が下がる。連続選択回数の累積値が少ない領域を優先的に選択する事で、撮影された人物を識別できる可能性を高くする事ができる。
【００６２】
また、選択領域として選択しない条件を定めてもよい。例えば、一定フレーム数以上連続して検出され続ける領域を選択対象から外してもよいし、一定フレーム数以上選択した領域を選択対象から外す等の選択方法を実施してもよい。これらの領域は既に高画質に符号化されている可能性が高いため、予め選択対象から外す事は、撮影された人物を識別できる可能性を高くする効果がある。また、特定の条件を満たす領域は常に選択領域としてもよい。例えば、最も選択されたフレーム数が少ない領域は常に選択領域とする、等の処理を行ってもよい。更にこれらの選択方法は必ずしも単独で用いる必要はなく、個々の選択方法を組み合わせて選択領域を決定してもよい。
【００６３】
［第２の実施形態］
本実施形態では、図１の構成を有する画像処理装置が行う、第１の実施形態とは異なる符号化処理について説明する。以下では、第１の実施形態との差分のみについて説明し、以下に説明する点以外については第１の実施形態と同様である。
【００６４】
本実施形態に係る特定領域選択部１０２が行う処理について、同処理のフローチャートを示す図３を用いて説明する。図３は、フレーム間で選択する領域の総面積が一定となるように特定領域選択部１０２が選択領域を決定する処理例を示している。選択領域の面積が一定となる事は、高画質に符号化される領域の面積が一定となる事を意味しており、フレーム間でのビットレートのばらつきを抑制する効果がある。図３のフローチャートに従った処理は、図２のフローチャートに従った処理と同様、フレーム毎に行われる。また、引き継ぎ情報は第１の実施形態と同一である。
【００６５】
ここで、「領域の面積」とは、画像を符号化用に複数の画素ブロックに分割した場合に、この領域に含まれる画素ブロックの数を指す。しかし、面積の定義はこれに限定されるものではなく、例えば領域を構成する画素の数をこの領域の面積としてもよい。
【００６６】
なお、ステップＳ３０１〜ステップＳ３０９のそれぞれは、ステップＳ３０２，Ｓ３０４，Ｓ３０８を除いて図２のステップＳ２０１〜ステップＳ２０９と同じであるため、同じ部分については説明は省略する。
【００６７】
ステップＳ３０２では、ステップＳ２０２の処理に加え、各領域の特徴情報から、各領域の面積を取得し、配列ＡＲＥＡ［］に格納する。すなわち、ＩＤ＝ＩＤ［０］〜ＩＤ［Ｍ−１］のそれぞれの領域の面積は、ＡＲＥＡ［０］〜ＡＲＥＡ［Ｍ−１］に格納される。
【００６８】
ステップＳ３０４では、ステップＳ２０４の処理に加え、変数ｔｏｔａｌ＿ａｒｅａを０に初期化する。
【００６９】
ステップＳ３０８では、ステップＳ２０８の処理に加え、変数ｔｏｔａｌ＿ａｒｅａの値を、ＡＲＥＡ［ｉ］の値だけインクリメントする。これにより、ステップＳ３１０に処理が移行した時点で、この変数ｔｏｔａｌ＿ａｒｅａには、着目フレームの画像から検出された領域群のうち、連続選択回数が０より大きく且つ規定回数Ｔｃｏｎよりも少ない領域の総面積が格納されることになる。
【００７０】
そしてステップＳ３１０〜Ｓ３１８の各ステップの処理を、変数ｔｏｔａｌ＿ａｒｅａの値が、規定の値Ｔａｒｅａを超えるまで繰り返し行う。たとえば、変数ｔｏｔａｌ＿ａｒｅａの値がTareaを超えた時点で、最後に選択した領域をキャンセルすることで、選択領域の総面積がTareaを超えないようにしてもよい。また、Tareaは固定の値でもよいし、全ての検出領域の総面積のうちある割合になるような可変の値でもよいし、フレームのサイズに応じて決まる値であってもよい。
【００７１】
ステップＳ３１１〜ステップＳ３１５のそれぞれは、図２のステップＳ２１１〜ステップＳ２１５と同じであるため、説明は省略する。
【００７２】
ステップＳ３１６では、ステップＳ２１６の処理に加え、変数ｔｏｔａｌ＿ａｒｅａの値を、ＡＲＥＡ［ｍａｘ＿ｉｄｘ］の値だけインクリメントする。すなわち、非選択領域であった領域を選択領域として選択した場合には、この選択領域の面積が変数ｔｏｔａｌ＿ａｒｅａの値に加算される。
【００７３】
ステップＳ３１７ではｓｅｌ＿ｎｕｍの値がＭに達したか否かを判断する。そして達したと判断した場合、処理はステップＳ３１９に進み、達していないと判断した場合、処理はステップＳ３１８に進み、ｔｏｔａｌ＿ａｒｅａ＜Ｔａｒｅａが満たされている限りステップＳ３１１以降の処理を繰り返す。以降の処理は、第１の実施形態と同様である。
【００７４】
図３のフローチャートに従って説明した処理を、具体例を挙げて図６を用いて説明する。図６では、１フレーム目から４０フレーム目までの各フレームについて、特定領域検出部１０１が検出した領域、それぞれの領域のｔ［］およびＡＲＥＡ［］の値、特定領域選択部１０２により選択された選択領域、を示している。図６では説明を簡単にする為に特定領域検出部１０１は、各フレームから６つの領域を検出し、それぞれの領域にＩＤ＝１〜６を割り当てており、１フレーム目におけるｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［１］〜ｓｅｌ＿ｆｌａｇ＿ｌｉｓｔ［６］は全て０としている。また、図６では、Ｔｃｏｎ＝１０、Ｔａｒｅａ＝１５としている。
【００７５】
１フレーム目におけるｔ［１］〜ｔ［６］のうち値がもっとも大きいものはｔ［１］であるので、まずＩＤ＝１の領域を選択領域として選択することになる。ここで、ＩＤ＝１の領域の面積はＡＲＥＡ［１］＝２０であり、この領域を選択した時点でＴａｒｅａを超えているため、これ以上の領域選択は行われない。そして特定領域選択部１０２は、ｔ［１］を０に初期化する。その後、ｔ［１］は０のままで、ｔ［２］〜ｔ［６］はフレーム毎にインクリメントされる。
【００７６】
１０フレーム目に到達すると、この時点でｔ［２］＞ｔ［３］＞ｔ［４］＞ｔ［５］＞ｔ［６］であるため、ＩＤ＝２，３，４，５，６の順に領域を選択する。ここで、ＩＤ＝２，３，４の領域を選択した時点で、選択した領域の総面積が１６となり、Ｔａｒｅａを超えている。然るに特定領域選択部１０２は、ｔ［２］、ｔ［３］、ｔ［４］のそれぞれを０に初期化する。その後、ｔ［２］、ｔ［３］、ｔ［４］は０のままで、ｔ［１］、ｔ［５］、ｔ［６］はフレーム毎にインクリメントされる。
【００７７】
２０フレーム目に到達すると、この時点でｔ［５］＞ｔ［６］＞ｔ［１］であるため、ＩＤ＝５，６，１の順に領域を選択する。ここで、ＩＤ＝５，６の領域を選択した時点で、選択した領域の総面積が１８となり、Ｔａｒｅａを超えている。然るに特定領域選択部１０２は、ｔ［５］、ｔ［６］のそれぞれを０に初期化する。その後、ｔ［５］、ｔ［６］は０のままで、ｔ［１］〜ｔ［４］はフレーム毎にインクリメントされる。
【００７８】
３０フレーム目に到達すると、この時点でｔ［１］＞ｔ［２］≧ｔ［３］≧ｔ［４］であるため、ＩＤ＝１，２，３，４の順に領域を選択する（ＩＤ＝２，３，４の面積は同じであるためこれらの順序は問わない）。ここで、ＩＤ＝１の領域を選択した時点で、選択した領域の総面積が２０となり、Ｔａｒｅａを超えている。然るに特定領域選択部１０２は、ｔ［１］を０に初期化する。その後、ｔ［１］は０のままで、ｔ［２］〜ｔ［６］はフレーム毎にインクリメントされる。
【００７９】
もし、図６のように被写体の領域がフレーム内の大部分を占めている時、領域全てをそのまま高画質化対象として符号化すると、フレームのビットレートが非常に高くなる。しかし本実施形態においては特定領域選択部１０２において領域の取捨選択を行うため、フレーム全体としてのビットレートはそこまで増大しない。そして選択領域を切り替えながら符号化する事で、全ての領域を一定時間内に一度は高画質に符号化する事が可能となる。更に、フレーム間で選択領域の面積が一定となるように領域を選択する事で、フレーム間でのビットレートの変動を抑える事が可能となる。
【００８０】
なお、図３のフローチャートでは、連続非選択回数の多い順に選択領域を選択しているが、選択基準はこれに限るものではない。たとえば、面積が小さい順に上位から選択してもよい。小さく映っている顔は大きく映っている顔よりも人物の識別が困難である。そのため、面積が小さい領域を優先的に選択する事は、映っている人物を識別できる可能性が高くなる効果を持つ。
【００８１】
［第３の実施形態］
図１に示した各部は何れもハードウェアで実装しても良いが、ソフトウェア（コンピュータプログラム）で実装しても良い。この場合、このソフトウェアを保持する記憶装置（ハードディスク等）を有するコンピュータは第１，２の実施形態に係る画像処理装置として機能することができる。即ち、このコンピュータが有するＣＰＵがこのソフトウェアを読み出して処理を実行することで、このコンピュータは、図１に示した各部の機能を実現することになる。もちろん、このコンピュータは、１台の装置から構成しても良いし、２台以上の装置で構成しても良い。
【００８２】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005801614.tif 000002
【図２】
0005801614.tif 000003
【図３】
0005801614.tif 000004
【図４】
0005801614.tif 000005
【図５】
0005801614.tif 000006
【図６】
0005801614.tif 000007